在小代码更改(++ i)软件运行后,arm-none-eabi-gcc

时间:2013-10-09 09:44:40

标签: gcc arm

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

可执行代码只是移入闪存。 堆栈,链接器,启动的东西?!

非常感谢。

这两个MAP文件都在这里:

MAP ok

MAP bad

1 个答案:

答案 0 :(得分:0)

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

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