專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

IAR下載時(shí)出現(xiàn)的問(wèn)題及解決辦法!

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月30日   【字體:
調(diào)試過(guò)程中難免出現(xiàn)一些問(wèn)題,許多同學(xué)也有類(lèi)似的問(wèn)題,現(xiàn)在就把可能出現(xiàn)的bug陸續(xù)更新吧!

1.Building configuration: as - Debug
Updating build tree...

Configuration is up-to-date.

重復(fù)make就是這樣顯示的。如果程序更改后第一次make就會(huì)出現(xiàn)。
Building configuration: xx - Debug 
Updating build tree... 
main.c  
Linking 
 
Total number of errors: 0 
Total number of warnings: 0

2.Disassembly窗口內(nèi)顯示的是編譯之后轉(zhuǎn)化成的匯編代碼
3.IAR中查看局部變量的值
查看IAR中變量的值可以使用 Quick Watch 、Watch 、Locals窗口,但有時(shí)會(huì)出現(xiàn)unavailable狀態(tài)。
例如兩個(gè)局部變量,一個(gè)先用,另一個(gè)后用,那么兩者可能會(huì)被分配在同一個(gè)寄存器中哦……
這樣當(dāng)程序運(yùn)行到后一個(gè)變量處時(shí),前一個(gè)變量就失效了,那么當(dāng)然也就顯示不出來(lái)了……
自動(dòng)窗口Locals:View->Auto,開(kāi)啟Auto窗口。自動(dòng)窗口顯示當(dāng)前被修改過(guò)的表達(dá)。

Quick Watch 窗口的值沒(méi)有實(shí)時(shí)改變。
4.IAR的代碼優(yōu)化
就我個(gè)人的經(jīng)驗(yàn)來(lái)看: 在IAR中開(kāi)啟最高優(yōu)化時(shí)導(dǎo)至程序不能正常工作的原因一般在
1,全局變量的處理上. 2, 無(wú)用代碼(一般是用循環(huán)作延時(shí))
一般可以通過(guò)以下幾個(gè)方法來(lái)解決:
1,由多個(gè)子程序(ISR)都會(huì)操作到的全局變量一定要加 VOLATILE。
2,有無(wú)用代碼的程序可以用指定優(yōu)化級(jí)的方法來(lái)保證其不會(huì)被優(yōu)化掉...建議用__DELAY_CYCLES()...

其它的還沒(méi)有發(fā)現(xiàn)...我做了好幾人項(xiàng)目.都用了最高優(yōu)化.程序運(yùn)行穩(wěn)定...

關(guān)閉窗口

相關(guān)文章