工程建立

本文章利用 Github 项目 LinRTOS 为例。

在 GitHub 上克隆项目后,直接运行会出现错误:

E:\\Users\\hepta\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\6.2.0\\CMSIS\\Core\\Include\\cmsis_compiler.h(279): error: #35: #error directive: Unknown compiler. #error Unknown compiler.

原因为 CMSIS 版本过高。调整为 CMSIS 5.x 后错误解决。需要在 Manage Run-Time Environment 中选择正确的版本。

随后报错:

.\\Objects\\vTaskSchedule.axf: Error: L6218E: Undefined symbol Image$$ARM_LIB_STACK$$ZI$$Limit (referred from startup_armcm4.o).

在 Options for Target 中 Target 勾选 Use MicroLIB,错误解决。

随后报错:

Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).

这是由于 ARMCMx_acx.sct 没有链接到工程中。

在 Options for Target → Linker 中先取消勾选 Use Memory Laysout from Target Dialog,然后再下方 Scatter File 中选择 ARMCMx_acx.sct 文件,错误解决。

随后编译完成。

下面是更改后的、可以被 MDK5.24 + Arm Compiler 5.06 运行的工程:

Code.zip

其源码结构如下:项目框架 对其的解释如下:总览

Last modified: 2026-05-24