|
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是MCUXpresso IDE下工程鏈接文件配置管理與自動(dòng)生成機(jī)制。( {) O+ `+ e6 ]6 X% E
痞子衡在 2018 年初寫過一個(gè)專題 《嵌入式開發(fā)文件系列》,用 8 篇文章系統(tǒng)地介紹了 ARM Cortex-M 內(nèi)核微控制器開發(fā)過程中所要了解的主要文件類型:源文件、鏈接文件、工程文件、可重定向文件、映射文件、可執(zhí)行文件、反匯編文件、鏡像文件。5 w# \0 `; _: ?$ n: S% }: N
上述 8 種文件中,大家對源文件、工程文件以及鏡像文件這三種應(yīng)該是最熟悉的,而其余文件類型,很多人應(yīng)該都沒有深入研究過,但痞子衡一直認(rèn)為只有深入了解了鏈接文件才算是真正步入嵌入式開發(fā)老手行列。1 ^' e5 R) J' r6 a% ^
我們知道不同 IDE 下鏈接文件語法是不一樣的,而恩智浦 MCUXpresso IDE 底層編譯器是 Arm GCC,因此其鏈接文件就是標(biāo)準(zhǔn) GCC 下 .ld 文件。如果你對 .ld 文件語法非常精通,當(dāng)然可以自己從頭開始寫鏈接文件,如果不太熟的話,也不要緊張,MCUXpresso IDE 早就為你掃清了障礙,在這個(gè) IDE 下能夠支持圖形界面里做鏈接配置,然后自動(dòng)生成相應(yīng)鏈接文件的。今天痞子衡就和大家聊聊這個(gè)特性:
' u! I* s; O( U+ RNote: 在開始今天的主題之前,可以先看一下痞子衡的舊文 《MCUXpresso IDE下SDK工程在Build配置上與IAR,MDK差異》,本篇實(shí)際上就是這篇文章的后續(xù)。一、準(zhǔn)備開發(fā)環(huán)境首先需要準(zhǔn)備好環(huán)境,包含必要的軟件,痞子衡的環(huán)境如下:; z. {9 }6 ~# _. q1 m) n+ V
集成開發(fā)環(huán)境:MCUXpresso IDE_11.4.0_6224,點(diǎn)此下載軟件開發(fā)包:SDK_2.10.0_EVK-MIMXRT1170(Toolchain需包含MCUXpresso IDE),點(diǎn)此下載二、MCUXpresso IDE下鏈接文件配置現(xiàn)在進(jìn)入正題,我們先按照 《MCUXpresso IDE下SDK工程導(dǎo)入與workspace管理機(jī)制》 一文步驟從 SDK 包里導(dǎo)入生成一個(gè)工程(就選最簡單的 hello_world 吧)。工程導(dǎo)入成功后,會(huì)在 \MCUXpressoIDE_11.4.0_6224\workspace\evkmimxrt1170_hello_world_demo_cm7 下看到 .project 工程文件,在 MCUXpresso IDE 下打開這個(gè)工程。: t# z5 Y G& J* v
2.1 Memory 空間定義在工程名上右擊選擇 Properties 進(jìn)入選項(xiàng)配置界面,其中 MCU settings 一欄里定義的就是 MCU 實(shí)際存儲(chǔ)空間,這是鏈接文件的空間分配基礎(chǔ),我們后面會(huì)將程序里全部的段都鏈接在這些區(qū)域里。; w$ e' v% L$ j% `4 B, j6 W2 {" m7 F! Z
存儲(chǔ)空間屬性(Type)分為兩類:一類是 Flash(存放 RO 段),一類是 RAM(存放 RW 段)。每個(gè)屬性的空間都可以被定義很多個(gè),但其中僅 Alias 名為 Flash 和 RAM 的空間才是默認(rèn)被選中用于鏈接程序段的(可通過上下移動(dòng)按鈕將指定空間調(diào)整到前排 Flash 和 RAM 的位置)。 |
|