硬汉嵌入式论坛

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

[SPI/QSPI] H750中QSPI时钟选择与boot程序跳转问题

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2025-5-12 22:44:50 | 显示全部楼层 |阅读模式
最近在弄STM32H750的bootloader,boot程序在内部flash,app程序放在qspi外挂的外部flash,w25q128这种,在boot程序中,qspi的时钟只有选择HSI本身的64MHZ时才可以正常跳转到app程序,选择pll倍频后的时钟在程序跳转过程中内存映射会消失,有没有大佬懂我的配置哪里出错了
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2025-5-13 09:06:06 | 显示全部楼层
大概率是App程序中,调用了初始化程序,重新初始化了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2025-5-13 09:16:39 | 显示全部楼层
参考下我这个,我这个是内部BOOT用的PLL,400M

https://www.armbbs.cn/forum.php? ... &extra=page%3D1

123.png


回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-5-13 15:59:59 | 显示全部楼层
了无 发表于 2025-5-13 09:06
大概率是App程序中,调用了初始化程序,重新初始化了

我刚试了试把APP程序main函数里的内容全注释了,就留了一个中断向量表位置重定义跟while(1)循环,还是跳不过去,boot程序跳转后内存映射区0x90000000的内容会变成?号,我试过别的开发板上的boot程序,跳app随便挑,赶紧是自己的boot程序配置有问题,但qspi就那么些配置,也已经把外置flash跑通了,就弄不明白
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-5-13 16:00:44 | 显示全部楼层
eric2013 发表于 2025-5-13 09:16
参考下我这个,我这个是内部BOOT用的PLL,400M

https://www.armbbs.cn/forum.php?mod=viewthread&tid=869 ...

谢谢硬汉哥,我再去研究研究boot程序有啥要注意的地方,赶紧还是某个地方的配置有问题
回复

使用道具 举报

10

主题

53

回帖

83

积分

初级会员

积分
83
发表于 2025-5-13 23:40:44 | 显示全部楼层
随风杨 发表于 2025-5-13 16:00
谢谢硬汉哥,我再去研究研究boot程序有啥要注意的地方,赶紧还是某个地方的配置有问题

你的跳转函数 确认一下
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-5-14 11:26:58 | 显示全部楼层
搞明白了,发现是初始化的原因,CubeMX生成的初始化函数跟直接配置寄存器去初始化QSPI效果就是不一样,直接修改QSPI_CR和QSPI_DCR寄存器进行QSPI的初始化,然后内存映射后能进行时钟deinit,也能跳转不丢失内存映射,用CubeMX生成的QSPI初始化函数,参数跟寄存器配置时的一样,在程序跳转时就会丢失内存映射
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-5-15 21:41:37 | 显示全部楼层
eric2013 发表于 2025-5-13 09:16
参考下我这个,我这个是内部BOOT用的PLL,400M

https://www.armbbs.cn/forum.php?mod=viewthread&tid=869 ...

硬汉哥,我参考了你的bootloader程序,qspi的初始化和对应的gpio引脚初始化都是CubeMX生成的,做完时钟和QSPI初始化后就执行了内存映射的函数,我把你的内存映射函数复制过来用,debug能显示0x90000000的内容但执行完HAL_RCC_DeInit();后内容还是会变成????全问号
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2025-5-16 08:13:06 | 显示全部楼层
随风杨 发表于 2025-5-15 21:41
硬汉哥,我参考了你的bootloader程序,qspi的初始化和对应的gpio引脚初始化都是CubeMX生成的,做完时钟和 ...

这个不用管。跳转前后期间内容无需关注
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2025-5-16 13:56:39 | 显示全部楼层
随风杨 发表于 2025-5-14 11:26
搞明白了,发现是初始化的原因,CubeMX生成的初始化函数跟直接配置寄存器去初始化QSPI效果就是不一样,直接 ...

我也是直接用cubemx配的 先开始用hal库不行最后操作寄存器才成功跳转的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 17:26 , Processed in 0.266985 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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