IAR版本不兼容打開工程文件的方法
說起來本人用IAR也有好幾年,從最開始的IAR for AVR到IAR FOR MSP430,到現(xiàn)在的IAR for arm。雖說談不上很精通,但是確實(shí)用得很順手,也算是比較有感情吧。常??吹匠鯇W(xué)ARM的人會問,到底是MDK for ARM好用還是IAR for ARM好用,這就可見MDK和IAR作為ARM編譯器的統(tǒng)治地位,當(dāng)然其它還有ARM公司自己配套的ADS,免費(fèi)的GCC等很多編譯器,據(jù)說ADS不怎么更新了,其它我也很少用到,這里就不作評論了。這里我僅僅憑我個(gè)人的使用感受簡單的對比一下MDK和IAR:1,設(shè)計(jì)資源:基本上各大ARM芯片廠商提供的開發(fā)板配套的工程文件都會同時(shí)包含IAR和MDK,這兩個(gè)編譯器支持的芯片也非常全,因此設(shè)計(jì)資源這一塊來說兩者非常接近。2,內(nèi)嵌RTOS系統(tǒng):兩個(gè)編譯器都內(nèi)嵌了一些免費(fèi)的系統(tǒng),尤其是MDK獨(dú)有的RTX系統(tǒng)使用很方便,不過對于系統(tǒng)移植者來說沒什么影響。3,使用體檢:MDK的軟件仿真可以說是相對于IAR最大的優(yōu)勢,讓我們可以最小成本的驗(yàn)證程序。IAR的快速定位函數(shù)功能是我覺得比較實(shí)用的一個(gè)亮點(diǎn)。操作上MDK可以批量的關(guān)掉打開的所有文件,IAR卻要一個(gè)個(gè)的點(diǎn)右鍵關(guān)閉,不太方便;MDK重新編譯的速度確實(shí)慢,而IAR則非??欤@也是我認(rèn)為IAR最大的優(yōu)點(diǎn)。4,價(jià)格:MDK和IAR都需要相應(yīng)的LISENCE.最為公司商用而言,不得不考慮價(jià)格,兩個(gè)在價(jià)格上也比較接近,大概都是幾千人民幣一個(gè)lisence,MDK的價(jià)格相對便宜一點(diǎn),國內(nèi)的代理商和技術(shù)支持也比較多,服務(wù)可能會好點(diǎn)。總之,MDK和IAR都是非常優(yōu)秀,非常穩(wěn)定的編譯平臺,用戶可以根據(jù)自己使用芯片的情況,個(gè)人喜好去選擇。
閑說完畢,下面進(jìn)入正題。在我的之前的一篇博客如果通過IAR工程查看IAR版本中講到IAR打開版本不一致的工程時(shí)候會出現(xiàn)丟失配置信息的情況,當(dāng)然我們可以安裝多個(gè)版本的IAR來解決這個(gè)問題,但是IAR的版本眾多,每個(gè)都安裝確實(shí)比較麻煩。如果不安裝,自己根據(jù)編譯信息去修改工程配置文件也有難度,你也許都不知道該工程用的什么型號的主芯片。下面介紹下我解決這個(gè)問題的簡單方法:還是打開原來工程文件中的*.ewp文件,上次也提到過搜索“OGLastSavedByProductVersion”可以查看這個(gè)工程文件最后被編譯的IAR版本。在這里仍然搜素“CCIncludePath2”可以查看這個(gè)工程文件包含的C頭文件的路徑(還是以st官方的stsw-stm32008例程為例):
可以看到下面幾行"
熟悉STM32的人都知道下面“Defined symbols”里面一般還有一些宏定義,我們繼續(xù)在ewp里面搜索“CCDefines”,類似C頭文件,可以看到原來工程的宏定義:
將這些宏定義輸入到配置文件中:
接下來我們不要忘記選擇芯片的型號。繼續(xù)在ewp里面搜索“OGChipSelectEditMenu”,可以看到工程文件選用的芯片:
根據(jù)上面的信息,在 option-general options-target里面設(shè)置芯片型號:
到這里基本上就修改完成了,我們可以試著編譯一下,看看有沒有什么問題。
我這里很好,編譯成功。如果還有什么問題,應(yīng)該都是小問題,大家再根據(jù)提示稍微修改一下即可。對于IAR 6.5以后的版本,由于IAR開始集成了CORTEX-M3的C文件,因此可以會跟st官方的core_m3.c沖突,解決的辦法就是移除官方的該文件,然后在iar的庫定義里面添加cm3庫。
最后,還有最后~。我們關(guān)掉剛剛修改好的工程,重新打開看看。是不是發(fā)現(xiàn)還有原來熟悉的錯(cuò)誤提示,不過我們進(jìn)入后編譯工程仍然沒有問題。所以說這些錯(cuò)誤提示我們不用管它,但是這些提示很煩人,我們先關(guān)掉工程,刪除掉工程目錄下的*.dep和*.ewd文件,是的,就是下面這兩個(gè)文件,放心的刪掉:
刪掉之后重新打開工程,你會發(fā)現(xiàn)所有煩人的提示都沒有了。工程可以正常使用。后面IAR會自動(dòng)生成*.dep文件,我們不用去管他了。到這里所有的修改就完成了。其實(shí)整個(gè)過程操作起來還不到5分鐘,非常方便。