内容简介
本书是此套书的下册,是上册的延续与拓展。本书详细讲解了FAT32中长文件名的相关技术及其在znFAT中的具体实现。最后,着重介绍了SD卡等存储设备的驱动原理与调试方法。应该说,下册比上册更有技术含量、更有思想,会引发读者更多的思考和灵感。
如果说上册是专注于基础和常规内容的话,那么下册则更加侧重于提高与创新。振南将把一些绝对独特的思想和算法,以及它们在znFAT中表现出来的优异性能呈现在读者面前。
此书谨献给对FAT32、SD卡等嵌入式存储技术感兴趣,以及在这方面有项目应用需求的广大人群。希望此书能够成为此领域内的参考书,对大家的研究与开发工作产生积极意义。
精彩书评
作者对研发工作十分投入,经常通宵工作,他的执著以及勤于用实验反复验证的作风都给我留下极深的印象。希望通过我的介绍让大家对作者本身及此书的创作背景有更多的了解。我相信,凭着作者本人对软硬件知识的深刻掌握与理解,再加之对研究工作的认真和极度执著的态度,本书的出版有理由值得我们期待!
——原哈工程大学计算机学院院长、博士生导师 顾国昌
振南开创了国内第1个开源的FAT32文件系统,并孜孜不倦的持续推广,其精神值得深刻学习。
——国内优秀RTOS rawos作者、国内rtos领头人 陈凌君
在21IC上,久仰振南大名,之前虽没有互动过,但还是知道他搞了开源软件,最近才开始深入关注他的软件和书。翻阅此书,一种DIY的精神扑面而来,依稀看见了我研发的套路。我也用过不少开源软件,总是会有种种不如意,总感觉少了点什么。总是要去打补丁,有时候改得火大,直接自己写了。所以看过此书,对作者的工作流程表示认同,为作者的DIY精神叫好。
——21IC版主、《感悟设计》一书作者 大道至简
我看过振南的疯狂单片机系列视频教程,并亲身验证过znFAT文件系统的强大功能。我作为一个从事了十多年单片机系统一线研发工作的工程师,为znFAT深深震撼,振南的功力太深厚了。其讲解的内容真实、细致、通俗易懂且有极强的实用价值,代码开源的精神也值得我们每一个搞技术工作的中国人学习。
——znFAT使用者 成都高新区华汇实业有限公司 李友全
目录
第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
�T
第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文件系统、振南znFAT的设计思想与实现技巧,以及嵌入式存储的相关技术都已经小有领悟。但振南只能说现在还只是“万里长征”刚走出了不到一半。上册只是实现了“读”操作相关的功能,实际上真正的重点、难点和亮点在于“写”操作,还有在整个系统层面上对性能与效率的优化与提升。这其中所产生的一系列新颖的编程方法、独特的算法与策略才是能够发人深省的核心内容。
下册之精妙之处本书介绍知识的同时注重穿插大量精彩、更具创意的实验,方便读者理解、动手提高。首先介绍了文件与目录创建、数据写入等文件操作功能的实现。随后的几章一直在努力提升数据读写的速度,提出了诸如预建簇链、连续扇区优化、压缩簇链缓冲与扇区交换缓冲等多种实用而优秀的创新思想与机制。这些正是znFAT中的精妙所在,它们让znFAT可以满足更高更快的数据存储应用需求,从而跻身于优秀的嵌入式FAT32文件系统方案之列,受到人们的广泛承认与好评。为了证明这一切,振南将znFAT与多款现有的国际优秀方案进行了全面、深入的“较量”,一决高下。振南还详细讲解了SD卡等存储设备的驱动与调试方法,基于ZNX开发板采用3种CPU分别对扇区读写速度进行了实际的测试评估。尤其在STM32上为驱动引入了DMA后,它的速度表现更加让人满意,甚至令人惊喜。后面几章中振南还详细介绍了广受读者关注的FAT32长文件名和NOR/NAND Flash ROM上的文件系统应用等问题。最后,集中展示了几个吸引眼球的znFAT的综合应用实验,可谓是本书的点睛之笔。本书特点在风格上,下册与上册保持了一致,并保证了知识脉络的连贯性。正如上册对后续内容的不断引导一样,下册在很多关键点上均与上册遥相呼应,共同编织了一张完整而致密的知识网络。应该说,下册比上册更具创意,更具技术含量,也更具工程实用价值。其中的很多实验可能都是一些“可遇而不可求”的高难、精彩创新实验,其中涉及的很多技术对于实际的工程项目也都具有借鉴与指导意义。感谢znFAT系统的研发、测试与改进工作以及本书的整个写作出版过程,从头到尾振南都不觉得寂寞,因为有无数热心人和爱好者的协助、支持,这里一并表示感谢。感谢导师顾国昌教授(哈尔滨工程大学计算机学院院长、博士生导师),正是因为他的谆谆教导和对振南自主研究工作的长期支持,才有了振南的今天。感谢北京航空航天大学出版社的大力支持,这是本书最终得以出版的主要推动者与执行者; 感谢21IC、EDNChina、Elecfans等网站与论坛,为振南个人与znFAT的推广起到了很大的作用,并且为技术的交流与反馈提供了良好的渠道与平台。此外,大量的志愿者承担了测试工作,这里一并表示感谢。这些志愿者包括:杜撰、何强、吴俊超、谢明鑫、王志诚、林麟、罗伟东(纬图虚拟仪器)、尚学成、刘磊等。本书的写作过程中,有很多人参与到了振南的内部书稿评阅中,从读者的角度提出了自己的意见和建议,也对他们表示感谢,包括:王坤、徐茂龙、黄劲松、曾跃飞、张杰、陈宏洲、许江等。
嵌入式FAT32文件系统设计与实现:基于振南znFAT(下) 下载 mobi epub pdf txt 电子书 格式