內容提要
引言
1. S32K1xx系列MCU的IAR樣例工程
1.1 S32K1xx系列MCU的IAR樣例工程的獲取1.2 S32K1xx系列MCU的IAR樣例工程的使用1.3 S32K1xx系列MCU的IAR toolchain makefile樣例工程的獲取1.4 S32K1xx系列MCU的IAR toolchain makefile樣例工程的使用2. IAR toolchain使用常見問題(FAQ)
2.2 IAR MCU應用工程的編譯目標切換和創建2.4 IAR中使用S32K1xx EVB的板載OpenSDA作為debugger下載和調試S32K1xx系列MCU的應用工程2.5 在IAR調試界面中查看CPU內核寄存器、外設寄存器、存儲器、函數調用樹、堆棧使用總結
IAR toolchain 和ARM Keil/MDK toolchain在業界被廣泛地用於開發基於ARM Cortex M內核的MCU的應用軟體,很多ARM Cortex M內核MCU,比如LPC17xx,23/24/25xx, Kinetis Kxx, STM32xxx系列MCU的用於還是習慣於使用IAR作為開發工具,其簡潔的用戶GUI界面和高效的編譯優化效率令人印象深刻。NXP的S32K1xx系列MCU是目前市面上使用最為廣泛的基於ARM Cortex M4F/M0+內核的車規級通用MCU,很多S32K1xx系列MCU的用戶也希望使用IAR來開發他們的應用軟體程序。本文對使用IAR toolchain開發S32K1xx系列MCU的應用軟體做了一些探索,總結了其中的常見問題(FAQ)和解決方案,希望對大家有所幫助和啟發。很多準備使用IAR toolchain開發S32K1xx系列應用程式的工程師遇到的第一個問題是NXP官網上和IAR安裝目錄下均為提供或集成S32K1xx系列MCU的IAR樣例工程,希望在此樣例工程的模板上修改配置,添加文件從而快速創建自己的應用工程或者進行可行性評估。在哪裡可以找到一個自己使用的S32K1xx系列MCU part對應的樣例工程呢?1.1 S32K1xx系列MCU的IAR樣例工程的獲取其實,在NXP提供的S32K1xx系列MCU的SDK安裝目錄下就提供了相應各個part number的IAR樣例工程--hello_world_iar:比如,S32K1xx SDK RTM3.0.0中集成的S32K144 IAR樣例工程目錄如下:hello_world_iar.ewp:IAR工程文件;hello_world_iar.eww:IAR工程空間(workspace)文件;description.txt:樣例工程使用和功能說明;S32K1xx各版本SDK目錄下都集成了S32K142、S32K144和S32K148的IAR樣例工程:Tips:因此,下載安裝S32DS for ARM v2018.R1 IDE並安裝其S32K1xx SDK補丁包即可獲得以上IAR樣例工程。S32DS for ARM v2018.R1 IDE和S32K1xx SDK補丁包下載連結如下:S32DS for ARM v2018.R1 IDE:https://www.nxp.com/design/software/development-software/s32-design-studio-ide/s32-design-studio-for-arm:S32DS-ARM;S32K1xx SDK補丁包:https://www.nxp.com/design/software/development-software/s32-design-studio-ide/s32-design-studio-for-arm:S32DS-ARM?tab=Design_Tools_Tab;1.2 S32K1xx系列MCU的IAR樣例工程的使用高版本的IAR IDE可以打開低版本IAR IDE創建的MCU應用工程,而反過來,低版本的IAR IDE無法打開高版本IAR IDE創建的MCU應用工程。通過查看IAR樣例工程的工程文件--hello_world_iar.ewp(使用任意文本編輯器即可打開),查找OGLastSavedByProductVersion選項的值,即可找到該IAR應用工程最後由哪個版本的IAR打開和保存(創建)。比如,S32K1xx SDK RTM3.0.0中集成的S32K144的IAR樣例工程,就是由IAR 8.11.2.13604創建的:
因此,使用IAR8.11及以上版本的IAR IDE都可以打開上面的S32K144 IAR樣例工程。Tips:使用高版本的IAR IDE打開低版本的IAR工程時,會彈出以下提示窗口,推薦選擇「yes」,打開:比如用IAR 8.32打開S32K1xx SDK RTM3.0下的S32K148的樣例工程(使用IAR 8.11創建)時,選擇「Yes」將在工程目錄下創建一個工程備份文件--Backup of hello_world_IAR.ewp:如果後面還想使用IAR 8.11打開該樣例工程,可以通過將工程根目錄下的hello_world_iar.ewp、hello_world_iar.ewd、hello_world_iar.dep和hello_world_iar.ewt以及編譯目標文件夾--Debug_RAM/FLASH刪除,並將Backup of hello_world_IAR.ewp重命名為hello_world_iar.ewp,實現:在S32K SDK的安裝目錄下僅集成了S32K142、S32K144和S32K148的IAR樣例工程,為此,我創建了S32K146的IAR樣例工程,並分享到以下百度雲盤連結供大家參考:連結: https://pan.baidu.com/s/1vVeUke3gSO68CJNZ4MrdkQ&shfl=sharesetTips:只有IAR 8.30及更高版本才可以支持S32K146,所以要使用IAR toolchain開發S32K146的應用軟體,需要安裝IAR 8.30及更高版本。Tips:後續我會把S32K116和S32K118的IAR 樣例工程也創建並分享到這個目錄供大家參考,敬請關注!1.3 S32K1xx系列MCU的IAR toolchain makefile樣例工程的獲取與此同時,NXP提供的S32K1xx系列MCU的SDK安裝目錄下還提供了相應各個part number的IAR toolchain makefile樣例工程--IAR-MKF:比如,S32K1xx SDK RTM3.0.0中集成的S32K144 IAR toolchain makefile樣例工程目錄如下:S32K1xx各版本SDK目錄下都集成了S32K116、S32K118、S32K142、S32K144、S32k146和S32K148的IAR樣例工程:Tips:因此,下載安裝S32DS for ARM v2018.R1 IDE並安裝其S32K1xx SDK補丁包即可獲得以上IAR toolchain makefile樣例工程。1.4 S32K1xx系列MCU的IAR toolchain makefile樣例工程的使用為了S32K1xx系列MCU的IAR toolchain makefile樣例工程,需要創建一個Windows的命令行批處理文件,比如Launch_Compile.bat,設置編譯使用的make工具和IAR toolchain的安裝路逕到系統環境變量-path,並調用相應的make <編譯目標>,比如:REM set the make utility set path=%path%;C:\NXP\S32DS_ARM_v2018.R1\utils\msys32\usr\bin
REM set the toolchiain pathset path=%path%;C:\IAR\Embedded_Workbench_8.0_ARM_8.11.2\arm\bin
REM enter current foldercd /d %~dp0
REM open Window CMD display@ECHO ON
REM clean and then compile the projectmake cleanmake printmake flashmake Srecord
REM press any key to continue...pauseTips:使用IAR toolchain的makefile工程,則沒有IAR版本的限制,只要使用的IAR IDE版本支持該MCU part number即可;Tips:關於使用makefile腳本編譯和調試NXP S32 SDK應用工程的具體步驟和工程解析,可以參考如下公眾號文章(點擊文章標題即可直接跳轉閱讀):2. IAR toolchain使用常見問題(FAQ)在IAR官網(www.iar.com)上大家可以直接下載到最新版本的IAR IDE評估版軟體安裝包:老版本的IAR IDE軟體安裝包,則需要使用任意有效郵箱註冊並激活一個IAR帳戶,登錄後,訪問帳戶My Page從產品更新頁面(Product Updates Pages)下載。2.2 IAR MCU應用工程的編譯目標切換和創建IAR MCU應用工程打開後,選擇Workspace下方的下拉菜單即可切換該應用工程的編譯目標:通過IAR IDE菜單Project->Edit Configurations..,則可以打開IAR工程的編譯目標配置窗口:在配置界面中,選擇New..,輸入編譯目標名稱(Name)、基於的已有編譯目標(Based onconfiguration)即可快速創建一個基於已有編譯目標的新編譯目標(e.g Rlease):
在以上配置界面中。選中某一編譯目標,Remove即可刪除該編譯目標。在IAR的Workspace中選擇某一應用工程,然後右鍵->Options,打開該應用工程的工程選項配置:在工程選項配置中選擇Output Converter->Output,勾選Generate additional output,選擇輸出的編程文件格式(Output format), 勾選Override default,輸入輸出的文件名即可生成相應格式的編程文件:即可在當前編譯目標(Debug_FLASH)目錄下的Exe子目錄下生成該S19/HEX/BIN編程文件:2.4 IAR中使用S32K1xx EVB的板載OpenSDA作為debugger下載和調試S32K1xx系列MCU的應用工程在IAR應用工程的工程選項配置中,在Debugger->Setup->Driver選項中,從下拉菜單中選擇PE micro作為該應用工程的debugger:保存以上配置,然後,回到IAR Workspace中,選擇該應用工程,點擊菜單欄的Download and Debug命令快捷圖標(或者直接使用Ctrl + D快捷鍵),即可啟動下載和調試:在彈出的P&E Connection Manager窗口中,選擇OpenSDA或者其他PEMicro的Multilink作為debugger,並選擇目標板使用的MCU part number (Select New Device)且配置OpenSDA的工作頻率小於1MHz,然後,選擇OK:即可完成應用工程的elf文件下載和調試信息加載,進入調試界面:IAR調試界面菜單欄的可用調試命令快捷圖標及其快捷鍵如下:2.5 在IAR調試界面中查看CPU內核寄存器、外設寄存器、存儲器、函數調用樹、堆棧使用通過菜單View->Registers->Registers1即可打開MCU的CPU內核寄存器查看窗口(最多可以同時打開4個內核寄存器查看窗口):通過菜單View->Call Stack即可打開當前調試應用工程的函數調用樹查看窗口:通過菜單View->Memory->Memory1即可打開MCU的內存查看窗口(最多可以同時打開4個內存查看窗口):通過勾選菜單Project->Setup SFR, 即可打開當前調試應用工程的MCU外設寄存器(包括Cortex M內核的NVIC和ITM以及異常狀態寄存器等)查看窗口:通過菜單View->Stack->Stack1即可打開當前調試應用工程的堆棧(stack)查看窗口(最多可以同時打開2個堆棧查看窗口):本文詳細介紹了S32K1xx的IAR樣例工程獲取和使用,並分享了使用IAR toolchain開發S32K1xx系列MCU時的一些常見問題(FAQ)和調試經驗,希望對大家有所幫助。Tips:強烈建議大家使用S32DS for ARM v2018.R1 IDE創建S32K1xx系列MCU的SDK應用工程,利用其集成的Processor Expert圖形化根據配置生成SDK的配置代碼(Generated_Code目錄下的所有代碼),然後再添加到S32K1xx的IAR應用工程。關於S32DS for ARM v2018.R1 IDE和S32K1xx SDK的使用細節,請參考我公眾號(汽車電子expert成長之路)中相關的系列原創技術分享文章。閱讀更多精彩內容,請訪問以下文章目錄列表(點擊文章標題直接跳轉閱讀):
《歷史文章分類列表目錄(點擊文章標題即可直接跳轉閱讀,截止2019年9月15日)》;
原創寫作不易, 如果大家覺得本文對你的工作和學習有幫助,也歡迎大家讚賞鼓勵----我將堅持寫作,給大家帶來更多精彩的原創文章。
Tips:點擊文末的「喜歡作者」對本文進行讚賞或者「在看/好看」進行分享,也可以留言提問,我將第一時間回復大家的關切!
歡迎在此與我一起學習/探討汽車電子和嵌入式系統軟硬體設計相關的技術。若對本公眾號或者分享的文章觀點有任何意見和建議也歡迎留言指出。您的點讚/關注/轉發分享是對我辛勤寫作的最大支持和肯定!
本公眾號已開通關鍵詞回復功能,請在公眾號主頁回復如下關鍵詞以獲取更多信息和精彩文章:
關於作者,請回復關鍵詞「作者簡介」;
聯繫作者,請回復關鍵詞「聯繫作者」;
獲取高清PDF版本公眾號文章,請回復關鍵詞「獲取文章」;
獲取專業及時的技術支持服務,請回復關鍵詞「專業服務」;
下載2017~2018年度原創技術文章集合高清PDF,請回復關鍵詞「文章全集」;
CodeWarrior IDE license購買及安裝使用問題諮詢,請回復關鍵詞「CW License」;
汽車乙太網轉工業乙太網轉換器購買,請回復關鍵詞「乙太網轉換器購買」;
獲取最新最全的公眾號原創技術分享文章目錄,請回復關鍵詞「文章目錄」;
鄭重聲明:本公眾號所有原創技術文章免費閱讀,文中所有觀點/結論均為個人觀點,不代表任何公司官方觀點意見;所有demo代碼/程序,僅作參考學習,不保證質量,若用於商業用途,責任自負;所有本公眾號文章,版權歸本人所有智慧財產權,一切未經本人同意的轉載均屬違法,盜版必究~!
如果你喜歡本公眾號的文章,請點擊文章最開始的公眾號關注或微信直接長按掃描識別下方二維碼關注,你也可以在微信添加朋友-->公眾號-->輸入"汽車電子expert成長之路"搜索-->點擊關注。若對本文觀點有任何意見和建議也歡迎留言指出。
您的關注、點讚、轉發分享是對我辛勤寫作的最大肯定!
Enwei Hu(胡恩偉)
2019年10月21日於山城·重慶.