前言
使用的芯片:STM32F407ZG,正点原子探索者板
官网对于环境的配置和BSP的制作都有详细介绍,当然本人在学习的过程中,也做了一个简单的笔记:如何看RT-Thread文档、RT的工程建立和BSP快速构建_追逐者-桥的博客-CSDN博客
且自己参照其BSP制作过程建立的可以在自己板子上进行LED灯闪烁。
但是如果想要使用其他功能,则需要再添加BSP新的功能,开启底层驱动,且添加RT中menucongfig选择功能。
原先RT-Thread是默认USART1打印信息,这里实现打开USART2并通过串口2进行信息的打印。
一、RT-Thread的BSP制作
这里对步骤做做一个简单的描述:
1、复制通用模板
2、使用CubeMX工具配置工程
STM32CubeMX的工程建立_追逐者-桥的博客-CSDN博客
注意,在使用RT时明确说了不要生成相应的.c/.h文件
3、board文件夹中的文件修改(board.c/h、Kconfig)、查看
4、ENV工具menuconfig、package
5、ENV工具scons
scons --target=...、scons、scons --dist:生成工程、编译、复制工程
二、增加BSP的功能
一开始的模板只开启了一个串口和两个GPIO,但是现实中不可能只用到这两个功能,如何添加BSP功能就成了一个很现实的问题。
RT的BSP可以分为三部分(针对STM32来说的,自己见解):RT-Thread 简介
- CubeMX构建BSP的底层驱动部分
- RT拿底层驱动构成了组件和服务层,提供了函数的API,并引入了实时操作内核
- 开发者使用RT的API开发应用层,并形成自己的应用包(App)
2.1、CubeMX添加BSP的底层驱动
为了方便学习,这里先添加类似的功能:USART1/2、UART4,后期会逐步更新其他BSP功能的构建。
这里串口通常使用异步的两线制通信,生成文件后可以打开stm32f1xx_hal_msp.c文件查看驱动。
上图是UART4添加完成,这样BSP底层驱动就已经配置完成,大家也可以先试试其他功能,也可以查看本专栏的其他博客学习。
2.2、RT中添加BSP功能
2.2.1、添加Kcongfig文件
Kconfig (rt-thread.org):Kcongfig的RT工作机制
config语句:config 定义了一组新的配置选项
menu/endmenu语句:用于生成菜单
if/endif语句:是一个条件判断
choice/endchoice语句:将多个类似的配置选项组合在一起,供用户选择一组配置项
comment语句:出现在界面的第一行,用于定义一些提示信息
source语句:用于读取另一个文件中的 Kconfig 文件
- 添加串口2后的Kconfig文件(在board文件夹中)
2.2.2、ENV中menuconfig菜单选择相应的功能
- 使用menuconfig界面,进行串口2的选择
2.2.3、查看与配置rtconfig.h
- 选择好的功能退出后自动更新rtconfig.h中相应的宏
- 在rtconfig.h 中改变串口打印方式为串口2