硬汉嵌入式论坛

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

[SPI/QSPI] 新手请教STM32H7外部flash启动问题

[复制链接]

3

主题

2

回帖

11

积分

新手上路

积分
11
发表于 2022-6-16 14:15:04 | 显示全部楼层 |阅读模式
刚接触H7的MCU,看了群主发布的一些视频,对于下载算法、分散加载、bootloader之间的关系不是很清楚,请大神们指点一下,谢谢。
1、如果程序下到QSPI FLASH(0x900000000)运行和调试,除了制作一个下载算法,将target选项卡IROM设置0x900000000之外,还需要bootloader跳转到0x900000000吗?程序上电启动能直接从0x90000000开始进入复位中断吗?还是说必须从0x80000000开始进入boot loader再跳转?
2、如果不管数据的存储位置(系统默认),仅将程序下载到QSPI FLASH运行,是不是可以不用修改分散加载文件?
3、MDK编译完后需要下载几次?先选择内部flash下载算法下载bootloader,再选择外部flash下载算法下载APP?
回复

使用道具 举报

19

主题

62

回帖

119

积分

初级会员

积分
119
发表于 2022-6-16 19:09:08 | 显示全部楼层
几个关键概念的说明:
1.分散加载是一种编译方式,他可以比较高灵活度的控制编译出来的程序的存放位置,其效果等同于修改target选项卡IROM和IRAM
2.STM32H7启动地址默认是在0x80000000,如果程序选择存放在其他地方,需要先写一个BootLoader在0x80000000处运行,在BootLoader启动后再跳转到目标地址指向指定的程序
3.QSPI FLASH属于外部flash,MDK不清楚如何下载,所以需要写下载算法来完成此部分程序的下载
对于你的几个问题:
1.需要做bootloader,不能直接跳转到0x90000000,需从0x80000000开始执行
2.修改分散加载文件或修改target选项卡IROM和IRAM者两种方式必须使用一种
3.bootloader和app独立下载,需要更新哪部分就下载哪部分
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
发表于 2022-6-17 09:26:04 | 显示全部楼层
1、以STM32H7为例,可以从 0x0000 0000 到 0x3FFF 0000 所有地址进行启动,不包含0x90000000
2、所有IDE都需要分散加载设置,只分用户手动和IDE自动两种玩法。
3、下载那些,加载那些算法文件即可。
回复

使用道具 举报

3

主题

2

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2022-6-18 00:06:56 | 显示全部楼层
mojinpan 发表于 2022-6-16 19:09
几个关键概念的说明:
1.分散加载是一种编译方式,他可以比较高灵活度的控制编译出来的程序的存放位置,其效 ...

谢谢,解决了困恼我好久的问题
回复

使用道具 举报

3

主题

2

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2022-6-18 00:08:22 | 显示全部楼层
eric2013 发表于 2022-6-17 09:26
1、以STM32H7为例,可以从 0x0000 0000 到 0x3FFF 0000 所有地址进行启动,不包含0x90000000
2、所有IDE都 ...

谢谢群主的回复
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 04:56 , Processed in 0.259480 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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