OpenEdv-开源电子网

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

关于STM32运行外部FLASH代码

[复制链接]

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-12-25 20:32:43 | 显示全部楼层 |阅读模式
1金钱
     想做一个东西,MCU运行多个APP代码。
     目前想到的对策有:

           1、挂载Nor Flash,APP代码存放在nor FLASH里面,MCU直接运行nor FLASH的APP代码
           2、外部存储器存储APP代码,通过bootloader将APP代码复制到MCU Flash或者SDRAM运行

     但是这两种方式,我知道SDRAM运行代码速度会降低,毕竟像是F429的FMC只能去到90M。
     如果复制到MCU FLASH运行,速度可以得到保证,但是多次擦写会影响寿命。
     至于Nor Flash运行代码,不太了解。

     不知道还有没有别的更好的方案,有的话可以一起交流下

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-12-26 02:06:15 | 显示全部楼层
回复

使用道具 举报

3

主题

93

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
459
金钱
459
注册时间
2014-3-7
在线时间
51 小时
发表于 2018-12-26 09:02:52 | 显示全部楼层
楼主的意思 是FLASH不够大 还要扩,
那就搞一个引导程序,  加载哪一块外部FLASH到内部 就用哪个APP
STM32?步进电机开发板
http://yonyon.taobao.com
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
 楼主| 发表于 2018-12-26 09:20:29 | 显示全部楼层

是的,但每次复制代码需要擦写,而Flash寿命有限啊。

赋值到SDRAM运行或者直接Nor Flash运行倒是不需要擦写,只是影响运行速度。
而且看论坛有的兄弟说到SDRAM运行代码会有莫名其妙的一些问题。
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
 楼主| 发表于 2018-12-26 09:24:22 | 显示全部楼层
eydj2008 发表于 2018-12-26 09:02
楼主的意思 是FLASH不够大 还要扩,
那就搞一个引导程序,  加载哪一块外部FLASH到内部 就用哪个APP

嗯,这种方法弄个SD卡最方便了,存储APP多而且直接电脑拖BIN就可以。

就是要将程序复制到内部FLASH,影响寿命
回复

使用道具 举报

3

主题

93

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
459
金钱
459
注册时间
2014-3-7
在线时间
51 小时
发表于 2018-12-26 16:23:15 | 显示全部楼层
a3748622 发表于 2018-12-26 09:24
嗯,这种方法弄个SD卡最方便了,存储APP多而且直接电脑拖BIN就可以。

就是要将程序复制到内部FLASH, ...

你可以选用 大RAM的啊 比如64MB那种 没有FLASH
直接RAM跑
STM32?步进电机开发板
http://yonyon.taobao.com
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-12-27 02:42:24 | 显示全部楼层
a3748622 发表于 2018-12-26 09:20
是的,但每次复制代码需要擦写,而Flash寿命有限啊。

赋值到SDRAM运行或者直接Nor Flash运行倒是不需 ...

你经常要更新代码么?
一般产品发布,不会频繁更新的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

27

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2016-8-31
在线时间
252 小时
发表于 2018-12-27 07:58:14 | 显示全部楼层
脚本解释器?elua?
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
 楼主| 发表于 2018-12-27 09:20:02 | 显示全部楼层
正点原子 发表于 2018-12-27 02:42
你经常要更新代码么?
一般产品发布,不会频繁更新的

不是的,因为每个产品都要做测试板。。。

做这个东西还要画图,要写程序,测试板多了也不好管理。
我就想能不能做一个通用测试板,用H7的芯片,将IO引出。

后续产品接口跟这个测试板对齐,然后测试的时候就不用做测试板了,
一块板子通杀。

软件方面,就作出类似综合例程的效果,点击一个图标弹出对应产品的测试程序。
其实说白了就是类似手机APP的功能,但是手机是ROM复制到RAM运行的。
对应我们单片机就是FLASH复制到SDRAM运行。

这是我知道的,不知道还会不会有更好的方案。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-12-31 01:40:19 | 显示全部楼层
a3748622 发表于 2018-12-27 09:20
不是的,因为每个产品都要做测试板。。。

做这个东西还要画图,要写程序,测试板多了也不好管理。

那你大可以在RAM运行代码,运行完这个换下一个不影响。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

14

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2017-12-15
在线时间
60 小时
发表于 2019-1-27 16:17:35 | 显示全部楼层
arm的可执行程序都是在 ram(内部+外部)上运行的,app的生成文件存储在外部flash,运行时把app程序搬运到 外扩 sdram上运行就行了。就像软件或者游戏,安装文件和工作游戏文件都存在硬盘里面,等到运行的时候调到内存去执行
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 13:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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