新的 BSP 框架还引入了 CubeMX 工具,可以使用该工具来对 BSP 中使用的外设引脚进行配置。CubeMX 工具提供了图形化的配置界面,这种图形化的配置方式对开发者来说更加直观,不仅可以让开发者灵活地配置 BSP 中使用的资源,并且可以让开发者对资源的使用情况一目了然
框架
官方外设使用教程
Hardware Drivers Config —> OnBoard 板载 On-chip 片外 Board extend 拓展模块
选择需要的功能 pkgs --update 更新配置 scons --target=mdk5 生成MDK5
官方外设驱动介绍与应用
重点: 在 RT-Thread 中已经包含了一些测试例程 examples\test 目录内,需要测试驱动只要在 examples\test 启用对应测试文件即可
官方外设添加指南
步骤一: rt-thread\bsp\stm32\选定的摸板目录\board\CubeMX_Config
利用 CubeMX 配置工程
步骤二: 修改同级目录下 Kconfig 文件 config BSP_USING_SPI2 bool “Enable SPI2 BUS” select RT_USING_SPI &emsp:default n
A depends on B 只有 B 被选中才能选 A A select B A 选中就会选中 B
步骤三: env 启动 menuconfig 步骤四: 检查 Drivers\drv_spi.c 文件中有没有自己添加的相关内容
官方制作 BSP
项目内容CubeMX_ConfigCubeMX 工程linker_scriptsBSP 特定的链接脚本board.c/h系统时钟/GPIO 初始化函数 / 芯片存储器大小Kconfig芯片信型号/系类/外设资源SConscript芯片启动文件/目标芯片型号步骤一:先用 CubeMX 配置外部时钟 / 下载方式 / 串口 注意:修改地址以便生成 CubeMX 工程
步骤二:将 CubeMX_Config/Src/main.c 文件中 void SystemClock_Config(void) 函数拷贝到 board.c 文件中
步骤三:修改 STM32_FLASH_SIZE / STM32_SRAM_SIZE 举例 步骤四: RAM 中的一部分内存空间会被用作堆内存, 这里 HEAP_BEGIN 和 HEAP_END 的值需要和后面所修改的配置相一致
步骤五:修改 Kconfig 文件同添加外设一致
步骤六:修改链接脚本
本次制作 BSP 使用的芯片为 STM32F103RB,FLASH 为 128k,因此修改 LR_IROM1 和 ER_IROM1 的参数为 0x00020000。RAM 的大小为20k, 因此修改 RW_IRAM1 的参数为 0x00005000。这样的修改方式在一般的应用下就够用了,后续如果有特殊要求,则需要按照链接脚本的语法来根据需求修改。
步骤七:修改构建脚本 SConscript
步骤八:修改模板 需要修改 芯片型号 和 程序下载方式
步骤八:配置并重新生成 menuconfig scons --target=mdk5
注意: 在 CubeMX 中不必过度关注配置,只需要使能相关 IO 口,其他具体配置都在 OS 中进行,比如 UART 支持 DMA 这些都不需要在 CubeMX 中开启避免产生冲突,亲测出现缺少声明的问题
推出,使用 scons --target=mdk5 然后,打开文件
这里需要配合 keil: Drivers/ drv_can.c 文件
//file: rtdevice.h
技巧:直接检索 RT_USING_CAN 即可
到此,我们已经知道相关配置宏定义名称 在 on-chip 一栏下添加
menuconfig BSP_USING_CAN bool "Enable CAN BUS" default n #默认 关闭 select RT_USING_CAN //依赖 RT_USING_CAN //在 rtdevice.h 文件中可以找到 if BSP_USING_CAN config BSP_USING_CAN1 bool "Enable CAN1" default y config BSP_USING_CAN2 bool "Enable CAN2" default n endif配置完成
menuconfig 下使能即可,编译
在 keil 文件查看相关代码是否使能成功