振南的 znFAT(前言)

 

 

 

 

 

 

 

 

振南的 znFAT

 

--单片机上的 FAT32文件系统

 

 

 

 

前言

 

1znFAT是什么?

 

关于 znFAT,也许您从未耳闻,这是因为振南并没有去宣传,也

 

很少向人提起,基本都是私下在作,在这个过程中与不少网友和爱好

 

者进行了交流,他们为 znFAT提了不少的建议和需求,使 znFAT

 

以不断改进和扩充。也有不少人建议我开源,在这种要求之下,我在

 

网上公开了一部分代码,果然是受到了很大的关注。但我要说的是,

 

先前没有全部开源是因为我自认为 znFAT还不够完善。现在,znFAT

 

经过一遍遍的测试以及在实际工程中的应用,已经较为完善了。我不

 

敢说 znFAT已经一点问题没有了,但如果一直是我一个人在作,它也

 

难以得到更进一步的发展,所以谨以此书,向大家介绍 znFAT的研发

 

与实现过程。

 

znFAT到底是什么?znFAT是振南原创的一种方便移植于各种微

 

处理器上的开源的 FAT32文件系统解决方案。

 

2znFAT能用来作什么?

 

这是最核心的一个问题,就如同筷子用来吃饭、雨伞用来挡雨,

 

各有各的功能,所以才有存在的必要。简单来说,znFAT最重要的用

 

途就是在存储设备上,如 SD卡、CF卡等等,实现FAT32文件系统,

 

进行各种文件操作,并保证与 windows等操作系统上的FAT32文件


 

 

 

 

 

 

 

 

系统相兼容。

 

虽然我们每天都在用电脑,在与文件打交道,但不一定每个人都

 

知道有文件系统这种东西,或者不了解它的运行机制。而我要说的是

 

正因为计算机、MP3、手机等等现在能这么普及,很大程度上是因为

 

有文件系统。

 

FAT32文件系统是一种机制,或者是一种智慧,更如一个主管,

 

可以将存储器上的数据有机的组织为一个文件,并向我们提供针对于

 

文件的各种操作,比如创建文件、读取文件等等。

 

znFAT是一套解决方案,也就是一套实际可以看到的代码,更通

 

俗的说就是用 C语言对 FAT32的实现,用于运行在某一种微处理器

 

上,并在某一种存储设备上真正实现 FAT32中的各种文件操作。至

 

znFAT中都实现了哪些功能,在后面的介绍中大家会有全面的了

 

解,同时也就能了解到编写一套文件系统解决方案所要花费的心血

 

了。

 

3、为什么要自己从 0写,不是有现成的方案吗?

 

能问出这一问题的人,想必不是初学者,因为文件系统这种东西

 

已经算是比较高级的应用了,所以一般人在初学阶段是不会接触文件

 

系统的。只有有了一定经验,进入实际项目的人,才会越来越发现文

 

件系统的重要。

 

为人所熟知的现有的文件系统有 FATFSuc/FS等等,由来已久,

 

并且也在不断的改进发展,拥有很大的应用人群。这些现有的方案,

 

都向使用者提供了源代码,方便移植到各种平台上。但稍有了解的,


 

 

 

 

 

 

 

 

就会发现,这些解决方案都来自于国外,或是公司,或是研究团体,

 

从而造成源代码很难被读懂,想要深入去了解文件系统是怎样实现

 

的,比较困难。所以如果能原创性地编写出一套完善的文件系统解决

 

方案,并配以相应的教程和应用实例,就可以使我们对文件系统有更

 

深刻的了解。理解了它的真谛,我们就可以去实现那些现有方案中没

 

有实现,而我们又急于实现的功能,一切工作都变得非常灵活。

 

在这里,您可能还会问,难道国内就没有成形的文件系统解决方

 

案吗?我要说,有!比如沁恒电子、各个开发 MP3MP4、手机的公

 

司,我想都会有专门的人去研究文件系统并予以实现,但最重要的一

 

点,他们是不会开放源代码的,更不会告诉你他们是怎样实现的!

 

