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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IAR keil5

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IAR keil5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

1.啟動文件的問題。keil5的啟動文件和iar的啟動文件是不一樣的,從keil移植過來的一定要注意這個問題。

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

? ? ? 圖1

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

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

?

或者

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

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

這個主要原因是沒有設置芯片類型與型號

更改方法:

常見問題一:Fatal Error[Pe1696]: cannot open source file "core_cm3.h"?

解決方案:

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

??

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

常見問題三:如果你的IAR工程是從別人那里復制而來,如果編譯器版本不一致可能會出現各種問題,

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

解決方案:在打開別人的工程后最后還是要按自己的實際情況設置一下工程選項,

例子中的問題就是因為沒有選芯片型號導致的,具體的操作是按自己的實際情況把工程選項都設置好了再編譯。

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

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

注意 NOROOT和 ROOT 的區別,NOROOT表示如果符號沒有被關聯的時候是被優化掉的,如果想不被優化則使用ROOT。

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

總結

以上是生活随笔為你收集整理的IAR keil5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。