FLASH的硬件结构决定了只能按BLOCK擦,除非是一个BLOCK就是一页,否则按页擦是不可能实现的。如果你的内存够大,你可以将待擦除的页所在的BLOCK内容全部读到内存中,等BLOCK擦除完成后,再将其余页写回去。但是这样的话,FLASH的寿命会受到很大影响,所以这个办法要慎用。
其实,如果你的程序空间和内存空间够的话,可以在程序中使用文件系统,例如yaffs,如果是LINUX系统的话,yaffs是自带的。这样的话,你就不需要关心怎么擦除页,以及寿命之类了,编程也方便多了。
如果单片机有ISP功能,那么可以直接利用串口,写一些全部为00H或FFH的数据到单片机,覆盖全部地址就可以擦除了。
如果单片机没有ISP功能,那么只能取下单片机,利用编程器,可以擦除有EEPROM的单片机存储器,用紫外线擦除具有EPROM的存储器。
专业烧录十几年,
你这种情况见的太多了,
其实引起这个现象的问题也比较多
:
1
芯片本身品质问题,来料不良,
这种情况占比较少,大概也就
5%
左右;
2
烧录器内设置的烧录顺序错了,
擦除,查空,烧录,校验,写入配置,
如将擦除的顺序放到了最后,那是白干活啦
;
15%
3
环境影响,
芯片的存储和工作都有一定的环境要求,温度,湿度等,
特别是过波峰焊(270-300摄氏度)后,
芯片内数据有丢失现象。很对芯片最高温度仅为250摄氏度,
具体可查询DATASHEET。
60%
4
静电防护不够引起数据都是,
15%
5其他状况
5
%
以上就是关于嵌入式 *** 作FLASH有没有有策略可以实现擦除一页。只要能实现就加分!说原理就可以了,不用贴程序。全部的内容,包括:嵌入式 *** 作FLASH有没有有策略可以实现擦除一页。只要能实现就加分!说原理就可以了,不用贴程序。、单片机实验板怎么擦除掉程序、为什么我的芯片下好的程序偶尔会自动擦除,重新烧录后又能用了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)