第1章数据记录,偷梁换柱:使用变通方法实现文件数据存储1
1.1把SD卡用作一个大容量的ROM1
1.1.1大ROM思想的提出1
1.1.2思想的验证:数据采集与记录实验2
1.2数据“偷梁换柱”——数据替换5
第2章更及核心,文件创建:修改FAT表实现文件创建功能10
2.1文件的创建10
2.1.1文件目录项的构造10
2.1.2文件目录项的“落定”:写入目录簇12
2.2为自己开路:簇链的构造15
2.2.1目录簇的拓展15
2.2.2寻找“路石”:空簇的查找16
2.2.3形同虚设的FSINFO扇区19
2.2.4簇链构造的实现22
2.3目录的创建24
2.3.1目录项的构造24
2.3.2两个特殊的目录项25
第3章
数据写入,细微可见:数据写入的实现28
3.1初步实现28
3.1.1回顾数据读取28
3.1.2从开头写数据29
3.1.3从整簇写数据32
3.2数据写入的实现33
3.3数据写入的典型应用38
3.3.1实例1:数据采集与存储38
3.3.2实例2:简易数码相机41
第4章
巧策良方,数据狂飙:独特算法实现数据高速写入45
4.1迫出硬件性能45
4.1.1连续多扇区驱动45
4.1.2多扇区抽象驱动接口47
4.2为数据作“巢”48
4.2.1预建簇链思想的提出48
4.2.2簇链预建的实现50
4.2.3将多扇区用到极致55
4.3CCCB(压缩簇链缓冲)57
4.3.1CCCB的提出57
4.3.2CCCB的实现60
4.3.3CCCB的争抢与独立63
4.4EXB(扇区交换缓冲)64
4.4.1EXB的提出64
4.4.2EXB的实现65
第5章
模式变换,百花争艳:znFAT与其他FAT的全面PK67
5.1登顶效率之峰67
5.2与强者竞速68
5.2.1国内外优秀FAT方案简介69
5.2.2速度的“较量”71
5.3znFAT的工作模式74
5.3.1缓冲工作模式74
5.3.2自身模式较量75
5.4 znFAT的功能裁减78
5.4.1功能裁减宏78
5.4.2裁减宏的嵌套79
第6章
创新功能,思维拓展:多元化功能特性与数据重定向的实现81
6.1多元化文件操作81
6.1.1多文件81
6.1.2多设备82
6.2数据重定向87
6.2.1数据重定向的提出87
6.2.2数据重定向的实现88
6.2.3数据重定向实现MP3播放89
第7章
层递删截,通盘格空:文件、目录的删除及磁盘格式化91
7.1文件数据的倾倒91
7.1.1何为数据倾倒91
7.1.2数据倾倒的实现92
7.2文件的删除95
7.2.1文件删除的实质95
7.2.2文件删除的实现97
7.3目录的删除99
7.3.1目录删除的难处99
7.3.2目录删除的实现100
7.4格式化101
7.4.1格式化的内涵101
7.4.2格式化的核心工作101
7.4.3格式化的实现105
第8章突破短名,搞定长名:突破8·3短名限制,全面地实现长文件名110
8.1FAT32的长文件名110
8.1.1何为长文件名110
8.1.2长文件名的存储机理111
8.2UNICODE编码113
8.2.1“各自为战”的DBCS113
8.2.2UNICODE带来的问题115
8.2.3编码转换的实现116
8.2.4长名的提取与匹配120
8.3长名的核心是短名121
8.3.1微软长名专利风波121
8.3.2长短名的绑定122
8.3.3用长名打开文件123
8.3.4创建长名文件125
第9章
青涩果实,缤纷再现:套书的第二个实验专题131
9.1数据采集导入EXCEL131
振南点睛131
9.2串口文件“窃取器”134
9.3录音笔136
9.4简易数码相机(51)139
9.5简易数码录像机(AVR)141
9.6简易数码录像机升级版(STM32直接录制AVI视频)144
9.7文件无线传输实验147
9.8嵌入式脚本程序解释器150
振南点睛151
9.9AVI视频播放器152
9.10绘图板实验——基于STM32F4154
9.11MEMS声音传感器录音实验158
9.12各种CPU上的实例汇总(基于第三方实验平台)161
振南点睛164
振南点睛171
第10章
存储设备,闪存解惑:主流存储设备及闪存技术详解173
10.1当前主流存储设备173
10.1.1主流存储设备简介174
10.1.2嵌入式存储设备177
10.2FlashROM上的文件系统179
10.2.1FTL180
10.2.2NFTL180
第11章
物理驱动,深入剖析:SD卡物理驱动183
11.1SD卡的接口与电路183
11.1.1SD卡的接口183
11.1.2SD卡的电路184
11.2振南SD卡驱动移植与测试185
11.2.1振南SD卡驱动简介185
11.2.2振南SD卡驱动移植185
11.2.3SD卡驱动测试187
11.3SD卡驱动原理188
11.3.1通信与命令188
11.3.2SD卡的初始化191
11.3.3SD卡的单扇区读/写194
11.3.4SD卡的多扇区读/写擦除195
第12章
性能提升,底层限制:高性能SD卡物理驱动197
12.1现有SD卡驱动的性能评估197
12.2用DMA为数据传输提速202
12.3高性能SD卡驱动的实现206
附录A
完整工程实例之SD卡MP3播放器211
附录B
完整工程实例之数码录像机(相机)218
附录C主流CPU内核及其典型芯片简介(znFAT移植平台)227
附录D
答网友问233
附录E我的大学系列238
参考文献246
展开
——原哈工程大学计算机学院院长、博士生导师 顾国昌
振南开创了国内首个开源的FAT32文件系统,并孜孜不倦的持续推广,其精神值得深刻学习。
——国内优秀RTOS rawos作者、国内rtos领头人 陈凌君
在21IC上,久仰振南大名,之前虽没有互动过,但还是知道他搞了开源软件,最近才开始深入关注他的软件和书。翻阅此书,一种DIY的精神扑面而来,依稀看见了我研发的套路。我也用过不少开源软件,总是会有种种不如意,总感觉少了点什么。总是要去打补丁,有时候改得火大,直接自己写了。所以看过此书,对作者的工作流程表示认同,为作者的DIY精神叫好。
——21IC版主、《感悟设计》一书作者 大道至简
我看过振南的疯狂单片机系列视频教程,并亲身验证过znFAT文件系统的强大功能。我作为一个从事了十多年单片机系统一线研发工作的工程师,为znFAT深深震撼,振南的功力太深厚了。其讲解的内容真实、细致、通俗易懂且有极强的实用价值,代码开源的精神也值得我们每一个搞技术工作的中国人学习。
——znFAT使用者 成都高新区华汇实业有限公司 李友全