新建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
文章图片
设置软件仿真
文章图片
没有开发板可以使用这个软件仿真
修改时钟大小
【#|创建RT-thread软件仿真工程 写RT-thread内核】在时钟相关文件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》
推荐阅读
- RT-Thread|RT-Thread快速入门-初探RT-Thread
- #|RTOS rt-thread裸机系统与多线程系统
- #|RT-Thread设计与实现(RT-Thread 概述和架构)
- #|No.2 STM32F429IGT6 固件库 CMSIS标准及库和STM32官方文档资料总结 (STM32F429/F767/H743)
- #|[启动流程] RT-Thread是如何启动的()
- 笔记|学习太极创客 — ESP8226 (二)
- STM32|基于STM32 + SYN6288语音播报
- STM32|bootloader | 基于STM32F407 - 使用STM32Cubeprogrammer的USB DFU进行固件烧写
- #|4-MySQL原理-SQL执行原理