4FAT32文件系统到底有多复杂,好不好学?

 

虽在 FAT32文件系统协议文档中讲的东西很多,乍看起来很零

 

乱,使人无从下手,但只要耐住性子多看几遍,真正的看进去了,就

 

会发现 FAT32文件系统内容虽多,但层次分明,逻辑缜密。最后你

 

会产生这样的想法,只要肯下功夫,就一定能写出一套不错的方案来

 

不过,如果是自己从 0来研究 FAT32文件系统,还是不太好弄

 

明白的,这也是本书的初衷,振南的任务就是把 FAT32文件系统掰

 

开了揉碎了,让您轻松接受,并感觉到 FAT32文件系统设计上的一

 

些微妙之处,感叹微软令人佩服的创造力(FAT32文件系统的老家是

 

软!)

 

5、有了 znFAT我们能作出些什么?

 

当我们真正把 FAT32文件系统研究明白了,学会用 znFAT在存


 

 

 

 

 

 

 

 

储设备上进行各种文件操作了,这个时候,znFAT就成为了我们得心

 

应手的工具了。也就是说,利用 znFAT我们就可以开始更进一步的开

 

发了。而此时我们开发的层次已经与以前截然不同了,以前我们读写

 

数据也许就是直接在存储器的扇区里或存储单元里读写,而现在我们

 

是在文件里进行读写,而且我们读写的数据与 windows是相通的了。

 

我们可以作出更多精彩的实验和产品,比如 SD MP3播放器、

 

可插接 U盘的数码相框、CF卡电子书等等。可以说,如果我们具有

 

了操作文件的能力,很多问题都可以迎刃而解,很多实验都变得很简

 

单了。

 

6znFAT是不是需要特定的硬件才能实现?

 

其实 znFAT研发过程中的难题有很多,除了 FAT32文件系统本身

 

的复杂度外,还有就是实际平台的硬件资源了。研发 znFAT的一个重

 

要指标就是可移植性,不光包括 znFAT本身的程序接口要易于移植,

 

另外更为重要的就是占用资源量,占用资源越少,越容易向一些低端

 

的微处理器上移植。振南在研发 znFAT的过程中所使用的硬件是

 

STC12C5A60S2STC公司出产的一种 1T增强型 51核单片机,片内

 

1280字节的 RAM)、 1G SD卡与 CF卡各一张(其实就是基于

 

振南的天狼星精华板上的硬件资源,这里为什么要有两种存储设

 

备,SD卡与 CF卡,到后面您就明白了!)

 

应该说振南所使用的硬件已经是非常简陋了,也正是因为硬件资

 

源较为贫瘠,才能写出更为精简高效的代码来,以节省资源。所以振

 

南在编写程序的过程中,不光要考虑功能的实现,还要计算 RAM


 

 

 

 

 

 

 

 

资源的用量。现在现在为止,znFAT实现所有功能所需要的 RAM

 

源只有 900多字节,其中有 512字节的扇区数据缓冲区,也就是说,

 

znFAT实现FAT32的逻辑只用了 400多字节。而常用的单片机、ARM

 

DSP等芯片 RAM一般也在几 K到几十 K字节,所以znFAT可以轻

 

松向这些芯片进行移植。

 

7、本书都会讲哪些内容?

 

在本书中,FAT32文件系统协议及基本的原理是肯定要讲解的,

 

然后就是 znFAT各项功能的具体实现。由于文件系统不可能孤立存

 

在,必须要运行于某一种微处理器上,因此要把 STC12C5A60S2

 

片机一些基本用法讲一下;其次还要基于一种存储设备,所以还要讲

 

SD卡与 CF卡的驱动原理与具体实现。除此之外,还有程序的调

 

试方法、相关软件的用法等等。总之,此书不乏要讲的东西。

 

 

 

 

前言中振南用自问自答的方式,也许让您粗略了解了 FAT32

 

件系统及 znFAT。此时的你,估计还是一个门外汉,下面就让振南慢

 

慢地把您让进屋来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值