首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]flash编程有大小限制么?

[求助]flash编程有大小限制么?

手册上讲,flash编程必须是64B为单位的,是不是说每次对flash编程必须擦除64B或写入64B?如果写入空间没有那么巧,怎么办?起始地址不是64的整数倍,长度也不是64的整数倍,能写入么?
我要注册!!
你说的是什么芯片?
海纳百川  有容乃大
Flash是以页 (page)为最小擦除单位,所以对flash擦除,不能只擦除一个字节,要擦就要擦除一页, 对于所用的机型,一页包括了64个字。但写入可以只写几个字节。flash擦除是把所有的位变成1,而写是要把对应应字零的位变成0。

[讨论]如果这样的,还有个问题?如何写flash保护寄存器?

我用的是GZ60,手册上明确说flash保护寄存器(就是设定保护空间的那两个寄存器)只能通过flash编程方式来写入数据,写之前必须清除一页数据的话,flash保护寄存器周围的数据不是都给清掉了么?
我要注册!!
对,FLASH保护寄存器必须通过在IRQ脚上加高电压的外部编程方式才能对它进行编程。如果需要先擦一下的话,那确实要把FLASH保护寄存器所在的一页都擦空。但我们认为,要进行这样操作的人,应该是,而且只能是这个芯片中的程序的所有者。此时,他会有源程序,所以即使整个芯片全部擦除也没有关系;另外,他会有密码,可以把芯片中的数据读出来,这样也不用担心将芯片擦除的事。你说呢?
海纳百川  有容乃大
至少在我有限次实验中,这是成立的:在没有页擦除的条件写flash,而且是写任意地址任意长度
我要注册!!
写的长度是任意的,1个字节也可以。只要一个地址本身的内容为空($FF),就可以写。
海纳百川  有容乃大
返回列表