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

简介: 创建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 工程文件夹根目录下的文件夹及作用

使用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》

相关文章
|
7月前
|
消息中间件 Linux 芯片
RT-Thread快速入门-体验RT-Thread
RT-Thread快速入门-体验RT-Thread
109 0
RT-Thread快速入门-体验RT-Thread
|
7月前
|
消息中间件 算法 编译器
RT-Thread快速入门-了解内核启动流程
RT-Thread快速入门-了解内核启动流程
86 0
|
7月前
|
API
RT-Thread快速入门-中断管理
RT-Thread快速入门-中断管理
159 0
|
7月前
|
存储 调度 芯片
RT-Thread快速入门-内核移植
RT-Thread快速入门-内核移植
121 0
|
7月前
|
消息中间件 存储 Linux
RT-Thread快速入门-信号实现
RT-Thread快速入门-信号实现
93 0
|
调度 C语言 芯片
RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析)
今天就在前面我们RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程
645 0
RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析)
|
消息中间件 算法 安全
关于RT-Thread内核的介绍
关于RT-Thread内核的介绍
|
Shell
RTOS支持STemWin(以RT-Thread为例)
RTOS支持STemWin(以RT-Thread为例)
143 0
|
物联网 Linux 调度
RT-Thread设计与实现:RT-Thread 概述和架构
RT-Thread设计与实现:RT-Thread 概述和架构
|
Unix 调度 C语言
RT-Thread各版本简介及架构介绍
RT-Thread各版本简介及架构介绍