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

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

阅读全文 »

 


上一节,完成了eCos STM32 SD driver代码的编写,展现了如何借鉴第三方驱动快速部署驱动代码的实例。与时同时,再次看到了eCos DMA的运用。

本节主要介绍eCos STM32 SD卡驱动的调试,再次完整地呈现了eCos驱动的调试过程。如果说编写代码大多数是复制粘贴,那么通过调试,则让我了解了SD卡存储结构、FAT文件系统知识及其数据分析,最重要的是了解了eCos的FAT和Block library(块缓存)程序。

阅读全文 »

 

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

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

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

阅读全文 »

 


在“境况不妙,何去何从?”一文中曾说了说自己最近迷茫的境况。但在接下来的日子一直到8月6号,却发生了一些意料之中又是意料之外的事情。我们几个根据当时所处的情势,保持强硬的态度,不受于诱惑、不受于威胁,最终取得了关键性的胜利——9月初转调其它部门工作。

感觉这段时间就像经历了一场艰苦的战斗,虽然取得了“胜利”,但仍是心有余悸、感慨良多……

阅读全文 »

 


前前后后经过了一个多月时间,终于在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文件系统等知识。下面的内容是转载的(同时加以整理),写得超详细,剖析全面,图文并茂,尤其是其中的数据格式分析,令人印象深刻,不得不佩服作者的写作水平。

阅读全文 »

 


随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个在软件开发中非常普遍的问题:僵尸代码。几乎所有我接触过的代码库里都四散着很多小段的,甚至大片大片的被注释掉的代码。这就是僵尸代码。

// 目前禁用这项功能。Jimmy在写这段代码时肯定是喝醉了。

// 你可能以为这里发生了恐怖的代码凶手安…不,不,我只是把它们注释掉了…

为什么称它们为僵尸代码?你知道,僵尸不并不是真的死的。就像恐怕电影里告诉我们的,尽管僵尸看起来是死人,但它们仍有能力四处出没袭击我们。相同的道理,僵尸代码也是处于不生不死之间…

阅读全文 »

 


什么?eCos也要打补丁(put a patch)?

看到文章标题时,我估计有人很惊讶,并且会发出上面类似的问题。也许你听说过windows打补丁而且关于这个还是出了名 的,听说过linux打补丁而且有专门的diff和patch命令。确定的是,在eCos中,补丁同样存在。

本文就来说说eCos中补丁的那些事以及怎样给eCos打补丁。 阅读全文 »

 


谈及linux补丁(patch)及其patch操作,自然而然地觉其复杂,故一直存敬畏之心,所以也就一直远离它。但像做嵌入式linux开发,有时候patch是无法绕过的。

对于补丁制作与应用,实际上就是掌握linux diff和patch命令的使用,而这两个命令与linux其它命令一样,也是比较容易掌握的。如果你也有与我之前一样的敬畏心理,建议你不如早早放下这个心理包袱,赶紧掌握这个知识点。 阅读全文 »

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

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