硬汉嵌入式论坛

 找回密码
 立即注册
查看: 23917|回复: 47
收起左侧

[STM32H750] 适用于STM32H750的QSPI Flash下载算法

  [复制链接]

10

主题

140

回帖

170

积分

初级会员

积分
170
发表于 2019-3-19 13:29:22 | 显示全部楼层 |阅读模式
自己做了几块STM32H750VBT6的板子,苦于没有适配的下载算法,一直是下载到SRAM中调试程序。
后来在某论坛找了个,针对自己的板子做了相应的修改,折腾了一个星期,终于可以用了。
本来想弄个HAL库版本的,但一直存在各种问题,无法生成FLM文件。不得已,最终还是用的纯寄存器方式。
将生成的FLM文件复制到 "Keil_v5\ARM\Flash" 文件夹下,在Flash Download中添加即可。

我的板子只在QSPI BANK1接了一个型号为W25Q64JVSIQ的Flash。
引脚情况:
PB2  QUADSPI1_CLK
PB6  QUADSPI1_BK1_NCS
PD11, PD12, PD13  QUADSPI1_BK1_IO0, IO1, IO3
PE2  QUADSPI1_BK1_IO2
如果引脚不同,Flash型号不同,都必须作相应的源码修改才行。

虽然可以用了,但对FLM文件和整个Flash下载过程还是没有完全弄清楚,谁有好的参考资料,希望能够共享一下。

附件中同时带有对应的BOOT程序,也必须根据硬件情况进行相应的修改。

KeilFlashFlm.rar (2.34 MB, 下载次数: 3382)

评分

参与人数 6金币 +175 收起 理由
hustwbxs + 20 赞一个!
KK-1 + 20 很给力!
默阿 + 20
佛云猪 + 5
wofei1314 + 10
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

7

主题

31

回帖

52

积分

初级会员

积分
52
QQ
发表于 2019-3-19 14:32:09 | 显示全部楼层
太感谢啦,大赞!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106661
QQ
发表于 2019-3-19 14:36:03 | 显示全部楼层
非常感谢楼主分享。
回复

使用道具 举报

54

主题

145

回帖

307

积分

高级会员

积分
307
发表于 2019-3-19 15:17:16 | 显示全部楼层
感谢分享
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2019-3-20 09:15:33 | 显示全部楼层
我有个产品是搭配 4MB SPI flash. flash里面的数据,我是通过USB直接加载到RAM,再用flash写命令搞定的。不同的文件,根据自己规划的flash map 对应搬运到自己特定的地址。
回复

使用道具 举报

8

主题

46

回帖

70

积分

初级会员

积分
70
发表于 2019-5-7 15:07:25 | 显示全部楼层
非常感谢Ivehe的分享,

想请教您,我有试着将您分享的算法加入我的主要功能中确实可以使用,但却发生此状况,引脚及其他部分皆已设定完成,请问能协助下吗?
我的版本是
STM32H743
W25Q256JV


万分感恩!
回复

使用道具 举报

3

主题

4

回帖

13

积分

新手上路

积分
13
发表于 2019-5-7 16:30:20 | 显示全部楼层
我尝试了一下IAR,主要是根据flashloader重新建工程生成out文件,我的flash是winbond的w25q128
回复

使用道具 举报

3

主题

4

回帖

13

积分

新手上路

积分
13
发表于 2019-5-9 10:29:26 | 显示全部楼层
我换了stlink仿真器,但是现在下载时总是提示cannot load flash programming algorithm,请问是什么原因?
回复

使用道具 举报

10

主题

140

回帖

170

积分

初级会员

积分
170
 楼主| 发表于 2019-5-9 11:19:45 | 显示全部楼层
我心平静 发表于 2019-5-9 10:29
我换了stlink仿真器,但是现在下载时总是提示cannot load flash programming algorithm,请问是什么原因?

不清楚你的硬件情况和源码,无法对你自己所做的改动是否正确合理做出评价。
无法下载的一种情况是Flash Download右边的“RAM for Algorithm里的Size设置太小,一般设置为0x00004000即可。默认的是0x00001000,可能不太够。
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2019-5-13 10:16:49 | 显示全部楼层
大神666,我也折腾了一个星期,至今未成功,多谢分享~
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2019-5-13 10:46:45 | 显示全部楼层
请教大神下载程序时如何配置?我按照您的工程实例编译好了我的程序,在MDK也识别了算法,但是我自己的APP中添加好算法后,无法下载,下载时在下面状态栏能看到,擦除 0x90000000  ,然后过一会儿就提示了超时...下载失败
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
QQ
发表于 2019-5-13 11:17:17 | 显示全部楼层
我心平静 发表于 2019-5-7 16:30
我尝试了一下IAR,主要是根据flashloader重新建工程生成out文件,我的flash是winbond的w25q128

