创建RT-thread软件仿真工程 写RT-thread内核

新建RT-Thread工程——软件仿真

在开始编写RT-Thread内核之前,我们先新建一个RT-Thread工程,Device选择Cortex-M3(Cortex-M4或Cortex-M7)内核的处理器,调试方式选择软件仿真,最后把RT-Thread移植到STM32开发板上。最后的移植非常简单,只需要换一下启动文件并添加bsp驱动即可。

新建本地工程文件夹
在开始新建工程之前,我们先在本地计算机中新建一个文件夹用于存放工程。可将文件夹命名为“新建RT-Thread工程——软件仿真”(名字可以随意设置),然后在该文件夹下新建各个文件夹和文件,有关这些文件夹的包含关系和作用如表1所示。

表1 工程文件夹根目录下的文件夹及作用
创建RT-thread软件仿真工程 写RT-thread内核_第1张图片
创建RT-thread软件仿真工程 写RT-thread内核_第2张图片
创建RT-thread软件仿真工程 写RT-thread内核_第3张图片

使用KEIL新建工程
创建RT-thread软件仿真工程 写RT-thread内核_第4张图片
New Project

首先打开KEIL5软件,新建一个工程,工程文件放在刚刚创建好的目录Project下面,命名为RT-Thread-ra,其中ra是自定义的,应注意必须用英文,不能用中文。

Select Device for Target

设置好工程名称,确定之后会弹出相应Select Device for Target对话框,选择处理器,这里选择ARMCM4,也可根据Device型号选择ARMCM3或ARMCM7,根据自己的开发板选择
创建RT-thread软件仿真工程 写RT-thread内核_第5张图片

Manage Run-Time Environment

选择好处理器后,单击OK按钮将弹出Manage Run-Time Environment对话框。这里在CMSIS栏中选中CORE,在Device栏中选中Startup文件即可
创建RT-thread软件仿真工程 写RT-thread内核_第6张图片

单击OK按钮,关闭Manage Run-Time Environment对话框之后,刚刚选择的CORE和Startup这两个文件就会添加到工程组中
创建RT-thread软件仿真工程 写RT-thread内核_第7张图片

这两个文件刚开始都是存放在KEIL的安装目录下,当配置Manage Run-Time Environment对话框之后,软件就会把选中的文件从KEIL的安装目录复制到我们的工程目录Project\RTE\Device\(ARMCM3ARMCM4或ARMCM7)下面。其中startup_ARMCM4.s是用汇编语言编写的启动文件,system_ARMCM4.c是用C语言编写的与时钟相关的文件。想了解更加具体的内容,可直接阅读这两个文件的源码。只要是(Cortex-M3、Cortex-M4或Cortex-M7)内核的单片机,这两个文件都适用。

在KEIL工程中新建文件组
在这里插入图片描述

创建RT-thread软件仿真工程 写RT-thread内核_第8张图片
创建RT-thread软件仿真工程 写RT-thread内核_第9张图片

创建一个空的main.c
创建RT-thread软件仿真工程 写RT-thread内核_第10张图片
设置软件仿真
创建RT-thread软件仿真工程 写RT-thread内核_第11张图片
没有开发板可以使用这个软件仿真

修改时钟大小

在时钟相关文件system_ARMCM4.c的开头,有一段代码定义了系统时钟的频率为25MHz。在软件仿真时,要确保时间的准确性,代码中系统时钟与软件仿真的时钟必须一致,所以Options for Target对话框中Target选项卡中的时钟频率应该由默认的12改成25。
创建RT-thread软件仿真工程 写RT-thread内核_第12张图片

时钟相关宏定义
#define __HSI      ( 8000000UL)
#define __XTAL      ( 5000000UL)

#define __SYSTEM_CLOCK  (5*__XTAL) /* 5*5000000=25M*/

添加头文件路径

创建RT-thread软件仿真工程 写RT-thread内核_第13张图片

参考《RT-Thread内核实现与应用开发实战指南-STM32》

你可能感兴趣的