大家好,我是痞子衡,是正經搞技術的痞子,今天痞子衡給大家介紹的是MCUXpresso IDE下SDK工程在Build配置上與IAR,MDK差異,
恩智浦 SW 團隊每個季度都會公布 SDK、Tool 官網下載量,其中 MCUXpresso IDE 下載量一直穩步上升,這個恩智浦自家 IDE 其實在歐美和中國臺灣地區是非常受歡迎的,在中國大陸普及率稍微低一點,主要是大陸這邊的嵌入式開發者還是更熟悉 IAR/MDK 這兩個經典的 IDE,人嘛,都不愿意輕易離開自己的舒適區,
今天痞子衡要介紹的是 MCUXpresso IDE 聯合官方 SDK 軟體包的示例工程 build 配置管理機制,及其與 IAR、MDK 示例工程的對比差異,
一、準備開發環境
首先需要準備好環境,包含必要的軟體,痞子衡的環境如下:
- 集成開發環境: MCUXpresso IDE_11.4.0_6224,點此下載
- 軟體開發包: SDK_2.10.0_EVK-MIMXRT1170(Toolchain需包含MCUXpresso IDE),點此下載
二、回顧IAR/MDK上工程Build
首先給大家普及一下工程 build 的概念,我們知道嵌入式工程里輸入型檔案除了代碼源檔案之外,還包含工程組態檔以及鏈接檔案(可以看痞子衡寫的 《嵌入式開發檔案系列》),一套代碼源檔案就是一個具體的應用工程,但是這套代碼源檔案可以搭配多個不同的工程組態檔和鏈接檔案,因此在 IDE 里每個具體的工程組態檔和鏈接檔案組合都是一個 build,
我們以 SDK\boards\evkmimxrt1170\demo_apps\hello_world\cm7 這個最基礎的例程為例來具體介紹,先來看 IAR 工程 hello_world_demo_cm7.eww,這個 workspace 下包含了 6 * 2 個 build,如果把 xx_debug 和 xx_release 算成一種的話,那實際就是 6 種不同的 build:
1. debug/release build 對應鏈接檔案 MIMXRT1176xxxxx_cm7_ram.icf, ro 段鏈接在 ITCM 起始地址,rw 段鏈接在 DTCM 里
2. flexspi_nor_debug/release build 對應鏈接檔案 MIMXRT1176xxxxx_cm7_flexspi_nor.icf, ro 段鏈接在 Flash 起始地址,rw 段鏈接在 DTCM 里
3. sdram_debug/release build 對應鏈接檔案 MIMXRT1176xxxxx_cm7_sdram.icf, ro 段鏈接在 ITCM 起始地址,rw 段鏈接在 SDRAM 里
4. flexspi_nor_sdram_debug/release build 對應鏈接檔案 MIMXRT1176xxxxx_cm7_flexspi_nor_sdram.icf, ro 段鏈接在 Flash 起始地址,rw 段鏈接在 SDRAM 里
5. sdram_txt_debug/release build 對應鏈接檔案 MIMXRT1176xxxxx_cm7_sdram_txt.icf, ro 段鏈接在 SDRAM 起始地址,rw 段鏈接在 OCRAM 里
6. ram_0x1400_debug/release build 對應鏈接檔案 MIMXRT1176xxxxx_cm7_ram_0x1400.icf, ro 段鏈接在 ITCM 偏移 0x1400 地址,rw 段鏈接在 DTCM 里
在實際開發時,可以輕松切換不同 build 做除錯,每個 build 對應的工程設定也可以按需調整(預編譯宏,優化選項等),此外,在選單欄 Project / Edit Configurations 里也可以增刪 build,

再來看 MDK 工程 hello_world_demo_cm7.uvprojx,這個 workspace 下同樣包含了 6 * 2 個 build,跟 IAR 下體驗是完全一致的,此外,在選單欄 Project / Manage / Project Items 里也可以增刪 build,

三、MCUXpresso IDE上工程Build
現在來到了我們的主角 MCUXpresso IDE 工程,SDK 包里默認沒有放其工程檔案,需要按照 《MCUXpresso IDE下SDK工程匯入與workspace管理機制》 一文步驟匯入生成,
工程匯入成功后,會在 \MCUXpressoIDE_11.4.0_6224\workspace\evkmimxrt1170_hello_world_demo_cm7 下看到 .project 工程檔案,在這個 workspace 下默認僅包含了 2 個 build(Debug/Release),這里的體驗就跟 IAR/MDK 下不一致了,雖然我們在選單欄 Project / Build Configurations / Manage 里也可以增刪 build,

默認 MCUXpresso IDE 工程僅兩個 build 主要跟其鏈接檔案管理機制有關,在 IAR/MDK 下不同 build 的鏈接檔案都是事先準備好的,而 MCUXpresso IDE 下是可以自動實時生成符合要求的鏈接檔案的(下圖 Manage linker script 選項默認是勾選的,即可根據 IDE 設定生成鏈接檔案 \MCUXpressoIDE_11.4.0_6224\workspace\evkmimxrt1170_hello_world_demo_cm7\Debug\evkmimxrt1170_hello_world_demo_cm7_Debug.ld),
基于這種鏈接檔案管理機制,我們確實沒有必要創建多個 build,切換 build 實際上就是更改鏈接檔案設定即可(這里假定工程其他設定不需要更改),當然如果你有一些定制化的鏈接檔案,也可以去掉 Manage linker script 選項的勾選,在路徑里指向事先準備好的 .ld 檔案也行,關于 IDE 里這部分鏈接設計,痞子衡后面會再寫文章深入介紹,

至此,MCUXpresso IDE下SDK工程在Build配置上與IAR,MDK差異痞子衡便介紹完畢了,掌聲在哪里~~~
歡迎訂閱
文章會同時發布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號 平臺上,
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦,

最后歡迎關注痞子衡個人微信公眾號【痞子衡嵌入式】,一個專注嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式,
衡杰(痞子衡),目前就職于恩智浦MCU系統部門,擔任嵌入式系統應用工程師,
專欄內所有文章的轉載請注明出處:http://www.cnblogs.com/henjay724/
與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]
可以關注痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式專案,
關于專欄文章有任何疑問請直接在博客下面留言,痞子衡會及時回復免費(劃重點)答疑,
痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308071.html
標籤:嵌入式
