比如stm32f103或国产兼容型号,外挂个spi flash。
实际应用中还没遇到这种情况,但是万一有这种需求的话,该怎么实现呢?
更细一点的话,其实是不知道编译的程序,怎么就被执行了...
离线
参考单片机iap升级,可以通过程序,将外部flash里的程序,搬运到内部flash里,设置SCB-VTOR。
但是,这样就相当于,每次启动程序就擦写一次内部flash了。
而且,如果程序比较大呢,内部flash里本来就装不下呢。
最近编辑记录 Gentlepig (2023-12-06 14:25:46)
离线
固件放到外部flash里并运行有两种方式:
1.单片机支持xip启动,芯片从外部flash里取指令运行,例如esp32
2.单片机把固件从外部flash考到RAM中并运行,例如f1c100s
离线
8051也可以使用外部flash,但是低端的ARM好像是不可以的
离线
感谢各位,大概明白些了。
离线
看单片机是否支持外部存储控制器(如XMC),如果支持,则可以直接用地址线访问执行;如果不支持,则代码只能从外部flash拷贝到本地ram执行。拷贝到内部flash就多此一举了。另外,代码在外部flash运行,CPU性能会大打折扣,在设计时,尽可能优化。
离线
先得支持spi flash的地址映射模式吧, 印象中STM32F412, F446, L431这几个可以, 再高端的H7什么的应该大部分都可以了.
然后还得支持代码从spi flash地址运行, 这个就不知道行不行了.
离线