【问题标题】:arm-none-eabi-gcc after a small code change (++i) software does not run [closed]arm-none-eabi-gcc 小代码更改(++i)软件后不运行[关闭]
【发布时间】:2013-10-09 09:44:40
【问题描述】:

我将 arm-none-eabi-gcc 用于 ARM 控制器 (STM32)。 问题: 源代码更改后,例如 ++var;代码不运行。 如果我对同一个文件“var2 = var1;”进行更多修改然后代码功能正确。

可执行代码只是转移到闪存中。 堆栈、链接器、启动的东西?!

非常感谢。

两个 MAP 文件都在这里:

MAP ok

MAP bad

【问题讨论】:

  • 你应该提供一个SSCCEsn-p 的代码,而不是一堆类似的东西
  • (-1) 但是我会清理构建工件并制作一个干净的新构建。
  • 完整的构建没有帮助。好像是源代码问题。

标签: gcc arm


【解决方案1】:

发现问题。 如果在没有优化的情况下编译,该软件可以正常工作。 在“-Os”上对速度进行优化 - 它不起作用。

解决方案是将一个变量声明为“volatile”。 但是为什么编译器有时会优化它而有时不会 - 我不知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    相关资源
    最近更新 更多