于振南编著的《嵌入式FAT32文件系统设计与实现--基于振南znFAT》介绍知识的同时注重穿插大量精彩、更具创意的实验,方便读者理解、动手提高。首先介绍了文件与目录创建、数据写入等文件操作功能的实现。随后的几章一直在努力提升数据读/写的速度,提出了诸如预建簇链、连续扇区优化、压缩簇链缓冲与扇区交换缓冲等多种实用而优秀的创新思想与机制。这些正是znFAT中的精妙所在,它们让znFAT可以满足更高更快的数据存储应用需求,从而跻身于优秀的嵌入式FAT32文件系统方案之列,受到人们的广泛承认与好评。为了证明这一切,振南将znFAT与多款现有的国际优秀方案进行了全面、深入的“较量”,一决高下。
振南还详细讲解了SD卡等存储设备的驱动与调试方法,基于ZN—X开发板采用3种CPU分别对扇区读/写速度进行了实际的测试评估。尤其在STM32上为驱动引入了DMA后,它的速度表现更加让人满意,甚至令人惊喜。
后面几章中振南还详细介绍了广受读者关注的FAT32长文件名和NOR/NAND Flash ROM上的文件系统应用等问题。最后,集中展示了几个吸引眼球的znFAT的综合应用实验,可谓是本书的点睛之笔。
于振南编著的《嵌入式FAT32文件系统设计与实现--基于振南znFAT》是此套书的下册,是上册的延续与拓展。本书详细讲解了FAT32中长文件名的相关技术及其在znFAT中的具体实现。最后,着重介绍了SD卡等存储设备的驱动原理与调试方法。应该说,下册比上册更有技术含量、更有思想,会引发读者更多的思考和灵感。
如果说上册是专注于基础和常规内容的话,那么下册则更加侧重于提高与创新。振南将把一些绝对独特的思想和算法,以及它们在znFAT中表现出来的优异性能呈现在读者面前。
《嵌入式FAT32文件系统设计与实现--基于振南znFAT》谨献给对FAT32、SD卡等嵌入式存储技术感兴趣,以及在这方面有项目应用需求的广大人群。希望此书能够成为此领域内的参考书,对大家的研究与开发工作产生积极意义。
第1章 数据记录,偷梁换柱:使用变通方法实现文件数据存储
1.1 把SD卡用作一个大容量的
1.1.1 大ROM思想的提出
1.1.2 思想的验证:数据采集与记录实验
1.2 数据“偷梁换柱”——数据替换
第2章 更及核心,文件创建:修改FAT表实现文件创建功能
2.1 文件的创建
2.1.1 文件目录项的构造
2.1.2 文件目录项的“落定”:写入目录簇
2.2 为自己开路:簇链的构造
2.2.1 目录簇的拓展
2.2.2 寻找“路石”:空簇的查找
2.2.3 形同虚设的FSINFO扇区
2.2.4 簇链构造的实现
2.3 目录的创建
2.3.1 目录项的构造
2.3.2 两个特殊的目录项
第3章 数据写入,细微可见:数据写入的实现
3.1 初步实现
3.1.1 回顾数据读取
3.1.2 从开头写数据
3.1.3 从整簇写数据
3.2 数据写入的实现
3.3 数据写入的典型应用
3.3.1 实例1:数据采集与存储
3.3.2 实例2:简易数码相机
第4章 巧策良方,数据狂飙:独特算法实现数据高速写入
4.1 迫出硬件性能
4.1.1 连续多扇区驱动
4.1.2 多扇区抽象驱动接口
4.2 为数据作“巢”
4.2.1 预建簇链思想的提出
4.2.2 簇链预建的实现
4.2.3 将多扇区用到极致
4.3 CCCB(压缩簇链缓冲)
4.3.1 CCCB的提出
4.3.2 CCCB的实现
4.3.3 CCCB的争抢与独立
4.4 EXB(扇区交换缓冲)
4.4.1 EXB的提出
4.4.2 EXB的实现
第5章 模式变换,百花争艳:znFAT与其他FAT的全面
5.1 登顶效率之峰
5.2 与强者竞速
5.2.1 国内外优秀FAT方案简介
5.2.2 速度的“较量”
5.3 znFAT的工作模式
5.3.1 缓冲工作模式
5.3.2 自身模式较量
5.4 znFAT的功能裁减
5.4.1 功能裁减宏
5.4.2 裁减宏的嵌套
第6章 创新功能,思维拓展:多元化功能特性与数据重定向的实现
6.1 多元化文件操作
6.1.1 多文件
6.1.2 多设备
6.2 数据重定向
6.2.1 数据重定向的提出
6.2.2 数据重定向的实现
6.2.3 数据重定向实现MP3播放
第7章 层递删截,通盘格空:文件、目录的删除及磁盘格式化
7.1 文件数据的倾倒
7.1.1 何为数据倾倒
7.1.2 数据倾倒的实现
7.2 文件的删除
7.2.1 文件删除的实质
7.2.2 文件删除的实现
7.3 目录的删除
7.3.1 目录删除的难处
7.3.2 目录删除的实现
7.4 格式化
7.4.1 格式化的内涵
7.4.2 格式化的核心工作
7.4.3 格式化的实现
第8章 突破短名,搞定长名:突破8·3短名限制,全面地实现长文件名
8.1 FAT32的长文件名
8.1.1 何为长文件名
8.1.2 长文件名的存储机理
8.2 UNICODE编码
8.2.1 “各自为战”的
8.2.2 UNICODE带来的问题
8.2.3 编码转换的实现
8.2.4 长名的提取与匹配
8.3 长名的核心是短名
8.3.1 微软长名专利风波
8.3.2 长短名的绑定
8.3.3 用长名打开文件
8.3.4 创建长名文件
第9章 青涩果实,缤纷再现:套书的第二个实验专题
9.1 数据采集导入
9.2 串口文件“窃取器”
9.3 录音笔
9.4 简易数码相机(51)
9.5 简易数码录像机(AVR)
9.6 简易数码录像机升级版(STM32直接录制AVI视频)
9.7 文件无线传输实验
9.8 嵌入式脚本程序解释器
9.9 AVI视频播放器
9.10 绘图板实验——基于S
9.11 MEMS声音传感器录音实验
9.12 各种CPU上的实例汇总(基于第三方实验平台)
第10章 存储设备,闪存解惑:主流存储设备及闪存技术详解
10.1 当前主流存储设备
10.1.1 主流存储设备简介
10.1.2 嵌入式存储设备
10.2 FlashROM上的文件系统
10.2.
10.2.2
第11章 物理驱动,深入剖析:SD卡物理驱动
11.1 SD卡的接口与电路
11.1.1 SD卡的接口
11.1.2 SD卡的电路
11.2 振南SD卡驱动移植与测试
11.2.1 振南SD卡驱动简介
11.2.2 振南SD卡驱动移植
11.2.3 SD卡驱动测试
11.3 SD卡驱动原理
11.3.1 通信与命令
11.3.2 SD卡的初始化
11.3.3 SD卡的单扇区读/写
11.3.4 SD卡的多扇区读/写擦除
第12章 性能提升,底层限制:高性能SD卡物理驱动
12.1 现有SD卡驱动的性能评估
12.2 用DMA为数据传输提速
12.3 高性能SD卡驱动的实现
附录A 完整工程实例之SD卡MP3播放器
附录B 完整工程实例之数码录像机(相机)
附录C 主流CPU内核及其典型芯片简介(znFAT移植平台)
附录D 答网友问
附录E 我的大学系列
参考文献