Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread Nano
RT-Thread Nano 上线ST CubeMX
发布于 2024-09-26 11:29:11 浏览:3263
订阅该版
[tocm] 感谢**ST法国CubeMX团队**的支持,RT-Thread Nano现已成功上线**ST CubeMX**。本文将详细介绍如何快速上手**RT-Thread Nano**,并指导大家在ST CubeMX上进行项目配置和开发。一起来看看吧! ### 一、准备工作 软件准备: - STM32 CubeMX_v6.11.0 以上版本 (https://www.st.com.cn/zh/development-tools/stm32cubemx.html) - Keil MDK (https://www.keil.com/download/product/) - 串口工具(推荐使用MobaXterm) (https://mobaxterm.mobatek.net/download.html) 硬件准备: - STM32 开发板(Cortex-M系列,这里我们以STM32F411RCT6 芯片作为演示) ### 二、安装 RT-Thread Nano v4.1.1 软件包 首先打开 STM32 CubeMX 软件,进入主页面后找到右侧的嵌入式软件包选项(Install or remove embedded software packages),点击 [ INSALL / REMOVE ] :  在弹出的 Embedded Software Packages Manager 界面的上方导航栏中找到 RT-Thread 厂商 —> [ RealThread ] ,展开 X-CUBE-RT-Thread_Nano ,勾选中 RT-Thread Software Components (Size: 5.50 MB) ,并且点击 Install :  同意条款并点击 Finish :  注:此处如果没有找到 RealThread 厂商选项,可点击下方 Refresh 按钮更新资源包索引后开始下载,下载成功后 RT-Thread Software Components 4.1.1 呈深绿色方形显示,关闭窗口后开始工程创建。 ### 三、创建 STM32 CubeMX 项目工程 创建工程可以选择基于 MCU 或 Board,这里我们以创建 MCU 作为教学演示,点击 ACCESS TO MCU SELECTOR ,在左上角的 Commercial Part Number 中输入芯片型号,这里我的芯片型号为 STM32F411RCT6 ,选中对应MCU后点击右上角 Start Project 。  ### 四、芯片配置 首先勾选 RT-Thread Nano v4.1.1 软件包,依次点击 Software Packs-> Select Components,并找到 RealThread.X-CUBE-RT-Thread_Nano 4.1.1 一栏,根据开发需求勾选配置项,其中 kernel 和 libcpu 为必选项,这里我们选择 kernel、shell 和 ibcpu 三个配置项后点击 OK:  在左侧导航栏中找到 RT-Thread Nano 软件包,同时在 Mode 一栏中使能 RTOS RT-Thread,接着我们在 Parameter Settings 中进行内核配置,这一步我们保持默认即可,同时往下翻找到 Finsh Configuration,使能 Finsh组件:  为了给 Finsh 组件提供串口设备,需要我们勾选一个串口,点击左侧功能栏 Connectivity —> USART1,设置串口模式为异步:  选择 System Core —>SYS,将 Debug 选项配置为 Serial Wire:  在 RT-Thread 中重新定义了`HardFault_Handler`, `PendSV_Handler`, `SysTick_Handler`中断函数。为避免重复定义,在生成项目之前,请取消选择中断配置中的三个中断函数(对应注释了的选项`Hard fault interrupt`、`Pendable request`、`Time base: System tick timer`)  点击 Project Manager,填写项目名称,并修改 Toolchain / IDE 为 MDK-ARM,最后生成工程文件(在点击生成工程后会提示 RTOS 时基源的修改警告,点击 Yes 即可)  ### 五、工程配置 **1.概述** 打开 MDK 工程后,工程目录下会生成几个 Middlewares Group,如下所示:  **2.Finsh组件配置** 打开 Middlewares/RT-Thread/RTOS/kernel 目录下的 board.c 文件,修改 uart_init() 函数中串口号,该串口号默认为 USART1,需要根据实际在 CubeMX 中配置的串口进行修改  **3.主函数配置** 在 main.c 中包含头文件 `#include`,同时在 main 函数的 while(1) 中定义延时,以便 Finsh 和其他线程得到系统调度:   **4.观察现象** 在 MDK 中烧录程序后打开串口助手,复位开发板查看终端运行情况:  到这里,RT-Thread Nano v4.1.1 就成功运行起来了。 ### 六、内存堆初始化 系统内存堆的初始化是通过 board.c 中的 rt_hw_board_init() 函数实现的,如果需要启用内存堆可通过宏定义 RT_USING_HEAP 实现,RT-Thread Nano 默认不开启内存堆功能。一旦 RT_USING_HEAP 被启用,系统会默认使用一个数组作为堆,堆的起始地址和结束地址作为参数传递给堆初始化函数 rt_system_heap_init(),该函数在 rt_hw_board_init() 中调用。 如果不希望使用数组作为动态内存堆,可以使用 RAM 的 ZI 段的末尾作为 HEAP 的起始地址(需要确保它与链接脚本对应上),并使用RAM的结束地址作为 HEAP 的结束地址,代码实现如下所示:   ### 七、其他说明 RT-Thread 的线程创建、信号量、互斥锁的使用需要配置内存管理机制,RT-Thread Nano 允许配置使用小内存管理算法,如需在 Cubemx 中进行相关配置,请打开工程的 CubeMX 执行文件,使能如下选项:  > 注意:在使用RT-Thread Nano v4.1.1 CubeMX软件包时请阅读各个配置项的参数说明,部分配置项存在依赖关系,需根据说明进行配置。 具体的RT-Thread nano v4.1.1配置使用教程可参考该视频:  (视频可以在公众号文章查看或者登录bilibili查看) bilibili链接:https://www.bilibili.com/video/BV1AUtWeiEDC/?spm_id_from=333.999.0.0 ——————End——————
16
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
RT-Thread小师弟
微信:rtthread2020
文章
296
回答
171
被采纳
33
关注TA
发私信
相关文章
1
求高手指点,RTThread下nanosleep()函数功能如何实现?在线等啊
2
RTT1.2.2在新塘Nano130KE3BN的移植中始终出现栈溢出的问题
3
官方能否出一个nano在mdk下移植finsh到stm32的教程
4
从裸机开始,创建一个RT-Thread Nano系统工程
5
Nano版如何启用shell
6
项目从RTT 2.x NANO移植到 RTT 3.x ENV 环境
7
nano 版本有没有集成到 IAR 中啊?
8
关于MDK5的RT-THREAD NANO中添加MSH组件的例程
9
rtt_nano版本,源代码在哪里下载啊?
10
RTT Nano 在keil 使用C++11 的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
8
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部