arm none eabi gcc在小代码更改(+;+;i)后软件不会运行

arm none eabi gcc在小代码更改(+;+;i)后软件不会运行,gcc,arm,Gcc,Arm,我对arm控制器(STM32)使用arm none eabi gcc。 问题: 源代码更改后,例如++var;代码没有运行。 如果我对同一个文件“var2=var1;”做了更多的修改,那么代码功能就正确了 可执行代码被转移到闪存中。 堆栈、链接器、启动之类的东西 非常感谢 这两个地图文件都位于此处: 发现问题。 如果在编译时未进行优化,则软件可以正常工作。 在“操作系统”上进行速度优化时,它不起作用 解决方案是将一个变量声明为“volatile”。 但是为什么编译器有时会优化它&有时不是-我不

我对arm控制器(STM32)使用arm none eabi gcc。 问题: 源代码更改后,例如++var;代码没有运行。 如果我对同一个文件“var2=var1;”做了更多的修改,那么代码功能就正确了

可执行代码被转移到闪存中。 堆栈、链接器、启动之类的东西

非常感谢

这两个地图文件都位于此处:

发现问题。 如果在编译时未进行优化,则软件可以正常工作。 在“操作系统”上进行速度优化时,它不起作用

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

您应该提供一段代码,而不是一大堆类似的东西(-1),但是我会清理构建工件并创建一个干净的新构建。完整的构建没有帮助。这似乎是源代码问题。