RT-Thread初探
试验平台:正点原子探索者STM32F407开发板一、RT-Thread介绍RT-Thread是由国内开发者主导开发的一款开源嵌入式实时操作系统,它包含:操作系统内核、TCP/IP协议栈、文件系统、libc接口,图形引擎等等。RT-Thread官网:https://www.rt-thread.org/代码地址:https://github.com/RT-Thread/rt-thread二、RT-Th
文章共674字 · 阅读需要大约3分钟
一键AI生成摘要,助你高效阅读
问答
·
试验平台:正点原子探索者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,然后就可以下载了。
编译重新下载,系统启动成功,并输出了系统版本信息,如图:
三、finsh
finsh类似于shell,但同shell有很大区别,命令必须带上(),例如:
list()命令:
详细可参考: https://www.rt-thread.org/document/site/zh/1chapters/11-chapter_finsh/
一、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,也就是传统的命令行模式,也就是说命令后面不必带()。
更多推荐
已为社区贡献1条内容
所有评论(0)