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