Board logo

标题: [求助]flash编程有大小限制么? [打印本页]

作者: jinhao    时间: 2005-12-16 17:02     标题: [求助]flash编程有大小限制么?

手册上讲,flash编程必须是64B为单位的,是不是说每次对flash编程必须擦除64B或写入64B?如果写入空间没有那么巧,怎么办?起始地址不是64的整数倍,长度也不是64的整数倍,能写入么?
作者: strongchen    时间: 2005-12-19 10:56

你说的是什么芯片?
作者: usliwu    时间: 2005-12-19 11:17

Flash是以页 (page)为最小擦除单位,所以对flash擦除,不能只擦除一个字节,要擦就要擦除一页, 对于所用的机型,一页包括了64个字。但写入可以只写几个字节。flash擦除是把所有的位变成1,而写是要把对应应字零的位变成0。
作者: jinhao    时间: 2005-12-24 11:35     标题: [讨论]如果这样的,还有个问题?如何写flash保护寄存器?

我用的是GZ60,手册上明确说flash保护寄存器(就是设定保护空间的那两个寄存器)只能通过flash编程方式来写入数据,写之前必须清除一页数据的话,flash保护寄存器周围的数据不是都给清掉了么?
作者: strongchen    时间: 2005-12-27 12:16

对,FLASH保护寄存器必须通过在IRQ脚上加高电压的外部编程方式才能对它进行编程。如果需要先擦一下的话,那确实要把FLASH保护寄存器所在的一页都擦空。但我们认为,要进行这样操作的人,应该是,而且只能是这个芯片中的程序的所有者。此时,他会有源程序,所以即使整个芯片全部擦除也没有关系;另外,他会有密码,可以把芯片中的数据读出来,这样也不用担心将芯片擦除的事。你说呢?
作者: jinhao    时间: 2006-3-5 15:48

至少在我有限次实验中,这是成立的:在没有页擦除的条件写flash,而且是写任意地址任意长度
作者: strongchen    时间: 2006-3-7 12:04

写的长度是任意的,1个字节也可以。只要一个地址本身的内容为空($FF),就可以写。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0