17

RTT小师弟 · 2021年03月05日

RT-Thread学习笔记 --(1)RT-Thread开发环境搭建

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

RT-Thread为了方便广大开发者进行入门或者深入使用,其官网提供了十分丰富的参考文档,官网的文档中心链接:https://www.rt-thread.org/doc...
image

RT-Thread的文档中心提供了入门学习,进阶学习,应用开发这三个层次的文档,开发者可以根据自己的实际情况进行选择。然而,对于一些没有基础的入门级开发者,面对如此复杂繁多的文档,难免会不知道如何下手,不知道先看哪一篇文档比较好。

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

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

注意:在安装ENV工具之前,需要确保电脑已经正确安装了Git管理工具并配置到系统的环境变量当中,Git管理工具可以从以下链接进行下载: https://git-scm.com/downloads,具体安装方式可自行上网查询。

ENV工具的安装路径不能包含中文和空格,应该使用全英文路径。

RT-Thread的相关源码,下载链接:https://gitee.com/rtthread/rt...

下载完成后,解压出来的文件夹如下图所示。
image
关于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/doc...
image
关于BSP包的使用

RT-Thread针对不同的芯片平台,提供了一些已经构建好的BSP(Board Support Package)板级支持包,开发者可以直接使用这些BSP包进行扩展开发,目前RT-Thread提供的BSP包如下图所示。
image

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

在安装和配置好ENV工具后,在at32f407-start目录里面,右键打开ENV工具命令行终端,如下图所示。
image
RT-Thread是使用scons命令来进行工程构建的,如果是使用IAR或MDK来进行工程开发,可以使用以下命令构建对应的工程。构建IAR工程:scons --target=iar。构建MDK工程:scons --target=mdk5或scons --target=mdk4

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

注意,每次使用menuconfig对BSP进行配置后,都需要使用scons命令对相应的工程进行重新生成,以便配置能生效。

细心的开发者会发现,对于at32f407开发板,其BSP包里面的工程,需要依赖整个RT-Thread源码才能被正确编译,然而整个RT-Thread源码里面又包含了其他跟AT32不相关的BSP包,这样会导致整个工程很庞大和臃肿。

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

要使用一个BSP包进行开发,一般会经过以下步骤:
1.使用menuconfig命令,对RT-Thread的内核和组件进行配置。
2.配置完成后,根据自己的编译器情况,使用scons --target=xxx生成对应的工程。
3.打开对应的工程,即可进行代码编写开发。
4.可以使用scons --dist命令,移除不相关的芯片,把工程单独抽离出来。

通俗地总结一下,ENV是一个工具包,这个工具包里面集成了一些命令,我们只需要在ENV的命令行窗口输入指定的命令就可以进行对应的操作。

menuconfig是工具包里面其中一个命令,这个命令可以调用一个图形化配置界面,可以让开发者方便地对RT-Thread内核进行配置和修改。

scons也是工具包里面其中个一个命令,这个命令是用来构建我们常用的IAR或MDK工程的,使用scons命令,就可以很方便地生成IAR或MDK工程,这样就不用手动地往工程里面添加源文件和头文件。

推荐阅读
关注数
8072
内容数
181
小而美的物联网操作系统,经过14年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过4亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息