FLASH模拟eeprom实验笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32 FLASH模拟EEPROM实验笔记
一、根据所选IC确定每页的大小
ST系列芯片中,FLASH的大小大于或者等于256k,则每页大小为2k(最多2k大小);FLASH的大小于256k大小,则每页大小为1k.
二、在模拟EEPROM中写数据
(1)在模拟EEPROM中写数据,有以下几个参数必须具备:写入数据的虚拟地址,写入的数据,写入的数据的数量(注:写入的数据必须每次写入半字)。
(2)在写入数据之前必须判断,要求写入的数据的虚拟地址是否非法(写入的虚拟地址值小于该芯片的FLASH的起始地址或者大于该芯片的FLASH的最大地址值均是视为非法地址)。
(3)解锁FLASH》》》》写入关键字1,关键字2(注:写入关键字就是写入解锁序列,写入的顺序不能乱)。
(4)根据要求写入的数据的虚拟地址计算出实际的偏移地址(相对于FLASH的起始地址),扇区地址,在扇区中的偏移(注意:在扇区内的偏移以2个字节为基本单位),扇区剩余空间大小。
(5)判断要求写入的数据的个数是否不大于该扇区剩余空间的大小,如成立将要求写入的数据的个数赋值给表示空间大小的变量。
(6)进入循环,进行实际的写入数据操作》》》》》》读取该扇区整个扇区的数据--→检验在该扇区中从扇区内的实际偏移开始,一直到扇区剩余空间大小(此时的剩余空间大小值等于要求写入数据的数量),检验这整个区域内是否需要擦除,如果检烟道数据不等于0xFFFF,就需要擦除该扇区的整个扇区----→该扇区擦除前复制到数组中的有效的数据重新写入到该扇区----→写入要求写入的数据到要求写入的虚拟地址中--→判断是否写入结束,如果该扇区不能够则扇区一到一个扇区,写入新扇区的数据数量等于总数量减去写入到上一个扇区的数据数量。
每次写操作完都必须做如次判定,直至要求写入的数据完全写入为止。
写入结束后跳出循环。
(7)上锁FLASH。
注意:在写入和从模拟的EEPROM读出数据都必须是半字读写,所以地址必须每次加2.。