搜索
bottom↓
回复: 11

通过QSPI外接flash实现片上程序执行时如何擦、写flash其他位置

[复制链接]

出0入0汤圆

发表于 2019-1-30 09:34:22 | 显示全部楼层 |阅读模式
    目前使用的平台是STM32H750,内部flash比较小,只有128KByte,使用QSPI连接外部flash,在内部flash中烧写Boot,初始化QSPI,工作在内存映射模式,跳转到外部flash的程序中。这里有几个疑问!

    下图是外部flash的划分,其中分为4个部分,运行的代码是保存在“Code area”中,在这个程序执行的过程中,我需要对“Param area”区域中的部分参数进行读、擦、写;以及在固件更新的过程中,从以太网接收升级的固件,放到“FW buffer”区域中缓存,这期间就涉及到flash的擦、写。

   

    从我目前的了解来看,一旦“Code area”中的指令开始运行,这是QSPI已经工作在内存映射模式,这个模式下仅可以进行flash读操作(由CPU自动执行)。在上述举例的2种情况均涉及到擦、写,这2中操作需要在间接模式(即indrect mode)下进行,那就需要退出内存映射模式,而一旦退出,“Code area”中的指令将无法继续执行。

    我在CubeMX下找到STM32H7系列的SDK,里面的例程也没有看到这种操作。不知道有哪位做过类似的操作,具体应该如何操作?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-1-30 09:50:14 | 显示全部楼层
程序是从QSPI运行  就不能执行读写QSPI flash的操作

出0入0汤圆

 楼主| 发表于 2019-1-30 09:53:58 | 显示全部楼层
lyxer 发表于 2019-1-30 09:50
程序是从QSPI运行  就不能执行读写QSPI flash的操作

读是可以的,因为已经内存映射了,直接指针读取就可以。现在就是要进行擦、写操作。

出0入0汤圆

发表于 2019-1-30 09:57:32 | 显示全部楼层
应该是没办法的,参考linux的启动过程,升级程序能不能单独放置到内部Flash或内部RAM上?

出0入0汤圆

发表于 2019-1-30 10:04:15 | 显示全部楼层
wzd5230 发表于 2019-1-30 09:53
读是可以的,因为已经内存映射了,直接指针读取就可以。现在就是要进行擦、写操作。 ...

对  这种情况下 我就不考虑把他当存储器了

出0入0汤圆

发表于 2019-1-30 10:06:20 | 显示全部楼层
可以了解下RT1064 有内部QSPI flash用来保存程序 也有外部QSPI flash 当存储设备

出0入31汤圆

发表于 2019-1-30 10:16:27 | 显示全部楼层
把这部分代码放到RAM中执行,应该是没问题的

出300入477汤圆

发表于 2019-1-30 10:22:16 | 显示全部楼层
把擦写函数搬到片内RAM里面运行即可。编译的时候把这个函数单独放到一个段里,指定运行地址是片内RAM的地址即可。但是好像你得手动搬移

出0入0汤圆

 楼主| 发表于 2019-1-30 12:38:05 | 显示全部楼层
zchong 发表于 2019-1-30 10:16
把这部分代码放到RAM中执行,应该是没问题的

应该是可以的,以往我们使用的一款赛普拉斯的Cortex-R4的MCU,内部Flash程序执行期间是不能对Flash进行擦、写操作的,也是将Flash操作的程序放到SRAM中,跳转到那边执行。
这个有一点区别,因为跳转到SRAM执行后,会将QSPI的配置(内存映射模式)改为间接模式,目前来看在SRAM程序运行期间一方面要修改/恢复QSPI配置,另外在执行的过程中,要关闭cache,关闭中断,确保SRAM中的程序通过QSPI访问Flash期间,Flash中报文的指令不会执行。

出0入0汤圆

发表于 2019-6-28 20:29:42 | 显示全部楼层
楼主解决了吗,我现在遇到一样的问题,不同的是我用的事OctoSPI?

出0入0汤圆

发表于 2019-11-6 14:03:09 | 显示全部楼层
同样的问题

出0入0汤圆

发表于 2019-11-7 00:02:08 | 显示全部楼层
程序放进ram, 同时保证擦写过程中程序处于临界区.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 01:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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