【国产化】RT-THREAD ENV介绍和应用
原创 zgrxmm linux源码阅读
前言
作为一款优秀的国产实时操作系统,RT-THREAD
以其轻量级、高可靠性和丰富的生态系统,在众多嵌入式开发项目中崭露头角。
今天,基于RT-THREAD探索如何利用其强大的 ENV 工具链快速搭建和配置 STM32F429-ATK-APOLLO 开发板的工程项目。通过这篇教程,你不仅能够了解 RT-THREAD 的基本配置流程,还将学会如何使用 RT-THREAD 提供的强大工具进行高效开发,让你的嵌入式项目开发之路更加顺畅。
已经有官网内容了,为什么还要重复的写?
一来发现官网内容略有陈旧,比如menuconfig相关内容还未及时更新,二来也是为了巩固知识。当然,更详细的内容还是要参考官网。
ENV介绍
Env 是 RT-Thread 推出的一款开发辅助工具,专门针对基于 RT-Thread 操作系统的项目工程。Env 提供了编译构建环境、图形化系统配置以及软件包管理功能。其内置的menuconfig
工具提供了简单易用的配置界面,允许用户自由裁剪内核、组件和软件包,从而使系统能够像搭积木一样进行构建和定制。通过 Env,开发者可以更加高效地管理和优化 RT-Thread 项目,极大地提高了开发效率和灵活性。
主要特性
menuconfig 图形化配置界面,交互性好,操作逻辑强;
丰富的文字帮助说明,配置无需查阅文档;
使用灵活,自动处理依赖,功能开关彻底;
自动生成 rtconfig.h,无需手动修改;
使用 scons 工具生成工程,提供编译环境,操作简单;
提供多种软件包,模块化软件包耦合关联少,可维护性好;
软件包可在线下载,软件包持续集成,包可靠性高;
ENV下载和部署
ENV工具下载地址:
https://www.rt-thread.org/download.html
解压后
进入 Env 目录,可以运行本目录下的 env.exe,如果打开失败可以尝试使用 env.bat。
安装完整日志
验证是否按照成功,输入help命令
实际项目构建
进入到工程目录
回到工程目录:
D:\29_tools_install\RT-ThreadStudio\RT-ThreadStudio\repo\Extract\RT-Thread_Source_Code\RT-Thread\lts-v3.1.5\bsp\stm32\stm32f429-atk-apollo
其中D:\29_tools_install\RT-ThreadStudio
是我的安装目录。
开始编译
Env 中携带了 Python & scons 环境,只需在RT-Thread\lts-v3.1.5\bsp\stm32\stm32f429-atk-apollo 目录中运行 scons
命令即可使用默认的 ARM_GCC 工具链编译 bsp。
编译成功的样子
BSP 配置:menuconfig
当你使用 RT-THREAD 的 ENV 工具配置 STM32F429-ATK-APOLLO 工程并通过 menuconfig
进行配置时,你会看到以下几个主要的配置选项,以及 menuconfig 常用快捷键如图所示:
1、RT-THREAD kernel
这一部分是 RT-THREAD 核心的配置选项。RT-THREAD 是一个实时操作系统,这一部分的配置决定了内核的行为,包括但不限于:
内核调度方式:可以选择抢占式调度还是轮询式调度。
任务管理:任务的数量、优先级范围等。
内存管理:是否开启内存保护、堆管理等。
中断管理:中断处理的相关配置。
时间管理:定时器、时钟等配置。
锁机制:互斥锁、信号量等。
消息队列:队列的大小、类型等。
2、RT-THREAD components
这一部分配置的是 RT-THREAD 提供的各种组件,这些组件提供了操作系统的基础服务和功能,例如:
1、主线程堆栈大小和线程默认优先级
2、C++相关的feature
3、command shell相关配置
4、设备是否开启虚拟文件系统
5、设备驱动框架:HAL 驱动模型或其他驱动框架。
6、posix层和C标准库
7、网络协议栈:支持的网络协议,如socket接口、 TCP/IP 协议栈、AT commands。
8、VBUS
9、一些实用工具utilities,如Ymodem、ulog和RT-THREAD测试框架utest。
3、RT-THREAD online packages
这部分是 RT-THREAD 社区维护的在线组件库,提供了大量的扩展功能。在线组件可以方便地下载和安装,通常包括:
1、IOT:LoRa、MQTT、webClinet、webnet、FreeModbus、CoAP、WIFI等等
2、安全套件:常用的SSL/TLS库mbedtls、嵌入式加密库libsodium、libhydrogen、tinyCrypt等
3、中间件:如 图形库LVGL、uGUI,音视频库Openmv、二维码qrcode 等。
4、工具库:CmBacktrace、EasyFlash、EasyLogger、zdebug等调试工具库
5、AT相关库:libANN 是一个简单的神经网络库,主要用于教育和研究目的,提供了基本的神经网络功能;
NNom 是一个专为微控制器优化的轻量级神经网络库,支持常见的神经网络层,并针对资源受限的嵌入式设备进行了优化;
ONNX 后端 是指支持 ONNX 格式的推理引擎,用于在特定硬件上运行 ONNX 模型;
ONNX 解析器 是工具用于解析 ONNX 模型文件,并将其转换为可以执行的代码;
TensorFlow Lite Micro(TFLM)是 TensorFlow Lite 的一个子集,专为资源极其有限的微控制器设计,提供轻量级的机器学习推理能力;
r-tinymaix 是一个轻量级的神经网络推理库,为嵌入式设备提供高性能的机器学习推理支持,并优化了内存使用和计算效率。
6、信号处理和控制算法库:常见的PID控制算法,FFT,CMSIS-DSP等。
4、Hardware Drivers config
这一部分是针对硬件设备的驱动配置,它定义了如何支持板子上的各种硬件设备,包括:
1、CPU 配置:如时钟配置、电源管理等。
2、外设驱动:如 GPIO、ADC、DAC、SPI、I2C、USART、CAN 等。
3、存储设备:如 SD 卡、Flash 存储等。
4、显示设备:如 LCD 屏幕、触摸屏等。
5、音频设备:如扬声器、麦克风等。
6、通信接口:如 USB、Ethernet 等。
7、外部设备:如传感器、电机控制器等。
通过 menuconfig 对这些配置项进行设置,可以定制出符合具体应用需求的 RT-THREAD 系统。选择合适的组件和驱动可以显著提高开发效率,并使系统更加精简和高效。在配置完成后,可以重新编译工程以应用新的配置。
素材来源官方媒体/网络新闻
参考🔗
https://mp.weixin.qq.com/s/-GpChwkxVl8yjtsMRisLFQ