2013-05-09 108 views
0

我在ECM正常運行(使用gcc編譯器,我們將生成hex文件並刷新它控制器)執行錯誤:C代碼部分編譯但沒有在ECM

有一個代碼x=(a+b)/2,什麼都值爲ab,但x中的值始終爲零。

我有一個循環條件x,這是導致我的ECM重置。

任何想法是什麼問題?我曾嘗試

事情:

  1. 加入了一些冗餘的代碼只是上面 - >不值得,編譯器優化的
  2. 我懷疑編譯器的優化 - >因此具有看看組裝代碼,但這是沒有幫助的任何
  3. 作出的變量的全局(即私人前) - >出放是一樣的

你能否對我還有什麼可以嘗試一些輕?

這也是一個自動代碼(使用MATLAB建模)。

+2

什麼是「ECM」?你的代碼是什麼? 'a'和'b'的值是什麼? 'a','b'和'x'的類型是什麼? – 2013-05-09 06:33:20

+0

需要更多的上下文。 @DKrueger的答案可能是對的,但它仍然是一個猜測(除非他知道關於MATLAB代碼生成的一些東西)。沒有編譯器優化時代碼是否工作?在這個問題上,DKrueger可能就是爲了錢。 – Clifford 2013-05-09 22:57:04

回答

0

volatile限定符添加到ab的聲明中。