RT-Thread入门项目开发流程

其实,截止到今天,我关于RT-Thread也算是入门了吧,哈哈哈!其实作为一个小白刚刚开始接触RT-Thread的时候可能会感到很枯燥,特别是像我这种一开始用RTT作为第一款嵌入式操作系统来用的小白,之前只是听说过FreeRTOS和UcosIIS,但其实嵌入式操作系统都是差不多的。我想说一下我对于RT-Thread的一个大体的印象——RT-Thread作为国产嵌入式操作系统的领军者着力本着开源、共享、可信赖的目标,创建于2006年,迄今为止官方对于这款操作系统的维护还是比较好的,所以RT-Thread的生态链在国内要比其他的操作系统好。但是为什么它现在使用的人数并不是很多呢?其实主要有两点原因,这也是针对于两类不同的人群。首先是作为前期的大佬级人物,他们一开始学习的可能就是FreeRTOS等等,而且到现在为止已经用了很多年了,所设计的产品已经形成了一个完整的脉络链条,这里所说的脉络链条指的是开发流程的问题,比如对于一直在使用的FreeRTOS各种常见的错误甚至是非常罕见的错误,他们都能够挖掘出来,并且很快就排查掉了。然后是刚刚入门的小白,比如说我,可能一开始从裸机开发到操作系统的转变需要很长的一段缓冲期,所以是有一点惧怕的,毕竟之前学到的只是皮毛,所以RT-Thread便是一个可望不可即的目标了。
前文提到过:RT-Thread的生态链已经相对成熟了,而且有属于自己的高校计划和定期的培训,这也在一定程度上减少了太多刚刚入门的开发者的恐惧感。另外,RT-Thread官方也在试图让更多的人走进RTT,这不仅仅体现在这款操作系统API的便捷性,更体现在官方无微不至的考虑。RTT在很久之前已经提供了RT-Thread Studio开发工具,但是前期由于版权等原因的限制,软件并不是很全面,支持的BSP(板级支持包)也比较少(1.0.0版本),但是现在相对比较完善了。另外,RTT官方又开发出了ENV工具,再一次减少了用户的开发时间。最重要的是RTT在一开始的目标并不仅仅是一款操作系统,而放眼于当下火热的物联网以及嵌入式+AI。为此,官方提供了大量的软件包以及驱动框架。但是有一部分的人也正是因为如此才更加焦虑,因为东西一多不知道该如何下手RTT,下面我来说一下我一开始是怎么使用这些开发工具以及软件包的(仅针对STM32开发)。
首先在这里罗列一下RTT官方至今所有的关于STM32开发的工具(不包含柿饼UI、Smart等内容):①RT-Thread4.0版本包;②RT-Thread Studio;③RT-Thread ENV工具;④RT-Thread编程指南;⑤RT-Thread API参考手册;⑥潘多拉RTT例程;⑦RT-Thread问答社区;⑧RT-Thread官方的GitHUb库。我先说一下我项目开发的流程吧,其实就是对上面工具的使用流程:
一、使用RT-Thread Studio搭建项目雏形。上面也提到过现在RT-Thread Studio开发环境的生态官方也是竭力地在维护,一些常见的BSP也是支持的。所以我在开发项目的时候会首先使用Studio软件搭建一个项目的雏形,那如果你ENV工具用的比较熟练的话也可以选择使用ENV+SCONS+Keil的方式直接生成自己的项目,如果RTT使用不是很熟练,而且刚刚入手RTT的话建议使用我这种方式。首先需要安装RT-Thread Studio软件,这里就不做过多介绍了(傻瓜式操作即可),安装过程中一定要注意联网,因为后面必须使用账号登录,如果不登录软件会自动退出。安装完成后会出现下面的界面:
这里直接选择创建RT-Thread项目,然后有两种开发模式,一种是基于BSP(板载支持包),这种主要是针对MCU;一种是针对于开发板,这种开发方式也是最近刚出的吧,因为之前我也没有遇到过;RT-Thread入门项目开发流程_第1张图片
如果是基于开发板的话右侧会弹出有关开发板的详细介绍,而且有相关的DataSheet供参考:RT-Thread入门项目开发流程_第2张图片
相关配置完成后可以直接点击“”完成”,一个基本的工程框架便就形成了:
RT-Thread入门项目开发流程_第3张图片
这里就不过多的说明各个文件夹的功能了,RT-Thread官方的参考文档有很详细的说明,这里附上地址:
地址1(官方文档中心):https://www.rt-thread.org/document/site/rtthread-studio/nav/
地址2(Studio官方网址):https://www.rt-thread.org/page/studio.html
注意:因为Studio的便捷性,所以这里强烈建议把整个工程的基本功能都要在Studio中完善,包括各个软件包的使用、SPI、I2C等配置,另外这里附上自己在I2C的踩坑记录: https://club.rt-thread.org/ask/question/428711.html
上面的踩坑记录是在I2C中遇到的,如果解决了的朋友可以忽略;

二、使用scons编译并生成MDK工程。由RT-Thread Studio搭建的项目一般是位于安装目录中的workspace文件夹下:
RT-Thread入门项目开发流程_第4张图片
其实个人感觉不太喜欢Studio的开发界面,还是个性化的Keil环境比较靠谱,所以如果想要继续在Studio中开发项目那可以直接跳过这一步骤,如果需要使用MDK继续开发的话可以详细看一下这一步。
如上图所示,Studio生成的所有的项目都位于workspace文件夹中,如果要生成MDK工程,需要进入工程的目录中,也就是下图路径中:
RT-Thread入门项目开发流程_第5张图片
然后利用安装的ENV工具先编译一下整个工程:
RT-Thread入门项目开发流程_第6张图片
编译成功之后可以看到整个工程的大小。然后根据个人情况生成不同的工程,如果有IAR可以生成IAR工程,如果有Keil4、Keil5也可以生成对应的工程,生成工程的命令是:
scons --target=iar
scons --target=mdk4
scons --target=mdk5
当然也可以在在bsp/simulator 下,可以使用下面的命令生成 vs2012 的工程或 vs2005 的工程:
scons --target=vs2012
Scons --target=vs2005

三、在Keil中继续优化代码,或者添加一些关于内核的内容,比如互斥量、信号量、消息队列等等,因为内核的东西都是差不多的。再重复一遍:一定要在Studio中把相关代码包加入到自己工程,并且可以成功运行(利用FinSH控制台输出挂载的设备)后再生成Keil工程等。
RT-Thread入门项目开发流程_第7张图片

RT-Thread入门项目开发流程_第8张图片
以上就是本人开发RT-Thread项目的基本流程,自我感觉这种开发思路所用时间短,而且效率相对高,比起单独在Keil中开发要友好。

个人建议:入门时应该先学习Kernel(内核),再学习其他的内容。这里的其他内容包括:官方发布的开发工具例如ENV、Studio等;软件包的使用;代码的优化问题;

你可能感兴趣的:(RT-Thread开发总结,内核)