AT24C512中数据的文件系统化管理
信息只占用10字节,则在此文件系统中,最多可存储153(24×64/10)个文件。目录区、页面分配区和数据区的逻辑关系如图3所示。
以图3为例,说明该文件系统如何获取文件数据:
①在目录区中根据文件名找到包含该文件名的目录项,从而获取该文件的属性及其首地址。如文件“00000103”的日期为2003年11月24日,其首地址为0005H。
②根据文件的首地址,在页面分配区中找到该记录项0005H。在该记录项中存储的值为0007H,可知该文件的下一记录项为0007H。
③同理,可得到文件的后续记录项为0008H、0009H、000BH,直到从000BH记录项中读到0FFFFH。此时表示这是最后一项,不需再继续找后继项了。
④至此,可知文件“00000103”的数据分为5部分存储在数据区中,分别存储在0005H、0007H、0008H、0009H、000BH页中。只要按序到数据中读取这些中的数据,并连接起来,就形成了该文件的全部数据。
⑤同理,文件“00000001”在数据区中使用了0002H和0003H两页,文件“00015671”只使用了数据区第000AH页。
3系统程序设计
按照上述的文件系统结构,系统可通过目录区和页面分配区对AT24C512的全部数据实时文件化管理。在管理过程中,最主要的操作是添加文件和删除文件。
(1)添加文件
添加文件的主要工作是为新文件寻找存储空间,其寻找步骤如下:
①在目录区中寻找空位置。若目录区已经存满(最多存153个文件),则向用户报告并中止程序;否则,记录该位置(记为MyFile)。
②计算文件数据需占用的页面数,记为MyPage。
③在页面分配区中寻找并统计标志为空的记录项,其内容为0EEEEH。若其数目小于MyPage,则向用户报告,并中止程序。
④在MyFileA位置填写文件名和日期,并把找到的第一个空记录项的序号填入,作为该文件的首地址。
⑤依次在找到的空记录项内填入下一空记录项的序号,最后一个空记录项填入0FFFFH。
⑥从文件首地址开始,按照文件链表依次把数据写入数据区相应的页。
(2)删除文件
删除文件的主要工作是回收该文件所占用的空间,以便将来分配给其它文件。
①在目录区中寻找到该文件,提取出其首地址,记录First。随后,把该文件所占用的目录区的首字节清为0FFH,表示该目录项空闲。
②在页面分配区中找到First记录项,撮出其内容,记为Next。随后,把First记录项的内容改写为0EEEEH。
③First=Next,重复②,直至Next=0FFFFH。
图3
由添加文件可以看出,在搜索空间时,只对目录区和页面分配区操作,因此,删除文件时,只需要释放目录和页面分配区即可,而不需要修改数据区。这大大提高了删除的效率。
(3)系统格式化
系统格式化的目的是把AT24C512按照前面所述的格式进行初始化,以正确反映目前的使 《AT24C512中数据的文件系统化管理(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/167885.html
以图3为例,说明该文件系统如何获取文件数据:
①在目录区中根据文件名找到包含该文件名的目录项,从而获取该文件的属性及其首地址。如文件“00000103”的日期为2003年11月24日,其首地址为0005H。
②根据文件的首地址,在页面分配区中找到该记录项0005H。在该记录项中存储的值为0007H,可知该文件的下一记录项为0007H。
③同理,可得到文件的后续记录项为0008H、0009H、000BH,直到从000BH记录项中读到0FFFFH。此时表示这是最后一项,不需再继续找后继项了。
④至此,可知文件“00000103”的数据分为5部分存储在数据区中,分别存储在0005H、0007H、0008H、0009H、000BH页中。只要按序到数据中读取这些中的数据,并连接起来,就形成了该文件的全部数据。
⑤同理,文件“00000001”在数据区中使用了0002H和0003H两页,文件“00015671”只使用了数据区第000AH页。
3系统程序设计
按照上述的文件系统结构,系统可通过目录区和页面分配区对AT24C512的全部数据实时文件化管理。在管理过程中,最主要的操作是添加文件和删除文件。
(1)添加文件
添加文件的主要工作是为新文件寻找存储空间,其寻找步骤如下:
①在目录区中寻找空位置。若目录区已经存满(最多存153个文件),则向用户报告并中止程序;否则,记录该位置(记为MyFile)。
②计算文件数据需占用的页面数,记为MyPage。
③在页面分配区中寻找并统计标志为空的记录项,其内容为0EEEEH。若其数目小于MyPage,则向用户报告,并中止程序。
④在MyFileA位置填写文件名和日期,并把找到的第一个空记录项的序号填入,作为该文件的首地址。
⑤依次在找到的空记录项内填入下一空记录项的序号,最后一个空记录项填入0FFFFH。
⑥从文件首地址开始,按照文件链表依次把数据写入数据区相应的页。
(2)删除文件
删除文件的主要工作是回收该文件所占用的空间,以便将来分配给其它文件。
①在目录区中寻找到该文件,提取出其首地址,记录First。随后,把该文件所占用的目录区的首字节清为0FFH,表示该目录项空闲。
②在页面分配区中找到First记录项,撮出其内容,记为Next。随后,把First记录项的内容改写为0EEEEH。
③First=Next,重复②,直至Next=0FFFFH。
图3
由添加文件可以看出,在搜索空间时,只对目录区和页面分配区操作,因此,删除文件时,只需要释放目录和页面分配区即可,而不需要修改数据区。这大大提高了删除的效率。
(3)系统格式化
系统格式化的目的是把AT24C512按照前面所述的格式进行初始化,以正确反映目前的使 《AT24C512中数据的文件系统化管理(第3页)》