对于学习嵌入式实时操作系统,首先第一步要进行的是搭建好对应的开发环境,只有对应的环境搭建好了,能力进行下一步的开发工作。

RT-Thread为了不便宽广开发者进行入门或者深刻应用,其官网提供了非常丰盛的参考文档,官网的文档核心链接:https://www.rt-thread.org/document/site/

RT-Thread的文档核心提供了入门学习,进阶学习,利用开发这三个档次的文档,开发者能够依据本人的理论状况进行抉择。然而,对于一些没有根底的入门级开发者,面对如此简单繁多的文档,难免会不晓得如何下手,不晓得先看哪一篇文档比拟好。

在上完Sean老师的课程后,我进行了一些对于搭建开发环境的总结,次要是对于ENV配置工具和BSP包的应用。

在开发环境搭建之前,要先下载好ENV配置工具和RT-Thread相干源码,ENV配置工具的下载链接,如下:https://www.rt-thread.org/page/download.html

留神:在装置ENV工具之前,须要确保电脑曾经正确装置了Git管理工具并配置到零碎的环境变量当中,Git管理工具能够从以下链接进行下载: https://git-scm.com/downloads,具体装置形式可自行上网查问。

ENV工具的装置门路不能蕴含中文和空格,应该应用全英文门路。

RT-Thread的相干源码,下载链接:https://gitee.com/rtthread/rt-thread?_from=gitee_search

下载实现后,解压进去的文件夹如下图所示。

对于ENV工具的应用

ENV是RT-Thread提供的一个辅助开发工具,应用ENV能够很不便地构建出RT-Thread的工程项目。ENV提供了IAR、MDK、GCC工程的构建,集成了menuconfig配置裁剪工具,软件包治理性能,等等。

其中,menuconfig管理工具,沿用的是Linux kernel的Kconfig机制,当RT-Thread内核须要减少或缩小某个性能时,能够应用menuconfig不便地进行配置,而不必从源码端一步步进行移植,提供了开发者的开发效率。

对于ENV工具的应用办法,能够参考RT-Thread的官网文档外面对于ENV的章节,有具体的介绍。https://www.rt-thread.org/document/site/programming-manual/env/env/#

对于BSP包的应用

RT-Thread针对不同的芯片平台,提供了一些曾经构建好的BSP(Board Support Package)板级反对包,开发者能够间接应用这些BSP包进行扩大开发,目前RT-Thread提供的BSP包如下图所示。

因为介子开发板应用的主控芯片是AT32F407,所以,开发板是能够基于at32这个BSP包进行开发的。进入bsp/at32/at32f407-start目录,能够看到BSP包的次要形成包含:工程模板,通过scons构建的工程,rtconfig.py构建脚本,等等,如下图所示。

在装置和配置好ENV工具后,在at32f407-start目录外面,右键关上ENV工具命令行终端,如下图所示。

RT-Thread是应用scons命令来进行工程构建的,如果是应用IAR或MDK来进行工程开发,能够应用以下命令构建对应的工程。构建IAR工程:scons --target=iar。构建MDK工程:scons --target=mdk5或scons --target=mdk4

menuconfig是一种图形化配置工具,,开发者能够应用menuconfig工具对RT-Thread内核进行配置和裁剪,对于menuconfig的快捷键介绍,如下图所示。

留神,每次应用menuconfig对BSP进行配置后,都须要应用scons命令对相应的工程进行从新生成,以便配置能失效。

仔细的开发者会发现,对于at32f407开发板,其BSP包外面的工程,须要依赖整个RT-Thread源码能力被正确编译,然而整个RT-Thread源码外面又蕴含了其余跟AT32不相干的BSP包,这样会导致整个工程很宏大和臃肿。

为了让BSP包生成跟AT32芯片相干的工程项目,移除其余不相干的芯片BSP包,能够应用以下命令:scons --dist,命令执行后,会在BSP包目录外面生成dist目录,这个目录外面蕴含了整个AT32的工程,能够把这个工程复制到任何目录下应用,如下图所示。

要应用一个BSP包进行开发,个别会通过以下步骤:
1.应用menuconfig命令,对RT-Thread的内核和组件进行配置。
2.配置实现后,依据本人的编译器状况,应用scons --target=xxx生成对应的工程。
3.关上对应的工程,即可进行代码编写开发。
4.能够应用scons --dist命令,移除不相干的芯片,把工程独自抽离进去。

艰深地总结一下,ENV是一个工具包,这个工具包外面集成了一些命令,咱们只须要在ENV的命令行窗口输出指定的命令就能够进行对应的操作。

menuconfig是工具包外面其中一个命令,这个命令能够调用一个图形化配置界面,能够让开发者不便地对RT-Thread内核进行配置和批改。

scons也是工具包外面其中个一个命令,这个命令是用来构建咱们罕用的IAR或MDK工程的,应用scons命令,就能够很不便地生成IAR或MDK工程,这样就不必手动地往工程外面增加源文件和头文件。