我使用arm-none-eabi-gcc作为ARM控制器(STM32)。 问题: 源代码更改后,例如++ var;代码不运行。 如果我对同一个文件“var2 = var1;”做了一些修改然后代码功能正常。
可执行代码只是移入闪存。 堆栈,链接器,启动的东西?!
非常感谢。
这两个MAP文件都在这里:
答案 0 :(得分:0)
发现问题。 如果在没有优化的情况下编译它,该软件可正常工作。 通过优化速度“-Os” - 它不起作用。
解决方案是将一个变量声明为“volatile”。 但是为什么编译器有时会优化它呢?有时不 - 我不知道。