使用新版本IAR編譯老版本的STM32工程
1叹卷、引言
IAR作為STM32芯片的常用編譯器贮尉,其版本更新較快琼了,特別是大版本更新會出現工程的兼容性問題嫡丙,比如常見的新版本IAR打開老版本的工程會出現編譯不通過問題莹汤,本文將介紹如何解決該問題快鱼。
2、打開工程
原材料:
老版本IAR工程:一個使用IAR for ARM v5.x編譯器建立的STM32工程
新版本IAR:IAR for ARM v8.x
現使用新編譯器打開老工程進行編譯,我們會發(fā)現報錯如下
Snipaste_2018-04-02_10-53-02.jpg
可見錯誤為定義錯誤抹竹,并與新編譯器的一些.h相關线罕。其根本原因在于該工程使用的STM32一些庫文件與新版本IAR的庫文件已經不一致,即老工程的內核庫文件版本太老窃判,我們需將其修改使用新版IAR編譯器帶的文件钞楼。
3、修改工程設置
下面進行修改工程設置使其編譯通過袄琳,
(1) 禁用工程目錄下的內核頭文件
在工程文件夾下存在一個CoreSupport文件夾询件,其中包括個core_cm3.h文件如下
將該文件刪除或修改擴展名,即讓編譯器不使用改文件唆樊,修改后如下
[圖片上傳失敗...(image-d650eb-1522678605890)]
(2) 修改工程設置使用新編譯器的庫文件
打開工程的Option勾選Library Configuration中的Use CMSIS選項宛琅,如下
[圖片上傳失敗...(image-8ccf29-1522678605890)]
經過上述修改后再進行編譯
[圖片上傳失敗...(image-3f58c5-1522678605890)]
編譯成功!
},x?yO?S