大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是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),點此下載下傳
首先給大家普及一下工程 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:
在實際開發時,可以輕松切換不同 build 做調試,每個 build 對應的工程設定也可以按需調整(預編譯宏,優化選項等)。此外,在菜單欄 Project / Edit Configurations 裡也可以增删 build。

再來看 MDK 工程 hello_world_demo_cm7.uvprojx,這個 workspace 下同樣包含了 6 * 2 個 build,跟 IAR 下體驗是完全一緻的。此外,在菜單欄 Project / Manage / Project Items 裡也可以增删 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元起步)再發。