



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用FLASH内存进行备份存储的设计原理及其测试方案的练习l 引言FLASH内存,已广泛应用于电子产品中,是掉电不丢失任何内容且能在上电时较容易更新内容的载体。对FLASH内存的访问(主要是写入),还是有一定的特殊性,也可以说是不方便性。特殊性是:对FLASH内存写入前,先要进行擦除操作。进行擦除操作时,不是以一个字节为单位来进行的,能操作的粒度是一个块,FLASH厂商将它命名为扇区(sector),含若干字节(由器件手册指明)。扇区是仍然沿袭ROM、EPROM、EEPROM等存储器件所采用的命名。从根源上来看,扇区是来自于硬盘、软盘等圆形存储介质的名称。所有的麻烦和问题的产生,都是由于块擦除
2、这一操作限制。上电更新内容时,若刚擦除完成就掉电,则不仅仅是你要写入的某字节内容丢失了,整个扇区的内容也全被擦得一干二净了;若擦除完正写入时掉电,则不能确定能写多少,反正是尾部的若干字节就面目全非了。解决FLASH中写入掉电麻烦和问题的设计方案是实行双备份写入方案。l 双备份写入方案的原理双备份写入方案,就是把同一内容(软件上可描述为一个结构体),依次在两个不同的FLASH扇区中写进去。要点是:n 依次先完成(擦除/写入)一个扇区,再完成(擦除/写入)另一扇区。不可先进行两个扇区的擦除,再进行两个扇区的写入。n 不同的扇区不可将两个结构写入同一扇区,哪怕这个结构小得只含一个字节。n 写入同一内
3、容要保证对FLASH的可靠写入,双备份写入方案是理所当然的方案。掌握了以上要点并按该要点来实施,在存储设计中,就不会留下因操作时突然掉电引起相关重要数据丢失的后患。POS的底层中,保存文件系统的FAT表、系统配置参数等处,就用到了双备份写入方案。l 上电后的校验、整理和恢复操作样例下面是一个FLASH中进行数据保存以及相关上电恢复过程的例子。假设POS中,要保存如下的系统配置数据,以结构描述为:struct uchar seq_no; / 写入操作的顺序号,每次增一后模10,取值范围09structuchar serial_no; / POS机的序列号uchar lcd_contrast; /
4、 LCD屏幕的对比度uchar mac_address6; / 以太网模块的MAC地址sys_cfg;uchar check_sum; / 校验码,其前面所有内容逐字节异和的结果packed_sys_cfg;从上面的结构可以看出,实际存储某结构数据(如sys_cfg)时,为了校对的目的,还需要增加一个写入序列号和一个校验和等两字段。写入序列号每次增一,以便与上一次的区分开来。模10的目的是为了保证该字节不为0xFF(扇区擦除后每个字节的取值), 你也可以模20、30等等。POS按前面所述的双备份方案写入正确的packed_sys_config。写入过程的任意环节中,POS都可能掉电。重开机后,
5、POS将校验、整理和恢复该双备份区。校验、整理和恢复的原则是:l 如果某区中该结构的写入序列号非法或校验和错误,则该结构无效;从另一区中将结构数据拷贝(读取、擦除、写入)到该区来进行恢复。l 如果两区中数据均表现为写入序列号合法或校验和正确,且两区的写入序列号不同,则取紧跟在后一次的序列号的所在区作为正确区(如:1、2中取2;9、0中取0),并将此区的数据拷贝到另一区中。l 如果两区中数据均表现为写入序列号合法或校验和正确,且两区的数据完全相同,则无需整理和恢复。l 其他情况,则提示系统异常错误。明白了上面的这些,我们就来进行对校验、整理和恢复等操作的测试案例的设计练习。l 相关测试方案练习题
6、测试案例设计练习题:请列举出packet_sys_cfg的各种组合情况,以便测试出各种掉电状况下,POS重上电后,对packet_sys_cfg的恢复操作都是正确无误的(遵循设计要求)。注意,sys_cfg结构中有三个字段,不要求对它们三个分开对待和进行组合,作为一个考虑元素即可。将两个扇区用A B表示,先写A再写B:则组合情况有:1、正在写入A时断电,重上电后,A扇区该结构无效,从B恢复A的内容2、写入完A,正在写入B的时候断电,重上电后,B扇区该结构无效,从A恢复B的内容3、写入完A后断电,则此时A、B序列号假设为2、1,重上电后,则将A内容拷贝到B4、如果A、B都写完,重上电后,不进行任
7、何操作转发略作修订后的肖锦填的解答。 他的解答特点是:采用先分大类再细分的方式,表述简洁、层次分明、考虑周全。 注意,“分类”这个方法是解决很多复杂问题时的有效方法,希望大家能借鉴和有意识地使用。 较普遍存在的主要问题是:对异常情况考虑不周,如:· 工厂第一次操作时断电(可能仅操作到一个区,另一区为原始状态)· 驱动程序存在BUG的情况现在假设AB分别为packet_sys_cfg的一个实体1.不需要数据恢复的: A = B 既顺序号,内容,校验码都一致。2.需要数据恢复的:A. seq_no != B. seq_no 与 | A. seq_no - B. seq_no | = =1 与 A/B校验码正确。A/B中有一个的顺序号非法同时另一顺序号与校验码正确A/B中有一个的校验码错误同时另一顺序号与校验码正确A/B中有一个顺序号与校验码都非法同时 另一顺序号与校验码正确3. 异常的:AB顺序号相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年甘肃省外事办公室下属事业单位真题
- 公司战略创新案例分析试题及答案
- 江苏省扬州市树人学校2025届八年级数学第二学期期末统考模拟试题含解析
- 2024年湖北省肿瘤医院招聘笔试真题
- 音乐教学工作计划
- 计算机二级VB中的反馈与迭代开发题及答案
- 程序员职业素养试题及答案
- 高考作文读者定位与试题及答案
- 信息处理技术员考试概况试题及答案
- 材料力学性能测试温度影响重点基础知识点
- 收费站防汛应急预案
- 《糖尿病的护理查房》课件
- 击剑考试题目及答案
- 贵州贵州铁路投资集团有限责任公司招聘笔试真题2024
- 2025年浙江湖州市城市投资发展集团有限公司招聘笔试参考题库含答案解析
- 2023江苏南京紫金山科技产业发展集团有限公司工作人员招聘7人笔试参考题库附带答案详解
- 航空航天技术原理与实际应用测试卷
- 铝模包工合同协议
- 城市绿化项目施工人员培训计划
- 2025中考英语第11讲 任务型阅读之阅读填表(练习)(解析版)
- 产品折价退货协议书
评论
0/150
提交评论