|
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MCUXpresso IDE下工程链接文件配置管理与自动生成机制。9 {: @+ N) ?1 P5 c9 Q* M
痞子衡在 2018 年初写过一个专题 《嵌入式开发文件系列》,用 8 篇文章系统地介绍了 ARM Cortex-M 内核微控制器开发过程中所要了解的主要文件类型:源文件、链接文件、工程文件、可重定向文件、映射文件、可执行文件、反汇编文件、镜像文件。
' v& e- V3 I8 @上述 8 种文件中,大家对源文件、工程文件以及镜像文件这三种应该是最熟悉的,而其余文件类型,很多人应该都没有深入研究过,但痞子衡一直认为只有深入了解了链接文件才算是真正步入嵌入式开发老手行列。9 s3 M) e+ U L
我们知道不同 IDE 下链接文件语法是不一样的,而恩智浦 MCUXpresso IDE 底层编译器是 Arm GCC,因此其链接文件就是标准 GCC 下 .ld 文件。如果你对 .ld 文件语法非常精通,当然可以自己从头开始写链接文件,如果不太熟的话,也不要紧张,MCUXpresso IDE 早就为你扫清了障碍,在这个 IDE 下能够支持图形界面里做链接配置,然后自动生成相应链接文件的。今天痞子衡就和大家聊聊这个特性:
* F+ z( k) z* m9 kNote: 在开始今天的主题之前,可以先看一下痞子衡的旧文 《MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异》,本篇实际上就是这篇文章的后续。一、准备开发环境首先需要准备好环境,包含必要的软件,痞子衡的环境如下:
3 D% q- \. [( K6 \7 H- y2 M/ t集成开发环境:MCUXpresso IDE_11.4.0_6224,点此下载软件开发包:SDK_2.10.0_EVK-MIMXRT1170(Toolchain需包含MCUXpresso IDE),点此下载二、MCUXpresso IDE下链接文件配置现在进入正题,我们先按照 《MCUXpresso IDE下SDK工程导入与workspace管理机制》 一文步骤从 SDK 包里导入生成一个工程(就选最简单的 hello_world 吧)。工程导入成功后,会在 \MCUXpressoIDE_11.4.0_6224\workspace\evkmimxrt1170_hello_world_demo_cm7 下看到 .project 工程文件,在 MCUXpresso IDE 下打开这个工程。
& f/ N7 q6 H) e+ R& ?* G2.1 Memory 空间定义在工程名上右击选择 Properties 进入选项配置界面,其中 MCU settings 一栏里定义的就是 MCU 实际存储空间,这是链接文件的空间分配基础,我们后面会将程序里全部的段都链接在这些区域里。' n2 _# d) r9 ~* O) q9 j
存储空间属性(Type)分为两类:一类是 Flash(存放 RO 段),一类是 RAM(存放 RW 段)。每个属性的空间都可以被定义很多个,但其中仅 Alias 名为 Flash 和 RAM 的空间才是默认被选中用于链接程序段的(可通过上下移动按钮将指定空间调整到前排 Flash 和 RAM 的位置)。 |
|