彻底拿下QSPI双闪存W25Q256| STM32H750| QSPI 双FLASH |cubeIDE |下载算法(二)

彻底拿下QSPI双闪存W25Q256| STM32H750| QSPI 双FLASH |cubeIDE |下载算法(二)

参考文章:

STM32CubeIDE的STM32H750XB下载算法_qq_37914879的博客-CSDN博客_stm32下载算法

【STM32H7教程】第81章 STM32H7的QSPI 总线应用之QSPI Flash的STM32CubeProg下载算法制作_嵌入式系统OS的博客-CSDN博客

在(一)中完成了QSPI 双FLASH (W25Q256)的调试,并测试了64M字节空间。接下来,完善工程制作下载算法。按照(一)中stm32cubemx无法生成工程_工程师笔记 | 通过 STM32CubeMX制作外部Flash的烧写驱动 (.stdlr)…_瓷tun的博客-CSDN博客

的方式搭建工程好像没什么问题,但是代码的编写和安富莱的有一些区别,自己试了以下并未成功,生成的文件放入cubeProgramer相关路径下也无法正确加载,然后又试了安富莱的Keil-MDK工程,移植在(一)中改写的QSPI双W25Q256的代码,经测试可行,效果如下图所示。
彻底拿下QSPI双闪存W25Q256| STM32H750| QSPI 双FLASH |cubeIDE |下载算法(二)_第1张图片

至此,下载算法完成,可以将程序中所需要的数据打包成bin、hex等文件,然后通过这个算法烧写到外部FLASH中了,当然代码也是可以的,但是上电直接运行QSPI中的代码是不可能的,因为QSPI必须经过初始化。也就是说首先要在STM32自身的FLASH中实现一个跳转功能,跳转到支持XIP(现场执行)的外部FLASH中,才能运行外部FLASH里的程序。那么在STM32自身的FLASH中的这段代码,应该完成QSPI的初始化,以及跳转功能,通常将这段代码成为BOOT(引导)程序,而将外部FLASH中的程序称为APP(应用)程序。

江湖规矩,最后给出STM32H750Pro开发板的双QSPI FLASH下载算法工程:

https://gitee.com/li-changdong/W25Q256x2_STM32H750Pro.git

使用Keil5 MDK打开,编译生成.stldr文件,放入cubeProgrammer的相关路径下,比如我的是在E:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\ExternalLoader,然后就能使用了

下一步,将继续学习如何将代码写进这个QSPI双闪存,并运行起来。(PS:不知道双闪存支不支持XIP运行代码,先就这样往下走吧)

你可能感兴趣的:(笔记,stm32,单片机,arm)