使用新版本IAR編譯老版本的STM32工程
1、引言
IAR作爲STM32芯片的常用編譯器,其版本更新較快,特別是大版本更新會出現工程的兼容性問題,比如常見的新版本IAR打開老版本的工程會出現編譯不通過問題,本文將介紹如何解決該問題。
2、打開工程
原材料:
老版本IAR工程:一個使用IAR for ARM v5.x編譯器建立的STM32工程
新版本IAR:IAR for ARM v8.x
現使用新編譯器打開老工程進行編譯,我們會發現報錯如下
可見錯誤爲定義錯誤,並與新編譯器的一些.h相關。其根本原因在於該工程使用的STM32一些庫文件與新版本IAR的庫文件已經不一致,即老工程的內核庫文件版本太老,我們需將其修改使用新版IAR編譯器帶的文件。
3、修改工程設置
下面進行修改工程設置使其編譯通過,
(1) 禁用工程目錄下的內核頭文件
在工程文件夾下存在一個CoreSupport文件夾,其中包括個core_cm3.h文件如下
將該文件刪除或修改擴展名,即讓編譯器不使用改文件,修改後如下
(2) 修改工程設置使用新編譯器的庫文件
打開工程的Option勾選Library Configuration中的Use CMSIS選項,如下
經過上述修改後再進行編譯
編譯成功!
更多內容 歡迎關注公衆號 “嵌入式大玩家”回覆任何技術問題我們一起學習討論