您尚未登录。

楼主 # 2023-12-06 13:54:40

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

请教,单片机如何将程序存到外部flash里并运行?

比如stm32f103或国产兼容型号,外挂个spi flash。

实际应用中还没遇到这种情况,但是万一有这种需求的话,该怎么实现呢?
更细一点的话,其实是不知道编译的程序,怎么就被执行了...

离线

楼主 #1 2023-12-06 14:17:02

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: 请教,单片机如何将程序存到外部flash里并运行?

参考单片机iap升级,可以通过程序,将外部flash里的程序,搬运到内部flash里,设置SCB-VTOR
但是,这样就相当于,每次启动程序就擦写一次内部flash了。
而且,如果程序比较大呢,内部flash里本来就装不下呢。

最近编辑记录 Gentlepig (2023-12-06 14:25:46)

离线

#2 2023-12-06 15:23:51

506826164@qq.com
会员
注册时间: 2022-08-07
已发帖子: 57
积分: 77

Re: 请教,单片机如何将程序存到外部flash里并运行?

固件放到外部flash里并运行有两种方式:
1.单片机支持xip启动,芯片从外部flash里取指令运行,例如esp32
2.单片机把固件从外部flash考到RAM中并运行,例如f1c100s

离线

#3 2023-12-06 15:33:38

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: 请教,单片机如何将程序存到外部flash里并运行?

MCU的SPI接口需要支持XIP功能,否则扩展不了。

离线

#4 2023-12-06 16:18:11

bigbat
会员
注册时间: 2022-01-30
已发帖子: 71
积分: 21

Re: 请教,单片机如何将程序存到外部flash里并运行?

8051也可以使用外部flash,但是低端的ARM好像是不可以的

离线

楼主 #5 2023-12-07 13:37:27

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: 请教,单片机如何将程序存到外部flash里并运行?

感谢各位,大概明白些了。

离线

#6 2024-04-22 17:06:05

feige
会员
注册时间: 2024-04-22
已发帖子: 2
积分: 12

Re: 请教,单片机如何将程序存到外部flash里并运行?

看单片机是否支持外部存储控制器(如XMC),如果支持,则可以直接用地址线访问执行;如果不支持,则代码只能从外部flash拷贝到本地ram执行。拷贝到内部flash就多此一举了。另外,代码在外部flash运行,CPU性能会大打折扣,在设计时,尽可能优化。

离线

#7 2024-04-22 18:51:43

tomzbj
会员
注册时间: 2018-10-22
已发帖子: 14
积分: 15

Re: 请教,单片机如何将程序存到外部flash里并运行?

先得支持spi flash的地址映射模式吧, 印象中STM32F412, F446, L431这几个可以, 再高端的H7什么的应该大部分都可以了.
然后还得支持代码从spi flash地址运行, 这个就不知道行不行了.

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn