发明名称 嵌入式系统FLASH参数存取方法
摘要 本发明提出了嵌入式系统FLASH参数存取方法,所述方法定义了FLASH参数的存储格式,提供了驱动程序初始化方法,以及驱动程序四个功能接口:读取指定关键字参数接口、读取全部参数接口、修改参数接口和保存参数接口。本发明方法针对FLASH芯片的数据存储的特点进行优化和设计,应用程序通过驱动程序可以实现对FLASH参数的高性能、高可靠性的存取操作,解决嵌入式系统软件的应用程序在参数存取的实际问题,大幅提升应用程序参数存取的性能和可靠性。
申请公布号 CN103336749A 申请公布日期 2013.10.02
申请号 CN201310216884.X 申请日期 2013.05.31
申请人 南京熊猫电子股份有限公司;南京熊猫通信科技有限公司 发明人 彭涛;王勇;赵安;赵丽萍
分类号 G06F13/16(2006.01)I 主分类号 G06F13/16(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 朱小兵
主权项 嵌入式系统FLASH参数存取方法,其特征在于,所述方法包括FLASH参数的存储格式定义、驱动程序初始化和驱动程序功能接口;具体过程如下:A, 参数的存储格式定义:驱动程序使用FLASH芯片的两个扇区,每个扇区逻辑上划分为数据区和校验区两部分;数据区用于保存参数关键字及对应参数值,校验区用于保存数据区的校验值;B,驱动程序初始化流程;具体步骤如下:步骤B‑1,读取FLASH芯片中保存参数扇区的内容;步骤B‑2,计算数据区上有效内容的CRC32值和校验区最后CRC32值做比较,如果相同则认为参数存储正确,然后逐一从读取的内容中解析参数,并将参数的关键字计算散列值后,跳转到散列表的指定位置,再查找参数关键字,如果该参数关键字在散列表中已有,则用新的参数值替换散列表中原参数值;如果没有该参数关键字则添加该参数值;C,驱动程序功能接口:其提供四个接口给用户程序,分别为读取指定关键字参数接口、读取全部参数接口、修改参数接口和保存参数接口;    C1,读取指定关键字参数接口,其步骤如下:    C1‑1,应用程序通过接口传入关键字,    C1‑2,计算关键字的散列值,    C1‑3,跳转到在初始化生成的散列表对应位置,查找参数值,    C1‑4,返回参数值结果给应用程序;C2,读取全部参数接口,其步骤如下:C2‑1,驱动程序遍历散列表,C2‑2,将散列表中全部参数值指针加入到一个数组中去,C2‑3,对C2‑2中的数组进行排序,C2‑3,排序结束后,将数组指向的参数逐一拷贝并返回给用户程序;    C3,修改参数接口,其步骤如下:    C3‑1,应用程序传入参数关键字及其参数值,    C3‑2,驱动程序计算参数关键字散列值,    C3‑3,根据C3‑2获得的参数关键字散列值,查找散列表,如果散列表中有该散列值表项,则用该参数关键字对应的参数值替换原有参数值;否则,如果散列表中没有该散列值表项,则增加新的参数值;    C3‑4,修改或添加结束后,对刚修改或添加的参数值标记为已修改,该标记由保存参数接口使用;        C4,保存参数接口,其具体步骤如下:        C4‑1,驱动程序先将被标记为已修改的参数值从散列表中遍历出来;        C4‑2,判断数据区的剩余空间是否足够保存这些被标记的参数值,如果足够,使用数据区修改前的CRC32值和当前即将修改的参数计算一个新的CRC32值,在剩余的数据区空间写入修改的参数值,在剩余的校验区空间写入新的CRC32值;如果空间不够,则使用全部获取参数接口获取全部参数,此时计算全部参数值占用空间是否大于数据区空间的大小,如果大于,返回错误,否则擦除全部扇区,重新写入参数值和CRC32值;重新写入成功后,驱动程序将所有被标记已修改的参数重新标记为未修改。
地址 210002 江苏省南京市玄武区中山东路301号