我正在ECM上工作(使用gcc
编译器,我们生成十六进制文件并将其刷新到控制器上)
有一个代码x=(a+b)/2
,无论a
和b
的值如何,但是x
中的值始终为零。
我在x
上存在循环条件,这导致我的ECM
重置。
知道出了什么问题吗?
我尝试过的事情:
在此之上添加了一些冗余代码->不值得,编译器对其进行了优化
我怀疑编译器的优化->因此,请看一下汇编代码,但这也无济于事
使变量成为全局变量(在私有之前)->输出相同
您能说明我还能尝试什么吗?
这也是一个自动编码(使用MATLAB
建模)。
最佳答案
将volatile
限定词添加到a
和b
的声明中。