当前位置:网站首页>RT-Thread Env 工具介绍(学习笔记)
RT-Thread Env 工具介绍(学习笔记)
2022-07-01 15:38:00 【小辉_Super】
Env 简介
Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。
其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。——原文
下载 Env
Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。下载地址:https://www.rt-thread.org/page/download.html
【注意】
- Env 的软件包管理功能需要 Git 的支持,Git 下载地址:https://git-scm.com/downloads,同时还需将 Git 添加到环境变量中。
- 在工具环境中的路径名中,不能出现中文字符或空格。
Env 的启动
有两种方法启动 Env,一种是直接打开 env.exe
,打开失败可以尝试使用 env.bat
(这时的工作路径在 Env 软件所在目录);另一种是通过右键菜单打开,但需要先将 Env 添加到右键菜单中,具体的操作可以参考下图:
使用 Env 编译 BSP
scons 是 RT-Thread 使用的编译构建工具,可以使用 scons 相关命令来编译 RT-Thread 。
随便进入一个 RT-Thread BSP 工程,输入 scons
命令,这时 Env 将使用默认的 ARM_GCC 工具链编译 bsp:
编译成功,编译的最后一步是使用 arm-none-eabi-bojcopy 将 .elf 文件转换为 .bin 文件(二进制可执行文件)。
如果是使用 mdk/iar 项目,可以使用以下命令进行编译。
scons --target=iar
scons --target=mdk4
scons --target=mdk5
下图是使用 scons --target=mdk5
编译的结果,工程链接完成后,使用了 fromeelf 将 .elf 文件转换成了 .bin 文件。
而 fromelf 正是 Keil 软件所用的格式转换工具:
使用 Env 配置 BSP
menuconfig 是一种图形化配置工具,RT-Thread 使用其对整个系统进行配置、裁剪。
在 bsp 根目录(需要有 Kconfig 文件)输入 menuconfig
命令即可打开图像化配置工具:
该图像菜单支持的功能包括:RT-Thread 内核配置(修改 rtconfig.h)、RT-Thread 组件管理、RT-Thread 在线软件包、硬件驱动配置及外部库。
内核配置
一个 RT-Thread 工程的所有内核配置都放在 rtconfig.h
中,通过修改 RT-Thread Kernel
的配置,就能实现修改 rtconfig.h
的目的。
组件管理
RT-Thread 有很多可裁剪的组件,比如命令行(msh)、网络、设备驱动。
软件包管理
RT-Thread 提供一个软件包管理平台,这里存放了官方提供或开发者提供的软件包。该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread 生态的重要组成部分。
软件包 Git 仓库:https://github.com/RT-Thread-packages,当前(写文章时)该仓库有 128 个软件包。
可以在 Env 命令行输入 pkgs
管理软件包的更新(menuconfig 中修改的软件包配置,还需要在 Env 输入 pkgs --update
来同步到工程中)。
如果长期不对本地的软件包进行更新,可能会出现本地软件包与服务器不同步的情况。这时我们可以通过在 Env 命令行输入 pkgs --upgrade
来解决这个问题。而且它还能对 Env 进行升级。
驱动配置
在这里可以管理 bsp 相关驱动的开启与关闭,
下面是片上外设驱动中的选项:
外部库
外部库里可以选择是否使用某些工程目录下的某些库,下面这几个是正点原子潘多拉开发板 bsp 中的外部库。
Env 工具配置
新版本的 Env 工具中加入了自动更新软件包和自动生成 mdk/iar 工程的选项,默认是不开启的。可以使用 menuconfig -s/–setting 命令来进行配置。
下面是默认配置:
这里介绍一下第二个功能——自动创建 mdk/iar 工程
当修改 menuconfig 配置后 ,必须输入 scons --target=xxx 来重新生成工程。开启此功能,就会在退出 menuconfig 时,自动重新生成工程,无需再手动输入 scons 命令来重新生成工程。
边栏推荐
- Tableapi & SQL and MySQL data query of Flink
- 使用swiper制作手机端轮播图
- [one day learning awk] function and user-defined function
- Recommendation of data acquisition tools and detailed graphic process of data acquisition list
- 常见健身器材EN ISO 20957认证标准有哪些
- Wechat applet 01 bottom navigation bar settings
- Survey of intrusion detection systems:techniques, datasets and challenges
- ThinkPHP进阶
- 微信小程序03-文字一左一右显示,行内块元素居中
- STM32F411 SPI2输出错误,PB15无脉冲调试记录【最后发现PB15与PB14短路】
猜你喜欢
微信小程序02-轮播图实现与图片点击跳转
厦门灌口镇田头村特色农产品 甜头村特色农产品蚂蚁新村7.1答案
《QT+PCL第九章》点云重建系列2
[target tracking] | template update time context information (updatenet) "learning the model update for Siamese trackers"
MySQL service is starting. MySQL service cannot be started. Solution
Deep operator overloading (2)
Wechat applet 01 bottom navigation bar settings
Don't ask me again why MySQL hasn't left the index? For these reasons, I'll tell you all
Hardware design guide for s32k1xx microcontroller
"Qt+pcl Chapter 6" point cloud registration ICP Series 6
随机推荐
Qt+pcl Chapter 6 point cloud registration ICP Series 2
The solution to turn the newly created XML file into a common file in idea
[Cloudera][ImpalaJDBCDriver](500164)Error initialized or created transport for authentication
【天线】【3】CST一些快捷键
贝联珠贯加入龙蜥社区,共同促进碳中和
Redis high availability principle
skywalking 6.4 分布式链路跟踪 使用笔记
雷神科技冲刺北交所,拟募集资金5.4亿元
Recommendation of data acquisition tools and detailed graphic process of data acquisition list
微信小程序01-底部导航栏设置
MySQL审计插件介绍
Wechat official account subscription message Wx open subscribe implementation and pit closure guide
Lean Six Sigma project counseling: centralized counseling and point-to-point counseling
swiper 轮播图,最后一张图与第一张图无缝衔接
使用 csv 导入的方式在 SAP S/4HANA 里创建 employee 数据
张驰课堂:六西格玛数据的几种类型与区别
Sort out the four commonly used sorting functions in SQL
Implementation of wechat web page subscription message
Photoshop插件-HDR(二)-脚本开发-PS插件
S32K1xx 微控制器的硬件设计指南