上一节,介绍了eCos STM32 SD/MMC Card driver前面2个步骤的调试情况,SD卡可以mount成功并能成功打开目录和读取SD卡目录文件列表信息。但是在SD卡中创建新目录和文件时则会失败,严重的是还破坏了SD卡中文件系统数据,导致SD卡目录和文件数据的丢失。

这是怎么一回事呢?本节除了解决这个问题外,还修复了eCos Disk IO层和eCos FAT文件系统中存在的bug,以及更新了读取SD卡存储信息的相关代码。

阅读全文 »

 

eCos Disk与文件系统框架示意图

前一节,主要着重理论知识,讲述了eCos disk驱动的体系框架并大概分析了SPI接口SD/MMC卡驱动的组成,让大家对eCos的块设备(disk)系统有一个大概的了解,避免只见树木不见森林。

由于STM32 SD卡驱动代码编写工作量非常大,因此本节主要讲述如何编写STM32 SD卡驱动代码以及简单介绍下如何使用图形配置工具进行相关配置。

阅读全文 »

 


前前后后经过了一个多月时间,终于在eCos中实现了STM32的SD卡驱动。相比而言,SD卡驱动不仅代码量大,还涉及eCos块驱动(disk驱动)体系、SD/MMC存储卡、FAT文件系统、块缓存、文件操作等多方面的知识点。

从本节开始,以eCos STM32 SD卡驱动为切入点,一起来了解eCos块设备驱动、文件系统、文件操作等知识点。本节主要介绍eCos disk设备驱动体系结构。

阅读全文 »

 


上一节,主要介绍了SD卡存储数据结构,并对MBR(Main Boot Record 主引导记录区)进行了详细地分析,使我们对SD卡的数据有了初步的了解。这仅仅是个开始,接下来了解下其中的FAT文件系统及其存储数据格式分析。

第二章 FAT32文件系统介绍

2.1 FAT文件系统简介

FAT(File Allocation Table,文件分配表)文件系统是windows操作系统所使用的一种文件系统,它的发展过程经历了FAT12、FAT16、FAT32三个阶段。FAT文件系统用“簇”作为数据单元。一个“簇”由一组连续的扇区组成,簇所含的扇区数必须是2的整数次幂。簇的最大值为64个扇区,即32KB。所有簇从2开始进行编号,每个簇都有一个自己的地址编号。用户文件和目录都存储在簇中。 本文每簇4KB大小。

阅读全文 »

 


最近在调试eCos STM32 SD卡驱动。目前情况是,驱动可以正常读取SD卡中block数据,但应用程序中mount时却提示失败。发现是对SD卡block0中数据处理有些问题,而且驱动中还涉及到CHS格式与LBA格式的转换,弄得我是一头雾水。

于是,老老实实地静下心来研究SD卡中的数据结构、CHS(cylinder、head、sector,即柱面、磁头、扇区)和LDA的概念及其关系、FAT文件系统等知识。下面的内容是转载的(同时加以整理),写得超详细,剖析全面,图文并茂,尤其是其中的数据格式分析,令人印象深刻,不得不佩服作者的写作水平。

阅读全文 »

© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量