前言
本文是基于RT-Thread的集成IDE:RT-Thread Studio的移植使用,如果想自己手动移植rtt到Keil中,可参考:
基于Keil5的RT-Thread移植RT-Thread移植(标准库):手把手教你移植RT-Thread系统_rtthread移植_嵌入式@hxydj的博客-CSDN博客
基于 STM32CubeMX 添加 RT-Thread 操作系统组件(hal库):基于 STM32CubeMX 添加 RT-Thread 操作系统组件(一)- 详细介绍操作步骤_mx_rt_thread_process()_Ch_champion的博客-CSDN博客
二、RT-Thread移植
2.1 RT-Thread版本分类
2.1.1 RT-Thread标准版系统架构
RT-Thread标准版包括如文 件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。
2.1.2 Nano版本
RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。
下图是 RT-Thread Nano 的软件框图,包含支持的 CPU 架构与内核源码,还有可拆卸的 FinSH 组件:
功能:线程管理、线程间同步与通信、时钟管理、中断管理、内存管理。
特点:
- 下载简单
- 代码简单
- 移植简单
- 使用简单
- 资源占用小
- 开源免费
2.1.3 Smart版本
RT-Thread Smart(简称 rt-smart)是基于 RT-Thread 操作系统衍生的新分支,面向带 MMU,中高端应用的芯片,例如 ARM Cortex-A 系列芯片,MIPS 芯片,带 MMU 的 RISC-V 芯片等。rt-smart在 RT-Thread 操作系统的基础上启用独立、完整的进程方式,同时以混合微内核模式执行。
RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)
2.2 标准版RTT移植
下载安装RT-Thread_Studio,安装完成后注册并登录后方可创建RTT工程。
1、新建工程,打开 IDE,点击【文件】-【新建】-【RT-Thread 项目】
2、进入新建工程设置向导
3、工程创建完毕,连接硬件,可直接进行编译下载,如下所示:
4、通过修改 board.c 的 SystemClock_Config() 更改系统时钟
5、由于在创建工程向导中配置了控制台串口号及其引脚号,所以工程中已经实现了 uart 的驱动以及 rt_hw_console_output() ,默认可以进行打印。打开串口终端,可以发现在终端中执行了打印
6、添加 FinSH组件
双击 RT-Thread Settings 进入配置,打开组件,勾选FinSH Shell,保存配置。此操作将把 FinSH 组件的源码加入工程中。
其中,rt_hw_console_getchar() 已经在 drv_uart.c 中实现,无需再实现对接 FinSH 的代码。
7、链接硬件,编译下载后,在串口终端中按下 Tab 键,可查看系统中的命令:
也可以用终端调试助手,这里以SecureCRT为例
新建串口连接
连接成功后,如果按复位,终端卡死
(1)首先找到对应串口的配置文件如下:
(2)打开对应路径,文本工具打开new.ini
(3)把D:"DTR Flow Control"=00000001改为D:"DTR Flow Control"=00000000
把D:"RTS Flow Control"=00000001改为D:"RTS Flow Control"=00000000
(4)这样就能解决了,复位板子就会出现RTT的信息了