RTthread 开发支持裸机移植, Env 工具移植, 和 RTThread Studio 直接开发。一般裸机移植只适用于 RTthread Nano, 因为 Nano 不需要各种组件包, 很简洁适用于系统资源十分有限的MCU中, 但这样就发挥不了 RTthread 组件生态的好处了, 通过 Env 工具和 RTThread Studio 开发可以直接获取网络的官方或第三方成熟的组件, 加快开发流程。下面将主要讨论使用 Env 工具开发的基本流程。
准备工作
到官网下载:
- RTthread 标准版源码
- Env 工具
Env 工具使用
参考官方使用介绍
安装完成后打开 env.exe, 为了能随时随地打开env.exe方便使用, 将工具添加到注册表(标题栏右击->Settings->Integration->Register)
Env 中携带了 Python & scons 以及 gcc 工具链, 安装完就可以直接编译.
-
编译 BSP
在源码的 bsp 目录找到适合自己板子的工程模板, 在模板目录下打开 env.exe 输入scons
即可开始编译当前板子的工程代码. -
生成工程文件
如果使用 mdk/iar 来进行项目开发, 可以直接使用 BSP 中的工程文件或者使用以下命令中的其中一种,重新生成工程.scons --target=iar scons --target=mdk4 scons --target=mdk5
-
BSP 配置
输入menuconfig
进行配置, 配置完后后自动生成 rtconfig.h 文件。此时再次使用 scons 命令就会根据新的 rtconfig.h 文件重新编译工程了 -
pkg 包管理器(官方包地址)
package 工具作为 Env 的组成部分,为开发者提供了软件包的下载、更新、删除等管理功能.在命令行输入
pkg
, 可看到包管理器支持的功能.- 下载、更新、删除软件包
在下载、更新软件包前,需要先在 menuconfig 中 开启 你想要操作的软件包, 这些软件包位于 RT-Thread online packages 菜单下. 找到你需要的软件包然后选中开启,保存并退出 menuconfig 。此时软件包已被标记选中,但是还没有下载到本地,所以还无法使用。- 下载 :如果软件包在本地已被选中,但是未下载,此时输入:
pkgs --update
,该软件包自动下载; - 更新 :如果选中的软件包在服务器端有更新,并且版本号选择的是 latest 。此时输入:
pkgs --update
,该软件包将会在本地进行更新; - 删除 :某个软件包如果无需使用,需要先在 menuconfig 中取消其的选中状态,然后再执行:
pkgs --update
。此时本地已下载但未被选中的软件包将会被删除。
- 下载 :如果软件包在本地已被选中,但是未下载,此时输入:
- 升级本地软件包信息
随着 package 系统的不断壮大,会有越来越多的软件包加入进来,所以本地看到 menuconfig 中的软件包列表可能会与服务器 不同步 。使用pkgs --upgrade
命令即可解决该问题,这个命令不仅会对本地的包信息进行更新同步,还会对 Env 的功能脚本进行升级,建议定期使用。
- 下载、更新、删除软件包
-
Scons 更多使用内容
参考官方说明- SCons 基本功能
RT-Thread 构建系统支持多种编译器, 可以阅读该 BSP 目录下的 rtconfig.py 里的 CROSS_TOOL 选项查看当前支持的编译器。scons --target=mdk5 # 生成 mdk5 的工程 scons -c # 清除构建内容 scons -s # 不输出内部命令信息, 可以连着用比如 scons --target=mdk5 -s scons -jN # 多线程编译 scons --dist # 输出BSP相关工程, 所有 bsp 相关源码都拷贝到 dist 目录下 scons --verbose # 显示编译参数
注:要生成 MDK 或者 IAR 的工程文件,前提条件是 BSP 目录存在一个工程模版文件,然后 scons 才会根据这份模版文件加入相关的源码,头文件搜索路径,编译参数,链接参数等。而至于这个工程是针对哪颗芯片的,则直接由这份工程模版文件指定。所以大多数情况下,这个模版文件是一份空的工程文件,用于辅助 SCons 生成 project.uvprojx 或者 project.eww。
- SCons 基本功能
网友评论