振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(2)

news2024/11/27 21:08:09

注解目录

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 年,顾老师从加拿大回国,来到北京。“北京分舵”的师生们为顾老师举行了一场谢师会。在会上,顾老师向大家推荐了我的书,还说:“大家如果有文件系统和存储方面的问题和项目可以找振南哈!”坤哥现在也明白了:为什么要重复造轮子。(别人造轮子,只会给你轮子我造轮子除了给你轮子,还会给你造轮子的方法。)

在这里,我仍然祝顾老师和师母,身体健康,万事如意!

相逢一见太匆匆,校内繁花几度红。厚谊常存魂梦里,深恩永志我心中。

—《七绝·师恩难忘》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring Cloud在代码中如何应用,erueka 客户端配置 和 服务端配置,Feign 和 Hystrix做高可用配置

文章目录 Eureka一、erueka 客户端配置二、eureka 服务端配置 三、高可用配置FeignHystrix 通过这篇文章来看看spring Cloud在代码中的具体应用,以及配置和注解; Eureka 一、erueka 客户端配置 1、Eureka 启禁用 eureka.client.enabledtrue 2、Eurek…

在Windows上配置MySql开发java,导入JDBC的jar包后连接SQL Server数据库结合Java和MySql的一些简单实践

在Windows上配置MySql 我们先进入MySql官网 在官网中选择MySQL Installer for Windows 进入后选择第一个下载 接下来安装即可,在安装时,可以只安装MySql Server(默认选项),选择Full也可,这样会同时安装workbench以及…

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜻蜓算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

SocialFi 和 GameFi 的碰撞 — Socrates 构建新的 Web3 流量入口

伴随着比特币现货 ETF 即将通过 SEC 批准的消息,整个加密市场在11月份达到了熊市以来的新高峰。市场普遍上涨,新的玩法和项目不断涌出吸引了大量老用户回归以及新用户加入。加密市场经过长期的低迷,终于来到了牛市的起点! 上一轮牛…

[C++]六大默认成员函数详解

☃️个人主页:fighting小泽 🌸作者简介:目前正在学习C和Linux 🌼博客专栏:C入门 🏵️欢迎关注:评论👊🏻点赞👍🏻留言💪🏻 …

1980-2022年世界各国专利、商标申请数据/世界各国知识产权专利申请数据

1980-2022年世界各国专利、商标申请数据/世界各国知识产权专利申请数据 1、时间:1980-2022年 2、来源:WIPO数据库 3、范围:世界各国(180多个国家) 4、指标:国家名称、年份、代码、类型、专利申请总量、…

老鸟整理,银行测试业务+银行测试案例编写,超细汇总...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行的软件测试是…

2023中国SaaS大会完美收官,体验管理开辟SaaS续费增长新曲线

11月17日-19日,2023中国SaaS大会在苏州太湖万豪酒店完美收官。本场专属于SaaS人的行业盛会,设有运动会、实战闭门会、公开课、辩论赛、嘉宾对话及演讲等多项精彩活动,吸引了千余名To B(SaaS)领域创业者、投资人、企业客…

古埃及金字塔的修建

从理论上说,古埃及人完全有能力设计并建造出充满各种奇妙细节的胡夫金字塔,但后世还是不断涌现出质疑之声,原因倒也简单,那就是胡夫金字塔实在太大了。据推算,整座金字塔使用大约230万块巨石,总质量可达约5…

通俗易懂的spring Cloud;业务场景介绍 二、Spring Cloud核心组件:Eureka 、Feign、Ribbon、Hystrix、zuul

文章目录 通俗易懂的spring Cloud一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七…

深度学习中小知识点系列(五) 解读HSV模型随机增强图像

文章目录 图像HSV模型简介RGB模型转HSV模型opencv关于HSV模型实验随机增强图像HSV 图像HSV模型简介 HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)(参考百度)。在HSV模型…

Java研学-集合框架

一 关于集合框架 1 集合是Java提出的用来进行多个数据存储的"容器",数组也具备这样的功能, 2 由于数组一旦创建长度固定,且只能存放一种数据类型,不够灵活,Java提出更灵活,存放任意的数据类型的容器也就是集合 3 集合和数组的异同点 相同点:都是用来存…

西南科技大学数字电子技术实验一(数字信号基本参数与逻辑门电路功能测试及FPGA 实现 )预习报告

手写报告稍微认真点写,80+随便有 目录 一、计算/设计过程 1、通过虚拟示波器观察和测量信号 2、通过实际电路(电阻、开关、发光二极管)模拟逻辑门电路 二、画出并填写实验指导书上的预表

ELK----日志分析

ELK相关知识 ELK的概念与组件 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 E:ElasticSearch (ES) ES是…

智能电表——电源应用

作为智能电网的重要组成部分,智能电表在智能电网中发挥着不可或缺的作用。智能电表是指以智能芯片为核心,通过运用通讯技术以及计算机技术等,能够进行电能计费、电功率的计量和计时,并且能够和上位机进行通讯、用电管理的电度表。…

STK Components 二次开发- 区域

1.创建区域 需要提供点坐标。最少三个点可以确定一个区域。 创建区域也是一样,创建对象然后设置点位置 ,然后设置区域属性。 var referenceSurface m_earth.Shape; // We specify the boundary in terms of nodes connected by geodesics.var result…

PlantUML语法(全)及使用教程-时序图

目录 1. 参与者1.1、参与者说明1.2、背景色1.3、参与者顺序 2. 消息和箭头2.1、 文本对其方式2.2、响应信息显示在箭头下面2.3、箭头设置2.4、修改箭头颜色2.5、对消息排序 3. 页面标题、眉角、页脚4. 分割页面5. 生命线6. 填充区设置7. 注释8. 移除脚注9. 组合信息9.1、alt/el…

卷积神经网络(CNN)识别神奇宝贝小智一伙

文章目录 一、前言二、前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)2. 导入数据3. 查看数据 二、数据预处理1.加载数据2. 可视化数据4. 配置数据集 三、调用官方网络模型四、设置动态学习率五、编译六、训练模型七、模型评估八、保存and加载模型九、…

Linux网络——数据链路层

目录 一.认识以太网 二.以太网帧格式 三.认识MAC地址 四.认识MTU 五.以太局域网的通信原理 六.其他重要协议 1.DNS协议 2.域名简介 3.ICMP协议 4.NAT技术 5.NAT技术的缺陷 6.NAT和代理服务器 一.认识以太网 "以太网" 不是一种具体的网络, 而是一种技术标…

C语言入门---位操作

目录 1. 两个数不同的二进制位个数 2.原码、反码、补码 3.不创建临时变量实现两个数的交换 4.求一个整数存储在内存中的二进制中1的个数 5. 特例-1 6.将指定的位置置1 7.将指定位置置1 8.a与a 9.||与&& 10.逗号表达式 11.srand与rand 12.sizeof 13.结构体初始…