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)定...