新建RT-Thread工程——软件仿真
在开始编写RT-Thread内核之前,我们先新建一个RT-Thread工程,Device选择Cortex-M3(Cortex-M4或Cortex-M7)内核的处理器,调试方式选择软件仿真,最后把RT-Thread移植到STM32开发板上。最后的移植非常简单,只需要换一下启动文件并添加bsp驱动即可。
新建本地工程文件夹
在开始新建工程之前,我们先在本地计算机中新建一个文件夹用于存放工程。可将文件夹命名为“新建RT-Thread工程——软件仿真”(名字可以随意设置),然后在该文件夹下新建各个文件夹和文件,有关这些文件夹的包含关系和作用如表1所示。
表1 工程文件夹根目录下的文件夹及作用
使用KEIL新建工程
New Project
首先打开KEIL5软件,新建一个工程,工程文件放在刚刚创建好的目录Project下面,命名为RT-Thread-ra,其中ra是自定义的,应注意必须用英文,不能用中文。
Select Device for Target
设置好工程名称,确定之后会弹出相应Select Device for Target对话框,选择处理器,这里选择ARMCM4,也可根据Device型号选择ARMCM3或ARMCM7,根据自己的开发板选择
Manage Run-Time Environment
选择好处理器后,单击OK按钮将弹出Manage Run-Time Environment对话框。这里在CMSIS栏中选中CORE,在Device栏中选中Startup文件即可
单击OK按钮,关闭Manage Run-Time Environment对话框之后,刚刚选择的CORE和Startup这两个文件就会添加到工程组中
这两个文件刚开始都是存放在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工程中新建文件组
创建一个空的main.c
设置软件仿真
没有开发板可以使用这个软件仿真
修改时钟大小
在时钟相关文件system_ARMCM4.c的开头,有一段代码定义了系统时钟的频率为25MHz。在软件仿真时,要确保时间的准确性,代码中系统时钟与软件仿真的时钟必须一致,所以Options for Target对话框中Target选项卡中的时钟频率应该由默认的12改成25。
时钟相关宏定义 #define __HSI ( 8000000UL) #define __XTAL ( 5000000UL) #define __SYSTEM_CLOCK (5*__XTAL) /* 5*5000000=25M*/
添加头文件路径
参考《RT-Thread内核实现与应用开发实战指南-STM32》