OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5932|回复: 10

H750 可以实现IAP吗? 通过U盘或SD卡介质

[复制链接]

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
发表于 2021-4-7 16:04:45 | 显示全部楼层 |阅读模式
各位大神,不知道H750  可以实现IAP吗? 想法是通过在应用中,或者启动时按住某键,通过读取U盘里HEX 文件,写内部FLASH和 外部 QSPI FLASH 实现升级? 难度大不大,有没有相关的参考例子?


多谢各位!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2017-7-25
在线时间
4 小时
发表于 2021-4-9 17:02:35 | 显示全部楼层
H750要实现IAP功能,除Bootloader代码外其它代码都要放在QSPI或其它外部存储中,在Bootloader中做好映射功能。H750内部FLASH只有128KB,只有一个扇区。主代码全部放在QSPI中,如果代码分片严重执行速度并没有介绍中的那么快。
回复 支持 1 反对 0

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6719
金钱
6719
注册时间
2017-4-12
在线时间
1257 小时
发表于 2021-4-7 18:42:41 | 显示全部楼层
肯定可以啊
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-26
在线时间
28 小时
发表于 2021-4-7 20:17:02 来自手机 | 显示全部楼层
我自己写的f103的整套例程,可以参考一下。
回复 支持 反对

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-4-8 00:50:20 | 显示全部楼层
zhaoxu1887 发表于 2021-4-7 20:17
我自己写的f103的整套例程,可以参考一下。

多谢楼上兄弟, 主要考虑到QSPI在750板子是配置为内存映射模式,不知道会不会有区别。最重要的是,H750有部分代码是在FLASH上,这个不像全部使用内部FLASH 的芯片,可以一直写,要对HEX文件做另外处理吧?

再次感谢!
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4356
金钱
4356
注册时间
2017-5-30
在线时间
578 小时
发表于 2021-4-8 09:19:47 | 显示全部楼层
本帖最后由 whj467467274672 于 2021-4-8 09:21 编辑

本示例提供的功能是一个 boot 程序, 它可以虚拟一个 U 盘 (按住板子上的 USER 按键再上电)
https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi/tree/master/projects/uf2_boot

STM32H750 的片上 ROM 大小为128K,无法满足一般的程序开发,必须使用 XIP 的方式运行程序。所以需要使用 BootLoader 来跳转到 XIP(0x90000000) 地址。 本例程基于 软件包 Quick bootloader 实现的。
https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi/tree/master/projects/art_pi_qboot
回复 支持 反对

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-4-8 11:12:47 | 显示全部楼层
whj467467274672 发表于 2021-4-8 09:19
本示例提供的功能是一个 boot 程序, 它可以虚拟一个 U 盘 (按住板子上的 USER 按键再上电)
https://githu ...

多谢兄弟资料,详细看看。
回复 支持 反对

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-4-8 15:34:45 | 显示全部楼层
whj467467274672 发表于 2021-4-8 09:19
本示例提供的功能是一个 boot 程序, 它可以虚拟一个 U 盘 (按住板子上的 USER 按键再上电)
https://githu ...

兄弟您好,资料学习了。目前例子基于Qboot, 不太方便移植。
看了别的资料,好像主要是解析BIN文件的,没看到HEX文件的。编译后生成的文件为两个HEX,合并为一个HEX后,里面有地址信息。不知道如何解析。

不知道原子哥750有没有这种例子?
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4356
金钱
4356
注册时间
2017-5-30
在线时间
578 小时
发表于 2021-4-9 09:14:40 | 显示全部楼层
szszjdb 发表于 2021-4-8 15:34
兄弟您好,资料学习了。目前例子基于Qboot, 不太方便移植。
看了别的资料,好像主要是解析BIN文件的, ...

你最终烧录到单片机的:
永远是 bin 文件而不是不是不是 hex文件
永远是 bin 文件而不是不是不是 hex文件
永远是 bin 文件而不是不是不是 hex文件
回复 支持 反对

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-4-9 13:45:41 | 显示全部楼层
多谢兄弟,明白。用BIN是一定了。 由于750的主要代码在QSPI上,还是跟其他的有点不同。搜了下论坛,好像参考资料不多。
回复 支持 反对

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-4-9 22:40:54 | 显示全部楼层
GhostGuardian 发表于 2021-4-9 17:02
H750要实现IAP功能,除Bootloader代码外其它代码都要放在QSPI或其它外部存储中,在Bootloader中做好映射功 ...

明白,多谢兄弟! 您说的“如果代码分片严重执行速度并没有介绍中的那么快。”是指代码部分放在内部FLASH,部分在QSPI里,会严重影响执行速度? 这个是如果评测呢? 看资料说由于有指令缓冲,在QSPI运行代码速度比在内部FLASH执行只慢不到1%, 几乎可以忽略了,难道是夸大宣传吗? 我的代码会用到LTDC 和 SDRAM, 不知道受到影响有多大。 还请多指教!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 03:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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