打印
[STM32F1]

RT-Thread 移植到 STM32

[复制链接]
1621|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
需要把 RT-Thread 移植到 STMF103ZET6 上,在 RT-Thread 官网下载的原文件中实际上已经 STM32F10x 的工程了,只需简单的几步就可以完成在STM32F103ZET6 上的运行,为了看到 RTT 的强大,我们还是得亲自动手。

沙发
hanzhen654|  楼主 | 2019-1-27 19:42 | 只看该作者
利用 Keil5,新建一个工程,然后在工程中添加 RT-Thread 中的文件。
在 RT-Thread 官方网上下载操作系统源码(https://www.rt-thread.org/page/download.html)
这里我下载的是 2.0.1 版本,结构如下:

使用特权

评论回复
板凳
hanzhen654|  楼主 | 2019-1-27 19:43 | 只看该作者

使用特权

评论回复
地板
mmuuss586| | 2019-1-27 19:44 | 只看该作者
可以发个PDF的参考移植文档上来啊

使用特权

评论回复
5
hanzhen654|  楼主 | 2019-1-27 19:47 | 只看该作者
Bsp ---- 板级支持包,针对不同的板子规划出的不同的驱动文件
components ---- 包含 RT-Thread 的各个组件:finsh、文件系统等*;
documentation ---- 一些介绍性文档,包括代码的风格要求;
examples ---- 各种示例代码,是很好的学习素材;
include ---- 一些头文件;
libcpu---- 各种 CPU 体系结构下的相关移植;
src ---- RT-Thread 内核核心代码;

使用特权

评论回复
6
hanzhen654|  楼主 | 2019-1-27 19:47 | 只看该作者
tools ---- 使用 Scon 自动化创建工具时需要的一些文件;
AUTHORS ---- RT-Thread 开发者列表;
COPYING ---- 权限说明;

使用特权

评论回复
7
hanzhen654|  楼主 | 2019-1-27 19:48 | 只看该作者
tools ---- 使用 Scon 自动化创建工具时需要的一些文件;
AUTHORS ---- RT-Thread 开发者列表;
COPYING ---- 权限说明;

使用特权

评论回复
8
hanzhen654|  楼主 | 2019-1-27 19:49 | 只看该作者
在桌面上建立一个 RT-Thread2.0.1_STM32F103ZE 文件夹,打开 RTThread2.0.1_STM32F103ZE 文件夹,建立以下文件夹:
application :存放应用程序
bsp :存放板级支持包和底层驱动
components :存放操作系统组件
DeviceDrivers :设备框架
libcup :各种不同 CPU 的内核代码
MDK-OBJ :存放 kile5 在编译过程中生成的中间文件
RT_Thread-2.0.1 :存放操作系统的相关文件

使用特权

评论回复
9
hanzhen654|  楼主 | 2019-1-27 20:01 | 只看该作者
目录定位到桌面上的 RT-Thread2.0.1_STM32F103ZE 过程名称为 RTT_F103ZE 选择芯片
ST32F103ZE

741115c4d9ae460d2a.png (76.54 KB )

741115c4d9ae460d2a.png

使用特权

评论回复
10
hanzhen654|  楼主 | 2019-1-27 20:02 | 只看该作者
Options for Target >>> Target >>> 设置外部晶振 8.0MHz
Options for Target >>> Output >>> Select Folder for Objects >>> 定位到 桌面:RTThread2.0.1_STM32F103ZE\MDK-OBJ 目录下
Options for Target >>> Listing >>> Select Folder for Objects >>> 定位到 桌面:RTThread2.0.1_STM32F103ZE\MDK-OBJ 目录下
Options for Target >>> c/c++ >>> 添加宏定义 STM32F10X_HD, USE_STDPERIPH_DRIVER(逗号
隔开)
Options for Target >>> Linker >>> Misc controls >>> 添加 --keep __fsym_* --keep __vsym_* --
keep __rt_init*(保证编译时不会滤除掉工程没有调用的代码)

使用特权

评论回复
11
hanzhen654|  楼主 | 2019-1-27 20:06 | 只看该作者
开始添加各个文件(根据之前建立的工程文件夹中的目录含义添加文件,这样比较有条
理)2.0.1\bsp\stm32f10x\applications >>> Desktop\RT-Thread2.0.1_STM32F103ZE\application
application.c 、startup.c
2.0.1\bsp\stm32f10x >>> Desktop\RT-Thread2.0.1_STM32F103ZE\bsp
drivers 、Libaries
2.0.1\bsp\stm32f10x >>> Desktop\RT-Thread2.0.1_STM32F103ZE\RT_Thread-2.0.1
rtconfig.h
2.0.1\components >>> Desktop\RT-Thread2.0.1_STM32F103ZE\components
除 drivers 外的全部文件
2.0.1\components >>> Desktop\RT-Thread2.0.1_STM32F103ZE\DeviceDrivers
drivers
2.0.1\libcpu\arm >>> Desktop\RT-Thread2.0.1_STM32F103ZE\libcup
common 、cortex-m3
2.0.1 >>> Desktop\RT-Thread2.0.1_STM32F103ZE\RT_Thread-2.0.1
src 、include

使用特权

评论回复
12
hanzhen654|  楼主 | 2019-1-27 20:08 | 只看该作者
在 2.0.1\components 目录下有一个叫 drivers 的文件夹,按照他的意思应该是设备驱动
框架相关文件,但是有一点不理解为什么放在组件文件夹下;所以在复制过程中我把它单
独拿了出来,放在了 Desktop\RT-Thread2.0.1_STM32F103ZE\DeviceDrivers 文件夹下,比较
适合我来理解,该目录下还有一个叫 CMSIS 的文件夹,暂时也不知道是干什么的,就一起
放在 Desktop\RT-Thread2.0.1_STM32F103ZE\components 下了;在 2.0.1\bsp\stm32f10x 目录
下也有一个叫 drivers 的文件夹,这个文件夹实际上就是存放了符合设备框架的板级驱动,
这样应用程序就可以控制各种设备了。我们以后也可以写自己的板级驱动,然后这样在应
用中就可以调用不同的设备。这里工程的架构差不多就出来了,打开之前建立的工程,打
开 Manage Project Items 开始添加文件

使用特权

评论回复
13
hanzhen654|  楼主 | 2019-1-27 20:11 | 只看该作者
在 2.0.1\components 目录下有一个叫 drivers 的文件夹,按照他的意思应该是设备驱动
框架相关文件,但是有一点不理解为什么放在组件文件夹下;所以在复制过程中我把它单
独拿了出来,放在了 Desktop\RT-Thread2.0.1_STM32F103ZE\DeviceDrivers 文件夹下,比较
适合我来理解,该目录下还有一个叫 CMSIS 的文件夹,暂时也不知道是干什么的,就一起
放在 Desktop\RT-Thread2.0.1_STM32F103ZE\components 下了;在 2.0.1\bsp\stm32f10x 目录
下也有一个叫 drivers 的文件夹,这个文件夹实际上就是存放了符合设备框架的板级驱动,
这样应用程序就可以控制各种设备了。我们以后也可以写自己的板级驱动,然后这样在应
用中就可以调用不同的设备。这里工程的架构差不多就出来了,打开之前建立的工程,打
开 Manage Project Items 开始添加文件

使用特权

评论回复
14
hanzhen654|  楼主 | 2019-1-27 20:19 | 只看该作者
文件就在原文件夹 application 下
bsp :stm32 库函数所有*.c 源文件(stm32f10x_adc.c stm32f10x_rcc.c.....) core_cm3.c
system_stm32f10x.c startup_stm32f10x_hd.s stm32f10x_conf.h(这里是为了比较好修改)
stm32f10x_it.c

使用特权

评论回复
15
hanzhen654|  楼主 | 2019-1-27 20:20 | 只看该作者
这些文件在 bsp 目录下都可以找到
components : components.c
在 components/init 目录下
DeviceDrivers : DeviceDrivers >>> driver >>> src 下的全部文件 DeviceDrivers >>> driver 下用
到哪个设备框架就加哪个设备原文件(这里加了 serial,因为要用到串口)
DeviceDrivers >>> driver 目录下都可以找到
contex-m3 : backtrace.c div0.c showmem.c context_rvds.S cpuport.c
libcpu 目录下都可以找到
RT-Thread-2.0.1 :RT_Thread-2.0.1 >>> src 目录下所有文件

使用特权

评论回复
16
hanzhen654|  楼主 | 2019-1-27 20:21 | 只看该作者
RT_Thread-2.0.1 >>> src 目录下可以找到
finsh : components >>> finsh 目录下所有*.c 文件
components >>> finsh 目录下都能找到
Drivers : board.c led.c usart.c
bsp >>> drivers 目录下都可以找到
编译烧写,验证 大功告成

使用特权

评论回复
17
hanzhen654|  楼主 | 2019-1-28 20:31 | 只看该作者
mmuuss586 发表于 2019-1-27 19:44
可以发个PDF的参考移植文档上来啊

整理下上传,不好意思了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