野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 40512|回复: 8

STM32H750 FLASH & QSPI FLASH 操作——Bootloader

[复制链接]
发表于 2019-8-21 21:08:00 | 显示全部楼层 |阅读模式
16火花
按照当前在内部128K FLASH 中做Boot loader,初始化QSPI FLASH, 顺便初始化一下SDRAM,然后跳转到外部Flash,这样是没问题的。
但是,总想尝试一下,如果bootloader 程序也运行的在外部FLASH,假设此时已经跳转到外部FLASH, 然后操作外部FLASH(读写),这样可行嘛?

试了一下,如果在软件运行在外部FLASH 的时候对外部FLASH 的读写擦除操作总是不成功(地址没有重合),,,是我的姿势有问题嘛??
有没有大佬可以给个思路~~~

回复

使用道具 举报

发表于 2019-8-22 14:10:10 | 显示全部楼层
如果你的QSPI使用的是内存模式的话,那就木得办法了
回复

使用道具 举报

发表于 2019-8-22 20:20:31 | 显示全部楼层
必须有问题!
排除cach读取一堆代码回去的情况的话,那么CPU的QSPI模块就会无时无刻都在读取外部flash的数据当代码。好了,你给外部flash发送了一个擦除某个块的指令,这个时候,flash只管擦除数据,根本不会让你读数据了,只给你读读状态值。
CPU读取不到正确的flash数据当代码了,当然嗝屁了。
回复

使用道具 举报

发表于 2019-8-22 20:24:18 | 显示全部楼层
如果又想代码放外部flash,又想拿它当数据存储用,那么,请用分段加载的方式,让写flash部分的代码常驻内存,或者用到的时候再搬运到内存。这样就可以疯狂了。
别问我分段加载怎么搞,我也不懂。
但是,
我想着你把悬赏金给我
回复

使用道具 举报

 楼主| 发表于 2019-8-23 09:25:01 | 显示全部楼层
吕布-单片机 发表于 2019-8-22 20:24
如果又想代码放外部flash,又想拿它当数据存储用,那么,请用分段加载的方式,让写flash部分的代码常驻内存 ...

我看个一下,QSPI FLASH 接口不支持同时读写操作,
回复

使用道具 举报

发表于 2019-8-27 11:07:13 | 显示全部楼层
haoyumc 发表于 2019-8-23 09:25
我看个一下,QSPI FLASH 接口不支持同时读写操作,

启动后把bootloader读到ram运行即可。512k的D1运行个bl完全没问题
回复

使用道具 举报

发表于 2020-2-17 02:39:56 | 显示全部楼层
吕布-单片机 发表于 2019-8-22 20:24
如果又想代码放外部flash,又想拿它当数据存储用,那么,请用分段加载的方式,让写flash部分的代码常驻内存 ...

干脆搞两个FLASH,一个QSPI,一个SPI
回复

使用道具 举报

发表于 2020-10-12 20:21:34 | 显示全部楼层
请问楼主,SDRAM初始化是怎么做的?
我拿到野火H750的光盘里面的Bootloader程序,把SDRAM_Init()开启以后,就无法正常跳转到用户程序了。
回复

使用道具 举报

发表于 2021-3-28 23:14:37 | 显示全部楼层
人生三问 发表于 2020-2-17 02:39
干脆搞两个FLASH,一个QSPI,一个SPI

最好一个QSPI FLASH能兼顾固件和数据存储
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 19:30 , Processed in 0.028037 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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