p00equal1 发表于 2020-11-27 12:32:22

STM32H750片外Flash启动(W25Q64JVSIQ)

记录一下调试外部flash启动时踩过的坑:
1,W25Q64FVSIG和W25Q64JVSIQ大概有两点不同:JV的速度比FV快,并且JV默认通信方式是QSPI,一般应用可以用FV,QSPI启动用JV方便点
2,从bootloader跳转到app后切勿不要再动有关QSPI的任何部分(IO,时钟)
例如用CubeMx生成app代码的时候不要勾选那个(设置无用脚为模拟模式)
3,修改老大发布的教程里的MDK下载算法模版的时候如果QSPI硬件连接不一样,除了修改IO口还要记得检查一边IO时钟
4,下图里面的Flash大小和扇区大小要匹配硬件使用的芯片规格

5,flash擦除,编程一定要记得加QSPI自动查询状态的那个函数
6,一定要确认自己使用的flash地址是24bit还是32bit

老大写的教程很详细,奈何自身水平不够,踩了好几个坑,大家调试这块的时候千万不要再犯我这样的错误了


eric2013 发表于 2020-11-27 13:02:23

谢谢楼主分享。

xk2yx 发表于 2020-11-27 13:53:31

谢谢分享, ,学习下。。。。

huang000 发表于 2020-12-1 11:46:19

制作好算法后,批量生产产品就不用分开独立下载程序了是吗

morning_enr6U 发表于 2020-12-1 14:10:43

谢谢分享,感谢楼主,感谢硬汉大哥!{:34:}

1648183280@qq.c 发表于 2021-2-24 09:21:35

楼主,你好,我用你的算法烧录app这个程序,把内存大小改为图片2的值(fff4,要不然就无法加载算法),然后烧录的时候就会出现图片1的错误,不知道是为什么了?

zhaoqi 发表于 2021-3-31 10:35:55

“从bootloader跳转到app后切勿不要再动有关QSPI的任何部分(IO,时钟)” 并不是不能重新配置,而是不能在程序跑在QSPI映射区域的时候配置,当代码运行在其他ROM、RAM的时候,是可以重新配置的。

Hming 发表于 2021-4-3 16:30:23

感谢楼主,改了一个多星期了没成功,:'(

p00equal1 发表于 2021-4-7 23:42:59

zhaoqi 发表于 2021-3-31 10:35
“从bootloader跳转到app后切勿不要再动有关QSPI的任何部分(IO,时钟)” 并不是不能重新配置,而是不能在程 ...

是的,谢谢提醒,可以分时复用的

ou513 发表于 2021-4-16 14:08:16

谢谢分享,正在学习中!!

l4568527193 发表于 2022-12-1 18:17:31

大佬你好,我把三个工程的QSPI按照正点原子的改好了,分别都下载进去到不同的flash了(外部flash下载校验vierfy不过,就没校验),但是程序运行不起来,求指点

l4568527193 发表于 2022-12-1 18:34:12

跑不起来呀,大佬指点一下

西点钟灵毓秀 发表于 2022-12-2 17:46:41

感谢楼主:loveliness::loveliness::loveliness:

l4568527193 发表于 2022-12-3 13:32:05

zhaoqi 发表于 2021-3-31 10:35
“从bootloader跳转到app后切勿不要再动有关QSPI的任何部分(IO,时钟)” 并不是不能重新配置,而是不能在程 ...

大佬好,楼主的这个例程我把相关配置按照原子哥的改了(下载算法和boot中QSPI的GPIO,w25q32的容量等、boot的w25q32的地址位,APP的LED的GPIO配置),boot可以下载,APP下载的时候加了校验就失败,不加校验能够下载成功,但是跑不起来

eric2013 发表于 2022-12-4 13:37:28

l4568527193 发表于 2022-12-3 13:32
大佬好,楼主的这个例程我把相关配置按照原子哥的改了(下载算法和boot中QSPI的GPIO,w25q32的容量等、bo ...

说明你的算法没有正确切换到内存映射模式,校验的话,最好切到内存映射模式。

这样此算法还能用于调试。

l4568527193 发表于 2022-12-6 15:11:58

eric2013 发表于 2022-12-4 13:37
说明你的算法没有正确切换到内存映射模式,校验的话,最好切到内存映射模式。

这样此算法还能用于调试 ...

大佬可以加一下QQ,请教一下么?304754174,非常感谢,跪求

eric2013 发表于 2022-12-8 11:15:37

l4568527193 发表于 2022-12-6 15:11
大佬可以加一下QQ,请教一下么?304754174,非常感谢,跪求

我头像下面那个就是。

l4568527193 发表于 2022-12-29 09:42:23

eric2013 发表于 2022-12-8 11:15
我头像下面那个就是。

您好,头像下面的qq联系不上您

zhangyh89 发表于 2024-3-2 15:59:24

有没有办法在代码运行在外部flash的同时,对外部flash进行写操作。目前我在芯片内部flash的代码中初始化外部flash,并且将外部flash的写操作函数的地址保存在固定的RAM地址中,写操作中先关闭全局中断解除内存映射,然后近些写操作,写完后再重新开启内存映射开启全局中断,但是实测无法运行,外部flash的代码中只要执行内部flash内的写函数就会直接崩溃,连hardfault都不会进入

桐阴转午 发表于 2024-3-4 14:56:14

谢谢分享!

eric2013 发表于 2024-3-5 10:14:25

zhangyh89 发表于 2024-3-2 15:59
有没有办法在代码运行在外部flash的同时,对外部flash进行写操作。目前我在芯片内部flash的代码中初始化外 ...

这个确实没有特别好办法,使能内存映射后,就没法再执行写操作了。

jihw1990 发表于 2024-4-3 19:54:49

谢谢楼主分享。

obsasd 发表于 2024-5-5 22:18:17

感谢大佬分享,先试一下看看
页: [1]
查看完整版本: STM32H750片外Flash启动(W25Q64JVSIQ)