打印
[其他ST产品]

str7芯片flash的擦除写操作要初始化后才能进行吗?

[复制链接]
3596|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chigodeng|  楼主 | 2007-3-14 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2.3.1 Executing the first Write operation from RAM
After an MCU reset, the Flash module is ready and the CPU can start fetching code from it.
However, the built-in Flash Erase/Program procedures are not initialized during the MCU
reset phase, this is only done when the first Flash Erase/Program instruction is executed.
The Erase/Program procedures are stored in a reserved area of bank 0. While they are
being initialized Flash bank 0 is not accessible for the user.
The first Flash Erase/Program operation is started when the WMS bit is set. After setting
this bit, Bank 0 is no longer accessible. For this reason the code to be executed after setting
the WMS bit (Polling the bits LOCK, BSYA0 and BSYA0) must be fetched from RAM.
Also, due to this initialization, the first Erase/Program operation will take more time than
other subsequent Erase/Program operations.
上面的意思好像说有一段初始化flash代码在bank0中,复位后的首次擦除写flash操作会用到这段代码,因此必须在ram中运行。那么如果程序想放在flash中运行,是不是开机后要先定位到ram中运行随便写个数据到flash,让它初始化一下,然后再定位到flash中运行。
我的理解对不对,要用个flash有那么复杂吗?
沙发
浪淘沙| | 2007-3-14 16:29 | 只看该作者

任何时候都可以运行Flash中的代码,不需要什么初始化

复位后的首次擦除写flash操作要在RAM中运行,这是说的擦除或写操作,执行代码是读操作,不需要这个过程!

使用特权

评论回复
板凳
chigodeng|  楼主 | 2007-3-15 13:51 | 只看该作者

我是想问擦除写flash方面的问题,读和运行没有问题。

好像不太具体,还是有点糊涂。

使用特权

评论回复
地板
浪淘沙| | 2007-3-15 14:48 | 只看该作者

简单地说,每次上电后的第一次擦除写操作需要在RAM中进行

随后的操作可以在RAM中进行也可以在Flash中进行。

如果你不需要进行擦除写操作,就没必要进行上述步骤。

使用特权

评论回复
5
chigodeng|  楼主 | 2007-3-15 15:41 | 只看该作者

明白了,看来要用flash先要研究remap的具体细节了。

如果开机就搞定flash的初始化就好了,有这方面例子吗?这样大家可以省力一点,毕竟remap好像比较复杂。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

11

帖子

0

粉丝