老哥,你搞定了IAR下的下载算法么。。。
回复

使用道具 举报

10

主题

140

回帖

170

积分

初级会员

积分
170
 楼主| 发表于 2019-5-13 12:10:14 | 显示全部楼层
wofei1314 发表于 2019-5-13 10:46
请教大神下载程序时如何配置?我按照您的工程实例编译好了我的程序,在MDK也识别了算法,但是我自己的APP中 ...

你可以在里面FLM里面添加串口之类的调试程序,这样就可以一步步地查看各步执行错误在哪,方便查找原因。FLM是加载到单片机的RAM中执行的一段程序,和普通的程序差不多,你可以往里面添加调试等功能。
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2019-5-13 12:40:53 | 显示全部楼层
lvehe 发表于 2019-5-13 12:10
你可以在里面FLM里面添加串口之类的调试程序,这样就可以一步步地查看各步执行错误在哪,方便查找原因。F ...

多谢指点,我再看下
回复

使用道具 举报

24

主题

70

回帖

142

积分

初级会员

积分
142
发表于 2019-5-14 08:30:54 | 显示全部楼层
kippsun 发表于 2019-5-13 11:17
老哥,你搞定了IAR下的下载算法么。。。

昨天刚刚搞定,参照\arm\src\flashloader\ST\FlashSTM32H7xx_QSPI这个工程,主要实现3个函数即可,我是用cubemx初始化IO寄存器(也可以手动写mac文件),然后照葫芦画瓢配置,.board文件,.flash文件,然后在工程配置download中使用这两个文件
回复

使用道具 举报

24

主题

70

回帖

142

积分

初级会员

积分
142
发表于 2019-5-14 08:32:14 | 显示全部楼层
utyang 发表于 2019-5-14 08:30
昨天刚刚搞定,参照\arm\src\flashloader\ST\FlashSTM32H7xx_QSPI这个工程,主要实现3个函数即可,我是用 ...

参考文档 FlashLoaderGuide.ENU.pdf
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2019-5-20 17:41:35 | 显示全部楼层
多谢分享,收藏
回复

使用道具 举报

8

主题

44

回帖

68

积分

初级会员

积分
68
发表于 2019-6-12 13:53:41 | 显示全部楼层
请问下载算法是从什么地方找到并修改的
回复

使用道具 举报

24

主题

70

回帖

142

积分

初级会员

积分
142
发表于 2019-6-12 14:07:19 | 显示全部楼层
真真切切zzz 发表于 2019-6-12 13:53
请问下载算法是从什么地方找到并修改的

keil的参考文档:http://www.keil.com/support/docs ... 14942349.1537923149
我现在的问题是把flm文件放到flash文件夹下后,keil加载不了flm文件,现在还没解决。
只好改用IAR来下载了
回复

使用道具 举报

8

主题

44

回帖

68

积分

初级会员

积分
68
发表于 2019-6-17 09:12:12 | 显示全部楼层
utyang 发表于 2019-6-12 14:07
keil的参考文档:http://www.keil.com/support/docs/3656.htm?_ga=2.108253442.141730508.1559523254-201 ...

能否看下你的IAR的下载算法
回复

使用道具 举报

8

主题

44

回帖

68

积分

初级会员

积分
68
发表于 2019-7-5 13:51:55 | 显示全部楼层
我心平静 发表于 2019-5-7 16:30
我尝试了一下IAR,主要是根据flashloader重新建工程生成out文件,我的flash是winbond的w25q128

我也用IAR的安装目录下的外部QSPI程序例程,修改成自己的后,编译无错误。生成out文件了。这怎么使用,不知道怎么使用啊。一般工程下载都是有相应的.flash文件。编译后没有生成对应的文件啊。
回复

使用道具 举报

8

主题

44

回帖

68

积分

初级会员

积分
68
发表于 2019-7-6 09:48:53 | 显示全部楼层
我用下载算法生成了一个stldr文件,为何放到stm32cubeprogrmer的external flashloader文件夹下面,stm32cubeprogrmer就无法打开了
回复

使用道具 举报

7

主题

125

回帖

146

积分

初级会员

积分
146
发表于 2019-7-6 17:14:41 | 显示全部楼层
真真切切zzz 发表于 2019-7-6 09:48
我用下载算法生成了一个stldr文件,为何放到stm32cubeprogrmer的external flashloader文件夹下面,stm32cub ...

