注解目录
1、znFAT 的起源
1.1 源于论坛
(那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。)
1.2 硬盘 MP3 推了我一把
(“坤哥”的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。)
1.3 我的导师——顾国昌教授
(哈军工时期的老教授,德高望重的人生导师。)
1.4 我的母校——哈工程
(隐藏牛校哈工程,网络名嘴张雪峰所言非虚。振南给你讲讲母校历史:哈军工、
工程学院、哈船院、哈工程。)
1.5 那场严重超时的答辩会
(20 分钟的答辩超时 1 小时,老师表示赞叹。现场承诺要把文件系统写成书。)
1.6 时隔多年的谢师会
(承诺必须兑现,5 年之后的谢师会,我擎书谢师。不要轻易作出承诺,除非你真
得能作到!)
2、高手如云 认清对手
2.1 国外 FAT 方案简介
1 )FATFS
2 )EFSL
3 )UCFS
4 )TFFS
5 )DOSFS
(列举那些主流 FAT 文件系统方案,并进行详细介绍。)
2.2 国内 FAT 方案简介
1 )ZLG/FS
2 )沁恒 FAT
(国内尚无成型开源的 FAT 文件系统方案。但是我们要支持国货。)
3、硬刚高手 挑战自己
3.1 与高手竞速
3.2 挑战自己
(这一节我写了一个月。环比各大知名方案,看看到底谁更快!最终,挑战了自我。)
4、znFAT 精彩应用大赏
4.1 振南的精彩实验
4.1.1 SD 卡 卡 WAV 音频播放器
4.1.2 SD 卡电子滚动屏
4.1.3 SD 卡 卡 MP3 播放器
4.1.4 AT89S51 离线下载器
4.1.5 数据采集导入 EXCEL
4.1.6 串口文件窃取器
4.1.7 录音笔于 (基于 VS1003B) )
4.1.8 文件无线传输实验
4.1.9 嵌入式脚本程序解释器
4.1.10 绘图板实验(基于 STM32F4 ,屏幕截图存为 BMP 图片)
4.1.11 MEMS 声音传感器“ 硅麦” 录音实验
(znFAT 的最大亮点在于各种精彩的应用,希望振南的这些实验可以让你眼前一亮。)
4.2 精彩的第三方项目应用
4.2.1 仿 仿 Metro UI 系统应用实验
4.2.2 通过 U 盘对产品进行升级
4.2.3 嵌入式网页服务器
4.2.4 STM32+LD3320 作声控音频播放器
4.2.5 BMP 图片浏览
4.2.6 VGA 显示 SD 卡中的图片(基于 FPGA) )
4.2.7 汉字电子书(基于 STM8) )
4.2.8 文本语音合成实验(TTS ,基于 NUC120) )
4.2.9 《跳跃小猫》动画播放(基于 FPGA NIOSII)
1
znFAT 的起源
1.4 那场严重超时的答辩会
研二一整年我基本上都在北京。“不在哈尔滨待着,在北京干什么?”去看看《我和郭天祥的那些事儿》吧。我仍然在研究文件系统,乐此不疲,沉迷于此,以至于我根本无心去考虑研究生课题和毕业论文的问题。
在这个阶段,我研究文件系统已经不单单是为了做 SD 卡 MP3了。因为在我研究的过程中,我发现有一些开源的 FAT 文件系统方案,其中不乏比较有名的,比如 FATFS,基本上已经是行业主流方案。当时我有一种不服气的心理:“这些方案很多都是国外的,难道国内就没有一个比较成型的 FAT 文件系统方案吗?”于是,我产生了自已写一个的想法,初步命名znFAT”意为振南开发的 FAT文件系统方案。
我跟坤哥说了这个想法,他说:“有现成的你就用呗,为啥还要重复造轮子?”这句话我记忆深刻。我是一个有些自负的人,我一直认为只有我自己做的才是最好的。后来 znFAT 广为流传,被很多人誉为是“国内唯一的嵌人式文件系统方案”,其实起初的动机并没有这么高尚,只是纯粹的不服和自负。还有一部分因索是自嗨,因为 FAT 文件系统涉及不少的算法和技巧,能极大满足我的研究欲和成就感。
“振南,这一章你是不是不打算讲 znFAT 的相关技术了?”
是的,因为《嵌入式FAT32 文件系统设计与实现---基于振南 ZFAT》一书已经足够全面和系统化了。那本书很专很深,受众人群也比较窄,但是以我现在的眼光来看,它仍然是令我非常满意的。(衡量一个东西是否真的好,最好的办法是用时间,在时隔多年之后,你再回头来看它,如果仍然觉得好,那它应该就是真的好了。大家不妨回忆一下自己曾经的成果或作品。)
有一天,导师给我打电话。
“振南,你论文选题最终定了没?要抓紧时间写论文!”
“顾老师,我就把我现在研究的文件系统定为论文题目吧。”我在哈尔滨的时候其实很多次跟顾老师讨论文件系统的相关问题,这属于计算机科学的一个重要分支,所以顾老师也很感兴趣。我想把它定为研究方向,也跟顾老师提过。
“可以啊。”
盛中华曾经非常鄙夷地对我说:“我发现顾老师真是宠你,对你太好了!什么都由着你。”(盛中华是谁?去看看《入门 C 语言与单片机》和《振南与郭天祥的那些事儿》这两章。)
顾老师其实不光是对我,他本身有一颗非常平和的心,能够善待每一个人。所以他在很多圈子里都享有很高的声誉,是德高望重的老教授、老院长。我算顾老师的关门弟子,2007 届硕士。我其实是可以直博的,在哈工程保研的学生都有直博的机会,最短可以在 4 年内拿到博土学位。但是当时顾老师要退休了,跟不到我博士毕业,而要另选导师。所以,我就决定放弃直博。
2009 年11月,我回到哈尔滨参加硕士毕业答辩。
每个人限时 20 分钟,但是我却整整超了 1个小时。老师们有些也都是顾老师的学生,是大师兄大师姐,他们都想看看我研究的成果。
我仔细介绍了文件系统相关的技术细节,以及我的nFAT。(当时 znFAT,已经比较完善了,并经历了很多志愿者在各个 CPU 平台上的移植测试和应用,而且已经开始在网上广为传播。)
大师姐赞叹道:“你看看于振南的这些东西,这才是真正有料!”
最后我有点激动地看向顾老师:“文件系统我还会不断地研究下去,我会把它写成书!”
“好,那我们等着!”顾老师说。伴随着全场的掌声,我的毕业答辩结束了。
1.5 时隔多年的谢师会
当时的一句海口,这一下去就是五年。自己作的承诺,再难也要兑现!说实话,文件系统还是比较复杂的,但我的写作风格一直是通俗易懂,要把高深的东西写成白话文,这是很有难度的。研究和写作完全是两回事。
2014 年初,《嵌人式 FAT32 文件系统设计与实现一-基于振南 nFAT》一书终于完稿当时顾老师已经回加拿大顾养天年。我联系到他,说:“顾老师,您还好吗? 文件系统的书我已经写完了,还分了上下册,想请您作一个序(见图 18.5)”
顾老师也表示惊讶:“你真把书写出来了?”
到此,我的五年之诺终于兑现了。
当时我还真不太关心这书的销量,以及 znFAT 使用量,只是觉得终于可以放手了。在这以后,我基本很少再轻易做出承诺。但是实际上,znFAT 一书和代码却开始对我产生极为深远的影响。
图 18.5 带有顾老师序的《嵌入式 FAT32 文件系统设计与实现———基于振南 znFAT 》一书广为发行
2015 年,顾老师从加拿大回国,来到北京。“北京分舵”的师生们为顾老师举行了一场谢师会。在会上,顾老师向大家推荐了我的书,还说:“大家如果有文件系统和存储方面的问题和项目可以找振南哈!”坤哥现在也明白了:为什么要重复造轮子。(别人造轮子,只会给你轮子我造轮子除了给你轮子,还会给你造轮子的方法。)
在这里,我仍然祝顾老师和师母,身体健康,万事如意!
相逢一见太匆匆,校内繁花几度红。厚谊常存魂梦里,深恩永志我心中。
—《七绝·师恩难忘》