一、ENV使能SPI_Flash
1.1.添加Kconfig配置
menu "Onboard Peripheral Drivers"
config BSP_USING_SPI_FLASH
bool "Enable SPI FLASH (spi1)"
select BSP_USING_SPI
select BSP_USING_SPI1
select PKG_USING_FAL
select FAL_USING_SFUD_PORT
select RT_USING_SFUD
default n
endmenu
menu "On-chip Peripheral Drivers"
menuconfig BSP_USING_SPI
bool "Enable SPI"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1
bool "Enable SPI1"
default n
endif
endmenu
1.2.ENV配置
输入menuconfig
因为板载的 W25Q128 是挂载在 SPI1 总线上的,所以这里我们使能 SPI1
使能串行 Flash 通用驱动程序(SFUD)
当我们使能硬件 SPI 的时候 FAL 的软件包也默认为我们使能了。
FAL是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及分区操作的 API 。
使用 pkgs --target 拉取软件包,最后使用 scons --target=mdk5 生成代码
二、使用CubeMX配置SPI
2.1.查看 SPI_FLASH 对应的引脚
打开电路原理图
打开 CubeMX,使能 SPI1 外设。
三、添加SConscript脚本
以上配置完成之后,默认是不会将设备挂载到 SPI 总线的,需要我们手动的添加代码去绑定 SPI 设备,为了防止每次 mdk 生成代码之后重复添加,所以我们需要在 SConscript 中配置,让其自动生成代码。
打开 bsp\stm32\stm32h750-artpi-h750\board\SConscript 添加如下代码
四、编译验证
可以看到,SPI_Flash 已经成功的挂载到了 SPI 总线,并且识别出其大小为16M,同时fal为我们展示了 flash 中的分区,可以清晰的看到 wifi,ble 等等固件存放的地址。
输入 list_device 查看系统中的设备,同样也是可以看到 SPI 设备的,也可以使用 sf probe 来探测 SPI_Flash。
五、添加文件系统
使能虚拟文件系统 DFS
打开 littlefs 软件包
下载到开发板,可看到文件系统已经挂载到了/flash下面了
|