硬汉嵌入式论坛

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

[STM32H7] 急,请教STM32H750VBT6如何用片内flash做boot和APP?

[复制链接]
回帖奖励 2 个金币 回复本帖可获得 1 个金币奖励! 每人限 1 次

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2023-3-9 16:19:08 | 显示全部楼层 |阅读模式
最近项目上碰到一个问题。芯片用的STM32H750VBT6,片内flash只有一个扇区,128KB;bootloader升级写入flash时会擦除整个片区。bootloader程序也没法运行了。APP程序只有65K,有没有一个办法让bootloader和APP都放到片内flash上?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106436
QQ
发表于 2023-3-9 16:22:33 | 显示全部楼层

回帖奖励 +1 个金币

可以,APP上电后加载到RAM运行。

爽,一种非常给力的STM32H7内部Flash和QSPI Flash混合运行程序的方式,不再需要用户单独制作BOOT和APP
https://www.armbbs.cn/forum.php? ... 1011&fromuid=58
(出处: 硬汉嵌入式论坛)


回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 16:32:57 | 显示全部楼层
eric2013 发表于 2023-3-9 16:22
可以,APP上电后加载到RAM运行。

爽,一种非常给力的STM32H7内部Flash和QSPI Flash混合运行程序的方式, ...

硬汉哥,我不太理解。为什么APP在ram上运行就解决了bootloader升级时会擦除整个flash,而不影响bootloader的问题呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106436
QQ
发表于 2023-3-9 16:34:28 | 显示全部楼层
xiaodadjiadakip 发表于 2023-3-9 16:32
硬汉哥,我不太理解。为什么APP在ram上运行就解决了bootloader升级时会擦除整个flash,而不影响bootloade ...

在RAM运行的话,就可以用不到你的Flash了,此时你就可以随意对其进行操作。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 16:43:32 | 显示全部楼层
eric2013 发表于 2023-3-9 16:34
在RAM运行的话,就可以用不到你的Flash了,此时你就可以随意对其进行操作。

您的意思是APP和IAP做成一个程序吗?APP接收了数据直接写入到flash上然后重启就可以了?  还是把boot做成RAM运行,升级的时候先进入RAM,先把原来的bootloader读出来,然后重新写进入,再写入APP?
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 16:47:21 | 显示全部楼层
您的意思是APP和boot是一个程序,收到更新后写入flash,重启就可以了?   还是boot是一个程序,APP是一个程序,收到更新命令后进入boot,boot在RAM上运行,然后对flash进行操作。先读出boot,再写入boot,最后写入app重启。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 16:53:24 | 显示全部楼层
是这个意思吗?不区分boot和APP,APP运行的时候收到更新直接对flash操作,重启之后就进入新的APP了?
回复

使用道具 举报

2

主题

5

回帖

11

积分

新手上路

积分
11
发表于 2023-3-9 16:55:00 | 显示全部楼层
eric2013 发表于 2023-3-9 16:34
在RAM运行的话,就可以用不到你的Flash了,此时你就可以随意对其进行操作。

这种方式,如果操作flash的时候掉电了是不是就成砖头了
回复

使用道具 举报

18

主题

233

回帖

287

积分

高级会员

积分
287
发表于 2023-3-9 16:56:46 | 显示全部楼层
可不可以这么解决,芯片复位,运行在内部flash的bootloader,将内部flash中的App复制到RAM中,然后跳转到RAM中的App。
升级的时候,RAM中的App将flash的bootloader复制出来,擦除flash,写入复制的bootloader,写入新的App固件
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 17:03:40 | 显示全部楼层
tovinz 发表于 2023-3-9 16:56
可不可以这么解决,芯片复位,运行在内部flash的bootloader,将内部flash中的App复制到RAM中,然后跳转到RA ...

您的意思就是在APP中进行flash的操作吧?boot的作用仅是复制APP到ram
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106436
QQ
发表于 2023-3-9 17:06:52 | 显示全部楼层
tovinz 发表于 2023-3-9 16:56
可不可以这么解决,芯片复位,运行在内部flash的bootloader,将内部flash中的App复制到RAM中,然后跳转到RA ...

可以,总体思路就是加载到RAM运行下。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106436
QQ
发表于 2023-3-9 17:09:40 | 显示全部楼层
xiaodadjiadakip 发表于 2023-3-9 16:47
您的意思是APP和boot是一个程序,收到更新后写入flash,重启就可以了?   还是boot是一个程序,APP是一个程 ...

后者。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106436
QQ
发表于 2023-3-9 17:15:15 | 显示全部楼层
lbinquan 发表于 2023-3-9 16:55
这种方式,如果操作flash的时候掉电了是不是就成砖头了

对,有这么个问题,有必要做个简单的启动代码,启动APP更新前,优先将其复制到可以外置纽扣电池供电的RAM区,然后设置芯片上电启动地址设置到这里。防止意外断电重新上电出问题。
回复

使用道具 举报

18

主题

233

回帖

287

积分

高级会员

积分
287
发表于 2023-3-9 17:18:02 | 显示全部楼层
eric2013 发表于 2023-3-9 17:15
对,有这么个问题,有必要做个简单的启动代码,启动APP更新前,优先将其复制到可以外置纽扣电池供电的RAM ...

感觉还是外挂一个存储器放App固件是最好的,擦除bootloader的扇区风险太大了
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 17:27:39 | 显示全部楼层
tovinz 发表于 2023-3-9 17:18
感觉还是外挂一个存储器放App固件是最好的,擦除bootloader的扇区风险太大了

放到外挂flash中对运行速度有影响吗?
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2023-3-9 17:28:34 | 显示全部楼层

有没有相似案例的链接分享一下。谢谢
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
发表于 2023-3-9 18:18:01 | 显示全部楼层
STM32H750VBT6和STM32H7B0VBT6,内部FLASH不是实际有2MB可用吗?我以前在咱们论坛上看到过讨论。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106436
QQ
发表于 2023-3-10 09:43:11 | 显示全部楼层
xiaodadjiadakip 发表于 2023-3-9 17:28
有没有相似案例的链接分享一下。谢谢

这个还真有一个。

制作了一个通过BOOT复制APP程序到AXI SRAM运行的案例,适合H750,H7B0玩
https://www.armbbs.cn/forum.php? ... 2748&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2023-5-31 17:40:26 | 显示全部楼层
stm32H7B0的内部flash,实测有2M空间的,可以修改下加载算法文件,直接用内部flash完成。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:48 , Processed in 0.294639 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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