记得放在bin目录下面,不要放在api目录下面
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-3-11 16:30:42 | 显示全部楼层
wofei1314 发表于 2019-5-13 10:46
请教大神下载程序时如何配置?我按照您的工程实例编译好了我的程序,在MDK也识别了算法,但是我自己的APP中 ...

你好,我也遇到了同样的问题,请问你解决了吗
回复

使用道具 举报

29

主题

231

回帖

318

积分

高级会员

积分
318
发表于 2020-3-11 16:58:43 | 显示全部楼层
终于搞定了,由于晶振和外部FLASH跟楼主不一致,导致不能直接使用这个,虽然大概能理解程序的流程,但是没法直接验证读写是否正确。一狠心,就将FLM的代码重新调整成一个正常的读写FLASH的代码,然后去验证代码通过QSPI是否OK,结果发现有些命令在我的FLASH上不能使用,或者没有这个命令,只能调整代码。
回复

使用道具 举报

5

主题

109

回帖

124

积分

初级会员

积分
124
发表于 2020-5-18 00:11:52 | 显示全部楼层
spi flash 的加载算法搞过没
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
发表于 2020-5-26 08:46:47 | 显示全部楼层
我用H750B-DK开发板,这个怎么调试QSPI上的程序呀?用ST的例程都跑不起来。是不是要先在内部FLASH内写一段程序然后跳转到QSPI中?使用OPTION里面BOOT启动地址设置为QSPI的地址也不行
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2020-5-31 00:33:53 | 显示全部楼层
不错
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-6-29 12:01:29 | 显示全部楼层
兄弟你可以的哈
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-6-30 15:43:29 | 显示全部楼层
谢谢分享,正好需要。/
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-7-26 11:44:13 | 显示全部楼层
wofei1314 发表于 2019-5-13 10:46
请教大神下载程序时如何配置?我按照您的工程实例编译好了我的程序,在MDK也识别了算法,但是我自己的APP中 ...

你好,大佬是否成功过啊?
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2020-8-23 13:34:36 | 显示全部楼层
谢谢分享,
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2020-9-28 16:42:22 | 显示全部楼层
我按照楼主分享的工程修改了qspi的引脚和flash的容量大小,能够跳转到app程序,但是会有50%左右的概率出现flash超时,无法下载的情况,原因不明,请高手指教
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106661
QQ
发表于 2020-9-29 05:14:27 | 显示全部楼层
星夜欣宇 发表于 2020-9-28 16:42
我按照楼主分享的工程修改了qspi的引脚和flash的容量大小,能够跳转到app程序,但是会有50%左右的概率出现f ...

MDK的STM32H7软件包升级至V2.6.0版本,对ST所有板子的外置Flash下载算法提供了源码
http://www.armbbs.cn/forum.php?m ... 9949&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2020-9-29 08:55:32 | 显示全部楼层
eric2013 发表于 2020-9-29 05:14
MDK的STM32H7软件包升级至V2.6.0版本,对ST所有板子的外置Flash下载算法提供了源码
http://www.armbbs.c ...

好的,这就试试,多谢硬汉哥
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-11-4 14:57:01 | 显示全部楼层
非常到位的文件,为了这个qflash我们工程师折腾了好几天,帮了大忙了,特意注册账号回复表示感谢
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-11-9 16:04:45 | 显示全部楼层
Hans 发表于 2019-5-7 15:07
非常感谢Ivehe的分享,

想请教您,我有试着将您分享的算法加入我的主要功能中确实可以使用,但却发生此状 ...

你好,你这问题解决了吗
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-12-22 23:07:08 | 显示全部楼层
多谢分享!!!
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2020-12-29 14:11:50 | 显示全部楼层
eric2013 发表于 2019-3-19 14:36
非常感谢楼主分享。

汉哥,打扰了
我用你stm32H7的V7-061的例子,移植到H750上,我们的板子是只有一个QSPI flash,发现擦除和写能成功,但是前两个字节不能擦和写,一直是8888,这种是咋回事啊,有什么调试方法吗
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2020-12-29 14:16:36 | 显示全部楼层
真真切切zzz 发表于 2019-7-6 09:48
我用下载算法生成了一个stldr文件,为何放到stm32cubeprogrmer的external flashloader文件夹下面,stm32cub ...

我也遇到了,启动时候直接退出了,删除那个算法就好了

后来发现是在keil中编译时我嫌算法太大,把debug information的勾去掉了,加回来后能启动,但是连接时读取直接卡死,后来又重启几次cube,先到读取界面,然后连接,发现又好了。。。不卡了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 07:52 , Processed in 0.460898 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表