首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于System ACE的DSP文件系统设计(2)

基于System ACE的DSP文件系统设计(2)

1.5  System ACE的文件和目录  .ACE是在目录结构的最底层。Xilinx的SystemACE软件能够将比特流转换为.ACE文件。1个.ACE文件代表特定设备链的比特流。
  .collection是目录结构中紧挨着.ACE的上一层,由8个.ACE组成。在System ACE环境下,同一.collection下的所有.ACE文件都可以处理。





  在1个CF卡设备中有多个collection,但在任意一时问只能有1个被激活,至于哪一个被操作是通过xilinx.sys文件来决定的。xilinx.sys文件在ACE Flash设备的根目录下。ACE控制器能够解析xilinx.sys文件。若根目录下面没有xilinx.sys文件,则必须有1个.ACE文件来充当此角色。
  System ACE目录结构的分层设计使得它能够维护多个版本或者是不同设计的collection。每一个collection目录可以有1个或者多个不同的子目录。每一个子目录只能包含1个.ACE文件。
  Sysrem ACE目录结构的规则如下:
  ◆Sysrem ACE配置文件必须放在CF卡设备的第1分区。
  ◆Sysrem ACE分区必须被格式化为FAT12或者FAT16格式。
  ◆xilinx.sys必须在根目录下。当xilinx.sys不存在时,根目录下必须有1个.ACE来充当此角色。
  2 CF卡原理
  CF(ComPACt Flash)卡是以闪存为存储,具有容量大(512 MB)、功耗低和可靠性高等优点,得到广泛的应用。CF卡读写的最小单位为1个扇区(512字节),读写操作是通过卡内缓冲区进行的,不支持直接读写存储区域。
  CF卡可以工作在3种模式:PC CardMemory(Memory模式),PC Card I/O(I/O模式)和True IDE模式。PCCARD模式与PCMCIA标准兼容。TRUE IDE模式与ATA/ATAPI-4标准兼容。当上电时,如果OE接地,则进入True IDE模式,在此模式下只可以存取任务寄存器。另外2种模式需要通过设备结构寄存器来选择。
  CF卡的操作方式与硬盘的操作方式相似。CF卡读写必须以扇区为单位,每个扇区为512字节,每次可以读写1个扇区或连续多个扇区。扇区的寻址方式有2种:逻辑寻址(LBA)和物理寻址(CHS),它们之间的关系为:
  LBA=(柱面号×磁头数+磁头号)×扇区数+扇区数-1
  寻址方式采用LBA(LogIC BLOCk Address),该方式将全部扇区映射至1块连续的地址空间中,这样可以大大简化编程的工作,同时避免了柱面、磁头和扇区之间的换算,使寻址更方便。对CF卡的配置及各种操作,如读写、删除、格式化等,都通过写特殊功能寄存器完成。
  3  文件系统的建立
  3.1  文件系统的引入
  100个数在文件系统中是如何存放的呢?在计算机中是以0/1二进制的形式简单地存放在存储介质中。如果不同的数多,如何处理?这就引出了文件系统。文件系统实际上就是对存储的数据进行管理。本文在CF卡上建立的文件系统是FAT16。FAT16是MicroSOFt较早推出的文件系统,具有高度兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中。
  硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR(Main Boot Record,主引导扇)区,DBR(DosBoot Record,操作系统引导记录)区,FAT(File AllocationTable,文件分配表)区,DIR(Directory,根目录)区,DATA区。
  MBR区位于整个硬盘的0柱面0磁头1扇区(可以看作是硬盘的第1个扇区),BIOS在执行自己固有的程序以后就会跳转到mbr中的第1条指令,将系统的控制权交由mbr来执行。在总共512字节的主引导记录中,MBR的引导程序占了其中的前446字节(偏移0H~偏移1BDH),随后的64字节(偏移1BEH~偏移1FDH)为DPT(Disk Partition Table,硬盘分区表),最后的2字节“55 AA”(偏移1FEH~偏移1FFH)是分区有效结束标志。MBR不随操作系统的不同而不同,即不同的操作系统可能会存在相同的MBR,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。
  DBR(Dos Boot Record,操作系统引导记录)区通常占用分区的第0扇区,共512字节(特殊情况下也要占用其他保留扇区,这里先说第0扇)。在这512字节中,其实又是由跳转指令、厂商标志和操作系统版本号、BPB(BIOS Parameter Block)、扩展BPB、os引导程序、结束标志几部分组成。
  FAT表是用FAT16来记录磁盘数据区簇链结构的。如前面的例子,FAT将磁盘空间按一定数目的扇区为单位进行划分,这样的单位称为簇。通常情况下,每扇区512字节的原则是不变的。簇的大小一般是2n(n为整数)个扇区的大小,像512 B、1 KB、2 KB、4 KB、8 KB、16 KB、32 KB、64 KB。实际中通常不超过32 KB。之所以簇为单位而不以扇区为单位进行磁盘的分配,是因为当分区容量较大时,采用大小为512位的扇区管理会增加FAT表的项数,对大文件存取增加消耗,文件系统效率不高。
  DIR(Directory)是根目录区,紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
  数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分数据空间。
  3.2 FAT16文件系统存储原理
  在FAT文件系统中,文件的存储依照FAT表制定的簇链式数据结构来进行。同时,FAT文件系统将组织数据时使用的目录也抽象为文件,以简化对数据的管理。格式化FAT16分区时,格式化程序根据分区的大小确定簇的大小,然后根据保留扇区的数目、根目录的扇区数目、数据区可分的簇数与FAT表本身所占空间来确定FAT表所需的扇区数目,之后将计算结果写入DBR的相关位置。FAT16 DBR参数的偏移0x11处记录了根目录所占扇区的数目。偏移0x16记录了FAT表所占扇区的数据。偏移0x10记录了FAT表的副本数目。系统在得到这几项参数以后,就可以确定数据区的开始扇区偏移了。FAT16文件系统从根目录所占的32个扇区之后的第1个扇区开始以簇为单位进行数据的处理,这之前仍以扇区为单位。对于根目录之后的第1个簇,系统并不编号为第0簇或第1簇,而是编号为第2簇,也就是说数据区顺序上的第1个簇也是编号上的第2簇。FAT文件系统之所以有12、16、32不同的版本之分,其根本在于FAT表用来记录任意一簇链接的二进制位数。以FAT16为例,每一簇在FAT表中占据2字节(二进制16位)。所以,FAT16最大可以表示的簇号为0xFFFF(十进制的65535),以32 KB为簇的大小的话,FAT32可以管理的最大磁盘空间为:32 KB×65 535=2 048 MB,这就是为什么FAT16不支持超过2 GB分区的原因。FAT表实际上是1个数据表,以2字节为单位,我们暂将这个单位称为FAT记录项,通常情况其第1、2个记录项(前4个字节)用作介质描述。从第3个记录项开始记录除根目录外的其他文件及文件夹的簇链情况。
继承事业,薪火相传
返回列表