IAR編譯器的常見問題
1.編譯報(bào)錯如圖所示:
很顯然你沒有使能寄存器的位定義。方法如下:Project ——> Option ——> General Options ——> System(如下圖所示),勾選
Enable bit definitions in I/O-Include files即可
2.MCU型號選擇
如果和我一樣都次都是以空工程創(chuàng)建的話,不過忘了第一步先進(jìn)Project ——> Option ——> General Options ——> Target選擇所使用的MCU型號,不然編譯免不了要報(bào)錯,如下圖所示。
3. 堆棧大小
今天下午編譯一個程序,0錯誤0警告,挺好,可一運(yùn)行就跑飛,根本不能正常運(yùn)行。
其實(shí)是我沒有正常設(shè)置堆棧大小導(dǎo)致的這種問題,尤其是在寫大工程時,這種錯誤出現(xiàn)的概率很高。GCC和IAR分配堆棧的方式不同,IAR先分配堆棧空間,相當(dāng)于定義一個全局?jǐn)?shù)組為堆??臻g,堆棧初始為堆??臻g最高地址;GCC不用先分配堆棧,自動把RAM剩余空間作為堆棧空間,堆棧初始為RAM最高地址。
評論