RT-Thread初探

本文介绍了RT-Thread实时操作系统的简介及其在正点原子STM32F407开发板上的移植过程。文中详细记录了如何下载并配置RT-Thread源代码、设置开发环境及进行串口配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

试验平台:正点原子探索者STM32F407开发板

一、RT-Thread介绍
RT-Thread是由国内开发者主导开发的一款开源嵌入式实时操作系统,它包含:操作系统内核、TCP/IP协议栈、文件系统、libc接口,图形引擎等等。

RT-Thread官网:
https://www.rt-thread.org/

代码地址:
https://github.com/RT-Thread/rt-thread


二、RT-Thread启动试验
从github处下载最新的源代码,RT-Thread本身是支持STM32F407芯片的,也就是说本身就移植好了的,只需要根据开发板做适当适配就可以了。

试验之前先安装好Keil软件,安装好相应的驱动,打开bsp/stm32f40x/project.uvprojx工程。

直接编译,是没有问题的。

下载之前需要做一下配置,芯片型号选择STM32F407ZGTx,ROM大小是1Mbyte,RAM大小是192Kbyte,开发板配的仿真器是ST-Link,所以这里也需要配置调试下载工具为ST-Link,然后就可以下载了。

开发板上有3个串口,一个usb转串口(转换芯片CH340G),两个rs232接口,这里我们先根据开发板配置一下(bsp/stm32f40x/drivers/usart.c)。

/* UART GPIO define. */
#define UART1_GPIO_TX       GPIO_Pin_9
#define UART1_TX_PIN_SOURCE GPIO_PinSource9
#define UART1_GPIO_RX       GPIO_Pin_10
#define UART1_RX_PIN_SOURCE GPIO_PinSource10
#define UART1_GPIO          GPIOA
#define UART1_GPIO_RCC      RCC_AHB1Periph_GPIOA
#define RCC_APBPeriph_UART1 RCC_APB2Periph_USART1

#define UART2_GPIO_TX       GPIO_Pin_2
#define UART2_TX_PIN_SOURCE GPIO_PinSource2
#define UART2_GPIO_RX       GPIO_Pin_3
#define UART2_RX_PIN_SOURCE GPIO_PinSource3
#define UART2_GPIO          GPIOA
#define UART2_GPIO_RCC      RCC_AHB1Periph_GPIOA
#define RCC_APBPeriph_UART2 RCC_APB1Periph_USART2

#define UART3_GPIO_TX       GPIO_Pin_10
#define UART3_TX_PIN_SOURCE GPIO_PinSource10
#define UART3_GPIO_RX       GPIO_Pin_11
#define UART3_RX_PIN_SOURCE GPIO_PinSource11
#define UART3_GPIO          GPIOB
#define UART3_GPIO_RCC      RCC_AHB1Periph_GPIOB
#define RCC_APBPeriph_UART3 RCC_APB1Periph_USART3
需要注意bsp/stm32f40x/drivers/board.h文件中的STM32_CONSOLE_USART宏,该宏定义的是控制终端用的哪个串口,使用USB串口这里需要定义为1,RS232串口需要定义为2或3,RS232串口还需要注意开发板上的跳线冒,需要接到RS232部分。

编译重新下载,系统启动成功,并输出了系统版本信息,如图:


三、finsh
finsh类似于shell,但同shell有很大区别,命令必须带上(),例如:
list()命令:


详细可参考: https://www.rt-thread.org/document/site/zh/1chapters/11-chapter_finsh/

// 2018-02-28 add
注:还可以使用bsp/stm32f4xx-HAL/project.uvprojx这个工程,这个工程是基于STM32 HAL库的,同STM32标准库还是有点区别的。

另外,该工程的finsh模式称之为msh,也就是传统的命令行模式,也就是说命令后面不必带()。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值