3132|0

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【RT-Thread读书笔记】8. RT-Thread 学习13章读后感 [复制链接]

 
【RT-Thread读书笔记】8. RT-Thread 学习13章读后感
第13章 移植RT-Thread到STM32

野火专门为此书配套了对应的程序,大家可以下载学习,配套书籍,可以理解的更深。

我们可以参照基于野火STM32全系列(包含M3/4/7)开发板的的RT-Thread的工程模板,让RT-Thread先跑起来。后续就是修修补补,所以初创性劳动非常费力,后续就是维护和升级了。


1.下载RT-Thread Nano 源码

Nano是Master的精简版,去掉了一些组件和各种开发板的BSP,保留了OS的核心功能,但足够我们使用。本书使用的是3.0.3版本。

RT-Thread Master的源码可从RT-Thread GitHub仓库地址:
链接已隐藏,如需查看请登录或者注册
下载到,Nano就是从里面扣出来的。

另外也可以直接去keil官网上下载rt-thread nano的package. 建议是从github上下,或者用野火提供的代码。学习本书,尽量还是用野火给的rt-thread nano3.0.3来学习, 等熟练后可以自行搞master.

具体的添加过程,书中给了非常详尽的说明,这里不再赘述。


野火推荐我们直接将rt-thread代码拷贝到我们自己的工程中,方便release和维护。

一级文件夹                         二级文件夹                            描述
rtthread/3.0.3                      bsp                               板级支持包

                                         components/finsh            RT-Thread组件


                                         include                            头文件
                                         include/libc

                                         libcpu/arm/cortex-m0       与处理器相关的接口文件
                                         libcpu/arm/cortex-m3
                                         libcpu/arm/cortex-m4
                                         libcpu/arm/cortex-m7
                                          src                                RT-Thread内核源码
工程下我们可以按照下图建立:

然后,将RT-Thread/3.0.3/bsp文件夹下面的rtconfig.h配套文件拷贝到工程根目录下面的user文件夹,等下我们需要对这个文件进行修改。
用户可以通过修改这个RT-Thread内核的配置头文件来裁剪RT-Thread的功能,所以我们把它拷贝一份放在user这个文件夹下面。
拷贝board.c文件到user文件夹,需要修改。

bsp文件夹
里面存放的是板级支持包,即board support package的英文缩写。
如果为了减小工程的大小,bsp文件夹下面除了board.c和rtconfig.h这两个文件要保留外,其它的统统可以删除。

components文件夹
在RT-Thread看来,除了内核,其它第三方加进来的软件都是组件,比如gui、fatfs、lwip和finsh等。那么这些组件就放在components这个文件夹内,目前nano版本只放了finsh,其它的都被删除了,master版本则放了非常多的组件。finsh是RT-Thread组件里面最具特色的,它通过串口打印的方式来输出各种信息,方便我们调试程序。

include文件夹
目录下面存放的是RT-Thread内核的头文件,是内核不可分割的一部分。

libcpu文件夹简
存放的是硬件和软件之间的接口文件,涉及汇编和C,RT-Thread nano目前在libcpu目录下只放了cortex-m0、m3、m4和m7内核的单片机的接口文件,只要是使用了这些内核的mcu都可以使用里面的接口文件。

src文件夹
目录下面存放的是RT-Thread内核的源文件,是内核的核心。

-----------------------------------------------
添加RT-Thread源码到工程组文件夹
rtt/source用于存放src文件夹的内容,rtt/ports用于存放libcpu/arm/cortex-m?文件夹的内容,“?”表示3、4或者7,具体选择哪个得看你使用的是野火哪个型号的STM32开发板
我用的是F429-挑战者STM32F429IGT6 因此RT-Thread不同内核的接口文件选libcpu/arm/cortex-m4。

指定RT-Thread头文件的路径
这个按需添加,在keil魔术棒中添加。

修改rtconfig.h
rtconfig.h是直接从RT-Thread/3.0.3/bsp文件夹下面拷贝过来的,该头文件对裁剪整个RT-Thread所需的功能的宏均做了定义,有些宏定义被使能,有些宏定义被失能,一开始我们只需要配置最简单的功能即可。
其实就是一些注释,注释掉或者留下,书中写的很明确,也可以参照官网。
野火修改了:注释掉了
6 // #include "RTE_Components.h"
修改了:
12 #define RT_THREAD_PRIORITY_MAX 32
15 #define RT_TICK_PER_SECOND 1000
32 #define RT_MAIN_THREAD_STACK_SIZE 512

修改board.c
里面存放的是与硬件相关的初始化函数,按需修改。

添加core_delay.c和core_delay.h文件
只有在使用HAL库时才需要添加core_delay.c和core_delay.h文件。野火只在其M7系列的开发板使用了HAL,M4和M3使用的是标准库,不需要添加。我的不需要添加这些文件。

最后就是修改修改main.c
也没啥修改的,目前都是空的,创建线程是在第14章。这里就不在多说了,等明天分享第14章,感悟。

PS:大家还是看书,我这里也就是感悟笔记,把重点拎出来,Thanks



此内容由EEWORLD论坛网友传媒学子原创,如需转载或用于商业用途需征得作者同意并注明出处



点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表