1.一种Flash存储器的数据存取方法,其特征在于:所述Flash存储器的数据存储结构包括根存储区、子存储区池和数据存储区,子存储区池包括1个以上的子存储区,其中根存储区用于存储数据的根分类信息,子存储区用于存储数据的子分类信息,数据存储区用于存储数据信息;所述根存储区包括根存储区占用链表、根存储区空闲链表和根分类记录区,其中根存储区占用链表为根存储区占用记录组成的静态链表,根存储区空闲链表为根存储区空闲记录组成的静态链表,根分类记录区用于存储根分类记录;所述子存储区包括子存储区占用链表、子存储区空闲链表和子分类记录区,其中子存储区占用链表为子存储区占用记录组成的静态链表,子存储区空闲链表为子存储区空闲记录组成的静态链表,子分类记录区用于存储子分类记录;所述数据存储区包括数据存储区空闲链表和数据记录区,数据存储区空闲链表为数据存储区空闲记录组成的静态链表,数据记录区用于存储数据记录;所述数据存取方法包括根存储区操作、子存储区操作及数据存储区操作;其中根存储区操作包括根存储区初始化、根分类记录读取、根分类记录插入和根分类记录删除;子存储区操作包括子存储区初始化、子存储区销毁、子分类记录读取、子分类记录插入和子分类记录删除;数据存储区操作包括数据存储区初始化、数据记录读取、数据记录插入和数据记录删除。
2.根据权利要求1所述的Flash存储器的数据存取方法,其特征在于:根存储区初始化步骤为:规划出FLASH存储器的部分扇区为根存储区,初始化根存储区占用链表,初始化根存储区空闲链表;其中根存储占用链表包括根存储区占用链表头和根存储区占用链表长度,根存储空闲链表包括根存储区空闲链表头和根存储区空闲链表长度;根存储占用链表初始化步骤为:将根存储区占用链表头置为系统定义的最大数,将根存储区占用链表长度置为0;
根存储空闲链表初始化步骤为:将根存储区空闲链表头置为1,将根存储区空闲链表长度置为根分类记录数,将编号为1的根分类记录的后一条空闲记录的位置字段置为2,将编号为2的根分类记录的后一条空闲记录位置的字段置为3,依次类推,直到最后一条根分类记录的后一条空闲记录位置字段置为系统定义的最大数。
3.根据权利要求2所述的Flash存储器的数据存取方法,其特征在于:根分类记录读取的步骤包括:S01)、若根存储区占用链表长度为0,则退出根分类记录读取操作;S02)、若根存储区占用链表长度为一个正整数,将根存储区占用链表头的值作为当前根分类记录的位置,读取当前根分类记录的后一条占用记录位置字段;S03)、若后一条占用记录位置字段等于系统定义的最大数,则退出根分类记录读取操作;S04)、若后一条占用记录位置字段小于系统定义的最大数,将当前根分类记录的后一条占用记录作为当前根分类记录,依次类推,直到当前根分类记录的后一条占用记录位置字段等于系统定义的最大数或者是判断当前根分类记录为要查找的记录为止。
4.根据权利要求2所述的Flash存储器的数据存取方法,其特征在于:根分类记录插入的步骤包括:S01)、若根存储区空闲链表长度为0,则退出根分类记录插入操作;S02)、若根存储区空闲链表长度为一个正整数,将第一条根存储区空闲记录作为当前根分类记录,将要插入的根分类信息写入当前根分类记录的根分类信息标识字段;若当前插入的根分类的下一级是子分类则执行子存储区初始化操作,并将初始化的子存储区的起始位置赋值给当前根分类记录的下一级位置字段,当前记录的下一级类型标识置为子分类;S03)、若当前插入的根分类的下一级为数据,则执行数据记录插入操作,并将插入的数据记录的起始位置赋值给当前根分类记录的下一级位置字段,当前根分类记录的下一级类型标识置为数据;
S04)、将当前根分类记录的后一条空闲记录位置字段的值赋值给根存储区空闲链表头;将根存储区占用链表头的值赋值给当前根分类记录的后一条空闲记录位置字段;将当前根分类记录的位置值赋值给根存储区占用链表头。
5.根据权利要求2所述的Flash存储器的数据存取方法,其特征在于:根分类记录删除的步骤包括:S01)、若根存储区占用链表长度为0,则退出根分类记录删除操作;S02)、若根存储区占用链表长度为一个正整数,将根存储区占用链表头的值作为当前根分类记录的位置,若当前根分类记录不是要删除的根分类记录,则将当前根分类记录的后一条占用记录作为当前根分类记录继续比较,直到当前根分类记录为要删除的根分类记录为止;若没有找到要删除的根分类记录,则退出根分类记录删除操作;S03)、若找到要删除的根分类记录,将当前根分类记录的后一条占用记录位置字段的值赋值给当前根分类记录的前一条根分类记录的后一条占用记录位置字段,如果当前根分类记录为第一条根存储区占用记录,则将当前根分类记录的后一条占用记录位置字段的值赋值给根存储区占用链表头;然后,将根存储区空闲链表头的值赋值给当前根分类记录的后一条占用记录位置字段,将当前根分类记录的位置赋值给根存储区空闲链表头;S04)、若当前根分类记录的下一级类型标识为子分类则执行子存储区销毁操作,若当前根分类记录的下一级类型标识为数据则执行数据记录删除操作。
6.根据权利要求1所述的Flash存储器的数据存取方法,其特征在于:子存储区初始化步骤为:从子存储区池中选择一个未使用的子存储区,然后初始化子存储区占用链表,初始化子存储区空闲链表;其中子存储区占用链表包括子存储区占用链表头和子存储区占用链表长度,子存储区空闲链表包括子存储区空闲链表头和子存储区空闲链表长度;子存储区占用链表初始化步骤包括:将子存储区占用链表头置为系统定义的最大数,将子存储区占用链表长度置为0;子存储区空闲链表初始化步骤包括:将子存储区空闲链表头置为1,将子存储区空闲链表长度置为子分类记录数,将编号为1的子分类记录的后一条空闲记录位置字段置为2,将编号为2的子分类记录的后一条空闲记录位置字段置为3,依次类推,直到最后一条子分类记录的后一条空闲记录位置字段置为系统定义的最大数。
7.根据权利要求1或6所述的Flash存储器的数据存取方法,其特征在于:所述的子存储区销毁操作步骤包括:将要销毁的子存储区的所有扇区执行擦除操作,如果要销毁的子存储区还有下一级子存储区,则通过子存储区销毁操作逐级销毁。
8.根据权利要求6所述的Flash存储器的数据存取方法,其特征在于:所述的子分类记录读取操作步骤包括:S01)、若子存储区占用链表长度为0,则退出子分类记录读取操作;
S02)、若子存储区占用链表长度为一个正整数,将子存储区占用链表头的值作为当前子分类记录的位置,读取当前子分类记录的后一条占用记录位置字段;S03)、若该字段等于系统定义的最大数,则退出子分类记录读取操作;否则,将当前子分类记录的后一条占用记录作为当前子分类记录,依次类推,直到当前子分类记录的后一条占用记录位置字段等于系统定义的最大数或者是判断当前子分类记录为要查找的记录为止。
9.根据权利要求6所述的Flash存储器的数据存取方法,其特征在于:所述的子分类记录插入操作步骤包括:S01)、若子存储区空闲链表长度为0,则退出子分类记录插入操作;
S02)、若子存储区空闲链表长度为一个正整数,将第一条子存储区空闲记录作为当前子分类记录,将要插入的子分类信息写入当前子分类记录的本级分类信息字段;若当前插入的子分类的下一级也是子分类,则执行子存储区初始化操作,并将初始化的子存储区的起始位置赋值给当前子分类记录的下一级位置字段,当前子分类记录的下一级类型标识置为子分类;S03)、若当前插入的子分类的下一级为数据,则执行数据记录插入操作,并将插入的数据记录的起始位置赋值给当前子分类记录的下一级位置字段,当前子分类记录的下一级类型标识置为数据;S04)、将当前子分类记录的后一条空闲记录位置字段的值赋值给子存储区空闲链表头;将子存储区占用链表头的值赋值给当前子分类记录的后一条空闲记录位置字段;将当前子分类记录的位置赋值给子存储区占用链表头。
10.根据权利要求6所述的Flash存储器的数据存取方法,其特征在于:所述的子分类记录删除操作步骤包括:S01)、若子存储区占用链表长度为0,则退出子分类记录删除操作;
S02)、若子存储区占用链表长度为一个正整数,将子存储区占用链表头的值作为当前子分类记录的位置,若当前子分类记录不是要删除的子分类记录,则将当前子分类记录的后一条占用记录作为当前子分类记录继续比较,直到当前子分类记录是要删除的子分类记录为止;S03)、若没有相同记录,则退出子分类记录删除操作;否则将当前子分类记录的后一条占用记录位置字段的值赋值给当前子分类记录的前一条子分类记录的后一条占用记录位置字段;S04)、如果当前子分类记录为第一条子存储区占用记录,则将当前子分类记录的后一条占用记录位置字段的值赋值给子存储区占用链表头,然后,将子存储区空闲链表头的值赋值给当前子分类记录的后一条占用记录位置字段,将当前子分类记录的位置赋值给子存储区空闲链表头;S05)、若当前子分类记录的下一级类型标识为子分类则执行子存储区销毁操作,若当前子分类记录的下一级类型标识为数据则执行数据记录删除操作。
11.根据权利要求1所述的Flash存储器的数据存取方法,其特征在于:数据存储区初始化步骤包括:规划出FLASH存储器的部分扇区为数据存储区,将数据记录按顺序编号,初始化数据存储区空闲链表,数据存储区空闲链表包括数据存储区空闲链表头和数据存储区空闲链表长度;数据存储区空闲链表初始化步骤包括:将数据存储区空闲链表头置为1,将数据存储区空闲链表长度置为数据记录数,将编号为1的数据记录的后一条空闲记录位置字段置为2,将编号为2的数据记录的后一条空闲记录位置字段置为3,依次类推,直到最后一条数据记录的后一条空闲记录位置字段置为系统定义的最大数。
12.根据权利要求1或11所述的Flash存储器的数据存取方法,其特征在于:数据记录读取操作步骤包括:通过根分类记录读取操作及子分类记录读取操作逐级找到数据记录的位置,将数据读出。
13.根据权利要求11所述的Flash存储器的数据存取方法,其特征在于:数据记录插入操作步骤包括:若数据存储区空闲链表长度为0,则退出数据记录插入操作;否则,将第一条数据存储区空闲记录作为当前数据记录,将当前数据记录的后一条空闲记录的位置字段值赋值给数据存储区空闲链表头,然后,将要插入的数据信息写入当前数据记录。
14.根据权利要求11所述的Flash存储器的数据存取方法,其特征在于:数据记录删除操作步骤包括:通过根分类记录读取操作及子分类记录读取操作逐级找到数据记录作为当前数据记录,将数据存储区空闲链表头的值赋值给当前数据记录的后一条空闲记录位置字段,将当前数据记录的位置赋值给数据存储区空闲链表头。