新闻中心

EEPW首页>嵌入式系统>设计应用> STM32F103VB的SD卡在应用编程设计

STM32F103VB的SD卡在应用编程设计

作者: 时间:2012-02-21 来源:网络 收藏

3.2芯片存储组织结构
的程序存储器、数据存储器、寄存器和输入/输出端口被组织在同一个4 GB的线性地址空间内。闪存区域即用户代码区域被置于0x08000000~0x0801FFFF的地址范围。方案中IAP程序被事先烧录进0x08000000~0x08002FFF的闪存区域,用户程序紧接着IAP程序进行存放,可使用的范围为0x08003000~0x0801FFFF的闪存区域。IAP程序内存分配如图5所示。

本文引用地址://m.amcfsurvey.com/article/149588.htm

e.jpg


3.3 FAT32文件格式
为了方便终端用户的操作和增加方案的通用性,本以FAT32分区格式标准对卡进行格式化,FAT32分区格式常见于通用的PC机平台。FAT32分区格式如图6所示。采用FAT32分区格式的卡内部结构包括主启动区域、FAT表区域、根目录区域、数据存储区域四部分。
其中位于主启动区域开始位置的第一个保留扇区为起始扇区,包括很多重要的数据信息,如每个扇区的字节数、FAT表个数及大小、每簇扇区数、总扇区数、根目录起始位置等等。FAT32包含两张FAT表,它们紧接主启动区域后面,是分区信息的映射表,主要功能是指示文档如何按簇存放。根目录区域包含了根目录下文档和目录信息的内容。在根目录区域可以获得指定文档的信息,如文档名、文档属性、创建时间、文档大小和文档在FAT表中第一个簇的地址等。数据区域是实际的文档存储的地方,占据了磁盘的大部分空间。
FAT32分区格式中文档是以簇为最小单位进行存储的,固定每簇的容量为4 KB。一个文档根据其大小被分为一个或者若干个簇存储在数据区域,这些簇通常是以零散而不是连续的方式分布在数据存储区域,形成的单链表称为簇链,簇链的具体信息可从FAT表中获得。图7为FAT32文档读取方式示意图。

f.jpg


FAT32文档读取步骤如下:
①在起始扇区中获取卡信息。
②根目录所在的物理地址通过下面公式得出。根目录地址=(隐藏扇区个数+保留扇区个数+FAT所占扇区个数×FAT数量)×扇区字节数。
③在根目录表中检索文档名为“UPDATE”的文档,获取其在FAT表中的首簇地址。首簇号的高字节和低字节位于以文档名起始的偏移量为0x14和0x1a的共四个字节。图7中UPDATE文档首簇号为0003。
④在FAT表的簇号为0003的位置中存放的信息为0004,即下一个簇的位置;在簇号为0004的位置中存放的是簇号为0006的地址信息,由此一步步得出由簇号组成的单链表,一直到簇号为0008的位置中存储的信息为0FFFFFFF,证明此时已到文档的末尾,簇链结束。图7中文档“UP DATE”占用的簇所形成的簇链为0003-0004-0006-0008,总共占用了4个簇、16 KB的数据存储空间。
⑤根据簇链中的簇号在数据存储区域中获取文档的数据内容。例如图7中文档“UPDATE”的数据内容即是由0003、0004、0006、0008四个簇中的数据内容File[0]、File[1]、File[2]、File[3]所组成。

分频器相关文章:分频器原理


评论


相关推荐

技术专区

关闭