上一节,主要介绍了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其它命令一样,也是比较容易掌握的。如果你也有与我之前一样的敬畏心理,建议你不如早早放下这个心理包袱,赶紧掌握这个知识点。 阅读全文 »

 


2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。它的下载页面标题为:Let’s hear it for Qt 5.1! 多么美好的诗句。

关注Qt很久了,非常喜欢它。在2011年的时候曾经自学过一段时间,那时用的是Qt 4.7版本。虽然Qt是一个很庞大的东东,但不得不说,它具有极其优良的架构,尤其是它的跨平台特性和独创的信号槽机制。 阅读全文 »

 


前几天,同事给我秀了一段代码,初看之时,没弄懂其作用。这并不意外,因为我对这段代码所用到的C语言异或^操作符不熟悉。一是在我的编程里这个操作符不常用,看其它代码也少见到;二是我编程的基础知识本身就不是很扎实。

同事秀的这段代码以前并未见过,当他说出这段代码的功能后,先是惊讶其精妙绝伦地实现,然再搜索其原理,发现其也不是想象的那么美好。在这里一一探究。 阅读全文 »

 


近入7月,烈日炎炎,酷暑难当。偌大的办公室里虽然凉快,感觉却空当当的。与两年前相比,判若两境。

两年前,我刚进入这家公司,安排在现在的部门工作,并以此为荣耀。从现在来看,那时应该是部门发展的鼎盛时期,这从当时部门人数就可以看出来了——新来的同事都快没有座位安排了。 阅读全文 »

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

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