试验平台:正点原子探索者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,也就是传统的命令行模式,也就是说命令后面不必带()。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