2.1 MDK 工程目录结构
Doc
readme.txt 等说明文档
FreeRTOS
Demo
板级支持包
License
FreeRTOS 组件
Source
include
FreeRTOS 源码头文件
portable
FreeRTOS 接口
Project
MDK 工程及编译过程文件
User
inc
用户源码头文件
src
main.c 等源码
2.2 MDK 工程搭建
环境:windows11 + MDK-ARM Pro v5.36
1)新建工程,选择Cortex M3内核,后期移植正点原子F103核心板;
2)选择运行环境,CMSIS接口驱动与CM3启动文件,注意启动文件不要选择 C Startup;
ARM Cortex 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层【摘自百科】。
配置后,MDK 在 ProjectRTE 目录下生成:头文件目录 _Target 与 源文件目录 DeviceARMCM3 (startup_ARMCM3.s、system_ARMCM3.c)。
4)配置 MDK 的编译器为 AC5,以兼容野火的教程,具体原因可查看:【使用FreeRTOS需要更改port.c,AC5使用RVDS下的,AC6使用GCC的】keil编译器从ac5迁移到ac6 - 走看看 (zoukankan.com) ;
3)MDK 工程源码文件分组设置;
4)main.c 代码编写;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main(void)
{
short i = 0;
while(1)
{
if(i < 100) {
i++;
i++;
} else {
i = 0;
}
}
}
启动文件 startup_ARMCM3.s 会在系统执行前,运行复位程序,过程为调用C函数 SystemInit (时钟配置)→ C库函数 __main (初始化系统变量) → __rtentry → main 函数。
5)添加头文件路径;
2.3 MDK 工程仿真配置
1)Debug 配置;
2)查看系统时钟,野火教程提出仿真时钟主频应与代码一致,实际配置时,CM3内核无法修改 XTAL 即晶振频率,可看出目前的启动代码里的外部时钟为 50MHz,系统时钟为其2分配 25MHz;
3)仿真运行;