
前言 6 l: f' v3 F* k* L 目前,越来越多的应用需要扩展外部的 Flash 来满足存储需求。那么,在调试及批量生产的过程中,需要对外扩的 Flash 进行烧录操作。由于 STM32 ST-LINK Utility 以及 STM32CubeProgrammer 中,对 Flash 支持的型号有限,只能覆盖一部分 MCU和 Flash 的型号,无法完全满足客户的需求。而且,它提供的 external loader 的制作模板存在覆盖的芯片型号较少,且无法前期 QSPI Flash 调试的问题。本文旨在提供一种通过 stm32CubeMX 制作 external Flash loader 的方法。客户可以根据自己的型号,进行定制化的生成。本文中,以某客户实际使用的 MCU(STM32H750) 和 Flash(S25LP128F) 为例进行讲解。; q0 ?/ I# T4 m* _" U8 @; ? . O$ j0 s+ J- M+ J - \, H6 m4 o5 p- x+ [ 准备工作 ⚫安装 STM32CubeIDE5 h( r& q5 H3 d" `) S8 z ⚫安装 MCU 对应型号的 HAL 库 8 f# ]" _* d/ Y8 _6 z. F2 V External loader 开发 External Loader 的开发分成三个部分,第一部分是使用 STM32CubeMX 进行工程的配置及生成。第二部分是外部 Flash 的驱动调试,主要包含初始化,擦除,写入以及读出等操作。第三部分调用驱动函数进行 external loader 的生成,包括外部 Flash信息的定义,包括 Flash 容量的大小,page 的大小,以及 Sector 相关的信息;第三步中 external loader 所需要的代码及对应器件的驱动,可以在下面的 GitHub 仓库中获取,同时也欢迎大家将自己调试好的器件驱动提交到该仓库。6 d8 T7 v- h, e6 z0 N 8 q5 u9 i6 a1 ^ 使用 STM32CubeMX 生成工程 8 E4 d4 G2 o) z R/ J- w 此处,我们使用 STM32CubeIDE 集成的 STM32CubeMX 进行工程的配置和生成。' i( d5 u( G( Y" y 选择对应的器件,填入工程名称,并选择存放位置:按照硬件原理图选择好对应的 Flash 管脚,此处选择为 Bank2,配置如下图。注意调整管脚的速度为 High,同时使能 QSPI的中断。FlashSize 值设置为 N,Flash 的大小配置 2N+1。( i1 |3 W1 j6 L ![]() ![]() : S4 o8 f( a9 x+ k: \ 完整版请查看:附件 / M- Q( l% i0 X! K7 ~ |
通过STM32CubeMX制作外部Flash的烧写驱动.pdf
下载680.82 KB, 下载次数: 39
新版STM32Cube for Visual Studio Code开发体验
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