执行错误:部分C代码已编译,但在ECM中未正确执行

执行错误:部分C代码已编译,但在ECM中未正确执行,c,matlab,gcc,embedded,compiler-optimization,C,Matlab,Gcc,Embedded,Compiler Optimization,我正在处理ECM(使用gcc编译器生成十六进制文件并在控制器上闪存) 有一个代码x=(a+b)/2,a和b的值是多少,但是x中的值始终为零 我在x上有一个循环条件,这导致我的ECM复位 知道出了什么问题吗 我尝试过的事情: 在-->的正上方添加了一些冗余代码不值得,编译器对此进行了优化 我怀疑编译器-->的优化会因此查看汇编代码,但这也没有帮助 使变量成为全局变量(在私有之前)-->out是相同的 你能告诉我我还能试什么吗 这也是一个自动编码(使用MATLAB建模)。在a和b的声明中添加vola

我正在处理ECM(使用
gcc
编译器生成十六进制文件并在控制器上闪存)

有一个代码
x=(a+b)/2
a
b
的值是多少,但是
x
中的值始终为零

我在
x
上有一个循环条件,这导致我的
ECM
复位

知道出了什么问题吗

我尝试过的事情:

  • 在-->的正上方添加了一些冗余代码不值得,编译器对此进行了优化
  • 我怀疑编译器-->的优化会因此查看汇编代码,但这也没有帮助
  • 使变量成为全局变量(在私有之前)-->out是相同的
  • 你能告诉我我还能试什么吗


    这也是一个自动编码(使用
    MATLAB
    建模)。

    a
    b
    的声明中添加
    volatile
    限定符,什么是“ECM”?你的密码是什么?
    a
    b
    的值是什么?
    a
    b
    x
    的类型是什么?需要更多的上下文@DKrueger的答案很可能是正确的,但这仍然是一个猜测(除非他对MATLAB的代码生成有所了解)。当未对编译器进行优化时,代码是否工作?在这方面,德克鲁格很可能是有钱人。