二、RT-Thread移植

前言

本文是基于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标准版包括如文 件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。

二、RT-Thread移植_第1张图片

2.1.2 Nano版本

RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。

下图是 RT-Thread Nano 的软件框图,包含支持的 CPU 架构与内核源码,还有可拆卸的 FinSH 组件:

二、RT-Thread移植_第2张图片

功能:线程管理、线程间同步与通信、时钟管理、中断管理、内存管理。

特点:

  • 下载简单
  • 代码简单
  • 移植简单
  • 使用简单
  • 资源占用小
  • 开源免费

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 的独立地址空间)

二、RT-Thread移植_第3张图片

2.2 标准版RTT移植

下载安装RT-Thread_Studio,安装完成后注册并登录后方可创建RTT工程。

二、RT-Thread移植_第4张图片

二、RT-Thread移植_第5张图片

1、新建工程,打开 IDE,点击【文件】-【新建】-【RT-Thread 项目】

二、RT-Thread移植_第6张图片

2、进入新建工程设置向导

二、RT-Thread移植_第7张图片

二、RT-Thread移植_第8张图片

3、工程创建完毕,连接硬件,可直接进行编译下载,如下所示:

二、RT-Thread移植_第9张图片

4、通过修改 board.c 的 SystemClock_Config() 更改系统时钟

二、RT-Thread移植_第10张图片

5、由于在创建工程向导中配置了控制台串口号及其引脚号,所以工程中已经实现了 uart 的驱动以及 rt_hw_console_output() ,默认可以进行打印。打开串口终端,可以发现在终端中执行了打印

二、RT-Thread移植_第11张图片

6、添加 FinSH组件

双击 RT-Thread Settings 进入配置,打开组件,勾选FinSH Shell,保存配置。此操作将把 FinSH 组件的源码加入工程中。

其中,rt_hw_console_getchar() 已经在 drv_uart.c 中实现,无需再实现对接 FinSH 的代码。

二、RT-Thread移植_第12张图片

二、RT-Thread移植_第13张图片

7、链接硬件,编译下载后,在串口终端中按下 Tab 键,可查看系统中的命令:

二、RT-Thread移植_第14张图片

二、RT-Thread移植_第15张图片

也可以用终端调试助手,这里以SecureCRT为例

新建串口连接

二、RT-Thread移植_第16张图片

二、RT-Thread移植_第17张图片

二、RT-Thread移植_第18张图片

连接成功后,如果按复位,终端卡死

(1)首先找到对应串口的配置文件如下:

二、RT-Thread移植_第19张图片

二、RT-Thread移植_第20张图片

(2)打开对应路径,文本工具打开new.ini

二、RT-Thread移植_第21张图片

(3)把D:"DTR Flow Control"=00000001改为D:"DTR Flow Control"=00000000

把D:"RTS Flow Control"=00000001改为D:"RTS Flow Control"=00000000

二、RT-Thread移植_第22张图片

(4)这样就能解决了,复位板子就会出现RTT的信息了

二、RT-Thread移植_第23张图片

二、RT-Thread移植_第24张图片

你可能感兴趣的:(RT-Thread,嵌入式实时数据库,物联网,iot,stm32)