问题描述

  • 当前最新的 RT-Thread 版本:5.2.0,发现在 编译 BSP stm32l476-st-nucleo,缺少了 STM32L4xx_HAL 驱动库,造成生成的 工程,如 Keil MDK5 工程无法编译通过
  • 初步的【临时】解决方法是 回退 RT-Thread 的版本,把 STM32L4xx_HAL 找回来
  • 由于 STM32L4xx_HAL 已经作为 在线软件包了,可以尝试使用 在线软件包的方式

在线软件包 STM32L4xx_HAL

  • 使用 RT-Thread ENV 工具,当前 ENV 版本 2.0.0
  • bsp\stm32\stm32l476-st-nucleo 目录下,menuconfig 打开 图形界面配置
RT-Thread online packages  ---> 
	peripheral libraries and drivers  --->
		HAL & SDK Drivers  --->
			STM32 HAL & SDK Drivers  --->
				STM32 L4 HAL driver package  --->

解决 RT-Thread bsp stm32l476-st-nucleo STM32L4 HAL库缺失问题_解决方法

  • 发现当前 BSP 工程已经 默认选择了 STM32 L4 HAL driver package 相关的Kconfig配置
  • 【更新获取】 STM32 L4 HAL driver package,使用 RT-Thread ENV 工具:
  • 默认只选择了 STM32L4 HAL的配置,还需要 pkgs --update 方式,把在线的 软件包,也就是 STM32L4 HAL 库拉取到本地

解决 RT-Thread bsp stm32l476-st-nucleo STM32L4 HAL库缺失问题_STM32L4xx_HAL_02

  • 【更新工程】,STM32L4 HAL 拉取到本地后,使用 RT-Thread ENV 工具更新一下工程,当前是 Keil MDK5 工程 scons --target=mdk5

编译

  • 生成的工程,发现 STM32L4 HAL 库已经有了,编译通过

解决 RT-Thread bsp stm32l476-st-nucleo STM32L4 HAL库缺失问题_stm32_03

解决 RT-Thread bsp stm32l476-st-nucleo STM32L4 HAL库缺失问题_STM32L4xx_HAL_04

小结

  • STM32L4 HAL 库,作为在线的软件包,可以减少 RT-Thread BSP 的体积
  • 需要熟悉 RT-Thread ENV 工具的使用,配置与更新软件包的方法,Kconfig 配置好了,还要记得 pkgs --update 方式把 软件包代码拉取到本地。
  • 其他的一些大的 BSP HAL库,依旧可以做成 在线软件包的方式,这样可以减少 RT-Thread BSP 本身的体积
  • 如果 BSP HAL 做成了在线软件包,建议通过 【文档】或【教程】等方式,让开发者快速上手。