日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

IAR keil5

發(fā)布時(shí)間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IAR keil5 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Error while running ielftool.exe "--ihex" "--verbose" "E:\學(xué)習(xí)\安富萊教程\STM32-V3 F103ZE\Ex001-串口printf和scanf例程\Ex001-串口printf和scanf例程\Project\EWARMv5\Flash\Exe\STM32F103ZE-EK.out" "E:\學(xué)習(xí)\安富萊教程\STM32-V3 ?

1.啟動(dòng)文件的問(wèn)題。keil5的啟動(dòng)文件和iar的啟動(dòng)文件是不一樣的,從keil移植過(guò)來(lái)的一定要注意這個(gè)問(wèn)題。

? 2.core_cm3.h文件問(wèn)題。由于iar自帶了該文件,所以keil5中需要將core_cm3.h文件刪除或改成其他名字,iar中的需要更改的地方如圖1,在Options->General options->Library Configration的CMSIS下勾選UseCMSIS。注意Library下選擇Full是使用微庫(kù)。
如果沒(méi)有選擇芯片? 也不會(huì)有USE CMSIS

? ? ? 圖1

? 3.ROM/RAM起始地址問(wèn)題。keil5在Option中直接填入,如下圖2。iar如圖3所示,在Options->Linker->Config下勾選Override default(如果不勾選,默認(rèn)就是芯片的正常地址)選擇分散加載文件的路勁,然后點(diǎn)擊Edite...進(jìn)行編輯。注意:Vector table是中斷向量表偏移地址,注意和起始rom地址一致。

4.輸出hex文件。iar輸入hex文件如圖4。Options->Output Converter->Output下勾選Generate additional output,在Output format下拉中選擇Intel extended。同理輸出bin也是在這里選擇。?

?

或者

?5.iar的.h文件路徑和預(yù)處理宏,在Option->C/C++ Complier->Additonal include directorier和Define Symbols。圖5的Additional中填入的路勁是絕對(duì)路徑,如果工程考到別的地方再次編譯會(huì)報(bào)錯(cuò),可在Edit Include directory 中的路徑后面的倒三角中選擇帶$PROJ_DIR$的,表示選擇工程內(nèi)的路徑。
?

錯(cuò)誤積累1:Error[Ta097]: Cannot call intrinsic function "__nounwind __DSB" from Thumb mode in this architecture

這個(gè)主要原因是沒(méi)有設(shè)置芯片類型與型號(hào)

更改方法:

常見(jiàn)問(wèn)題一:Fatal Error[Pe1696]: cannot open source file "core_cm3.h"?

解決方案:

IAR的安裝路徑下已有CMSIS,不需要添加額外的文件,如果包含了自己的CMSIS文件就會(huì)有沖突而會(huì)報(bào)很多錯(cuò) 在options->general->library configuration里的CMSIS你看Use CMSIS是不是被勾選了可以勾選這個(gè)選項(xiàng),不用你的CMSIS文件,這樣就解決了

??

常見(jiàn)問(wèn)題二 :Error[Pe020]: identifier "FILE" is undefined 解決方案:如果工程中是用了串口,需要在IAR的Options -> General Options ->Library Configuration里設(shè)置一下函數(shù)庫(kù), 不然printf函數(shù)不對(duì),將Library Configuration 中的Library 設(shè)置由"Normal"改為"Full"就可以了。

常見(jiàn)問(wèn)題三:如果你的IAR工程是從別人那里復(fù)制而來(lái),如果編譯器版本不一致可能會(huì)出現(xiàn)各種問(wèn)題,

例如Error[Ta097]: Cannot call intrinsic function "__nounwind __DSB" from Thumb mode in this architecture? 啥啥的,很多。

解決方案:在打開(kāi)別人的工程后最后還是要按自己的實(shí)際情況設(shè)置一下工程選項(xiàng),

例子中的問(wèn)題就是因?yàn)闆](méi)有選芯片型號(hào)導(dǎo)致的,具體的操作是按自己的實(shí)際情況把工程選項(xiàng)都設(shè)置好了再編譯。

常見(jiàn)問(wèn)題四:還是IAR版本不同造成的,例如有時(shí)可能出現(xiàn):Warning[25]: Label 'Reset_Handler' is defined pubweak in a section implicitly declared root?

解決方案:7.1版本之前,section默認(rèn)是noroot,但現(xiàn)在是root。所以可以將SECTION .text:CODE:REORDER(1)改成SECTION .text:CODE:REORDER:NOROOT(1)或SECTION .text:CODE:REORDER:ROOT(1)。

注意 NOROOT和 ROOT 的區(qū)別,NOROOT表示如果符號(hào)沒(méi)有被關(guān)聯(lián)的時(shí)候是被優(yōu)化掉的,如果想不被優(yōu)化則使用ROOT。

解決辦法就是在SECTION .text:CODE:REORDER(1) 這句的REORDER 與(1)之間添加 :NOROOT !!! 注意位置和前面的冒號(hào)!!!

總結(jié)

以上是生活随笔為你收集整理的IAR keil5的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。