CN1776685A - 一种在fat文件系统中支持多国语言的方法及其装置 - Google Patents
一种在fat文件系统中支持多国语言的方法及其装置 Download PDFInfo
- Publication number
- CN1776685A CN1776685A CN 200510130643 CN200510130643A CN1776685A CN 1776685 A CN1776685 A CN 1776685A CN 200510130643 CN200510130643 CN 200510130643 CN 200510130643 A CN200510130643 A CN 200510130643A CN 1776685 A CN1776685 A CN 1776685A
- Authority
- CN
- China
- Prior art keywords
- unicode
- file system
- coding
- fat file
- fat
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000008676 import Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 2
- 230000009466 transformation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机原理领域。本发明提出一种在FAT文件系统中支持多国语言的方法,其中,在文件系统中增加参数处理模块,把Unicode转换库放在应用层。当FAT文件系统需要使用Unicode编码时,应用层完成编码之间的转换并把编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。本发明可以有效的使得FAT文件系统支持Unicode编码,从而有效的支持多国语言,特别适用于嵌入式系统和单片机的开发。
Description
技术领域
本发明涉及计算机原理领域,具体涉及在FAT文件系统中支持多国语言的方法,以及使用这种方法的装置。
背景技术
FAT文件系统定义了硬盘上的数据按照其不同的特点和作用分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。
(1)MBR(主引导记录区),通常位于整个硬盘的0磁道0柱面1扇区,它包含了硬盘的一系列参数和一段引导程序,它由分区程序(如Fdisk.com)所产生的,并不依赖任何操作系统。
(2)DBR(操作系统引导记录区),它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区。它的主要任务是当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件,如果确定存在,就把其读入内存,并把控制权交给该文件。
(3)FAT(文件分配表)位于DBR之后,从0磁道1柱面33扇区开始,占据扇区的多少由磁盘类型和大小而定。文件分配表是用来表示磁盘空间的分配信息。它不表示引导区、文件目录的信息,也不真正存储文件内容。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT(文件分配表)来保存的,表中有很多表项(entry),每项记录一个簇的信息。
(4)DIR根目录区(Directory),紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
(5)数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的绝大部分数据空间
在FAT文件系统中,必不可少涉及文字编码。英文版的操作系统平台上,文件系统中的目录、文件全是英文字母,用ANSI码即可,但是在中文、韩文系统中就必须考虑编码问题。
若使FAT文件系统支持多国语言,必须支持Unicode编码。Unicode是一套字符集,与其他传统单一字节的字符集不同的是,它使用两个字节来表示一个字符,这使得可用字符的数量大大增加,因为理论上两个字节可以包含65536个字符,这样对于世界上所有国家的字符、符号或者货币都是足够的了。Unicode的字符都是双字节的,使得管理、转换和使用字符串变得十分容易,并且它支持世界上的所有的常用文字,使得一个程序可以同时在屏幕上显示多种语言的文字,而不用关心当前的代码页。
要使系统支持Unicode编码必然需要Unicode库来实现不同语言与Unicode间的转换,而在嵌入式系统中放置一个Unicode转换库是无法接受的,因为仅仅一个汉字GB码与Unicode间的转换库就有80k左右,更何况其它语言。显然FAT文件系统中放置Unicode库的方案在嵌入式系统开发中是不可行的,把含有Unicode库的FAT系统放置到芯片里则更不可行。
发明内容
本发明的目的是要克服目前现有技术的缺陷,提出一种有效的、嵌入式系统可以使用的、使FAT文件系统能支持多国语言的方法。
本发明提出一种在FAT文件系统中支持多国语言的方法,在应用层设置Unicode编码转换库;在应用层完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传给FAT系统;FAT文件系统中的参数处理模块对所传入的编码进行解析。
上述的在FAT文件系统中支持多国语言的方法,一种优选的方案是参数处理模块可以以Unicode应用程序调用接口形式实现。
本发明还提出一种装置,该装置使用了本发明提出的在FAT文件系统中支持多国语言的方法,该装置包括CPU和存储器,其中存储器内包括一个FAT文件系统,该文件系统包括一个参数处理模块,这个参数处理模块用于当应用层传入Unicode编码和非Unicode编码,解析这些编码;当FAT文件系统使用多国语言时,应用层通过编码转换库完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。
上述的装置,一种优选的方案是系统的应用层包括一个Unicode编码转换库。
上述的装置,一种优选的方案是还包括USB模块,用于将该装置与计算机相连。
上述的装置,一种优选的方案是装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
采用本发明,可以有效的使FAT文件系统支持Unicode编码,从而有效的支持多国语言。本发明尤其适用于嵌入式系统和单片机开发,使得这些系统都可以支持多国语言。
附图说明
图1为采用本发明的FAT文件系统结构示意图;
图2为本发明的实施例的模块图。
具体实施方式
本发明提出的在FAT文件系统中支持多国语言的方法,以及使用这种方式的装置,结合附图和实施例说明如下。以下实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由各项权利要求限定。
参照图2,本实施例中,整个FAT文件系统放置在一片音频处理芯片中,这个音频处理芯片包括CPU和存储器部分,其中CPU和存储器之间的数据传输采用现有技术中常用的DMA(直接存储器存取)传输方式。具体在说,在这片音频芯片的存储器中设置了一个FAT文件系统。由于这个FAT文件系统,因此通过它可以完成对外部存储介质的管理,例如通过它读取外部的SD、MMC、NandFlash记忆卡中的数据。这种通过一个文件系统进行对外部存储介质的管理属于现有技术,类似于在通用计算机上通过操作系统完成对USB存储器的管理一样,在此不作赘述。
在这个MCU(微程序控制器)系统1中,通过DMA方式与存储器之间通信。本装置采用现有技术中常用的音频处理模块,支持midi、mp3、wave多种格式的音乐播放功能,也支持midi+wave、midi+mp3的播放。这些音乐数据会通过音频混音模块,然后输出到EQ(智能)模块、3D模块,然后输出到扬声器2。
这个MCU系统中还包括USB模块,这个音频处理芯片可以通过该模块与通用计算机(PC)之间进行数据传输。
对于存储在存储器中的文件系统而言,这个文件系统的结构示意图如图1所示。该FAT文件系统包括保留区、FAT区、根目录区、文件和目录数据区。其中,保留区采用和现有技术一样的方案,具有MBR、DBR等系统参数,而且在语言支持方面,采用了本发明提出的使FAT文件系统中支持多国语言的方法,使得这片音频处理芯片的文件系统能支持多国语言。FAT文件系统的编写属于现有技术,因此,与现有技术相同的部分在本文中不作赘述。
根据本发明,一方面,把Unicode转换库放在应用层。应用层通常有足够大的空间,因此把Unicode转换库放在应用层是一种容易实现的做法。另一方面,在编写文件系统时,采用了本发明提出的支持多国语言的方法,为FAT文件系统增加一个参数处理模块。具体的实现方法是,使用一个API(应用程序接口)接口方式作为这个参数处理模块,实现对Unicode编码支持,这个API有一个额外参数用于传递相应的Unicode。
例如,打开文件的API接口,使用现有技术可以描述为f_open(constchar*name,const char*mode),该函数包含两个参数,一个是待打开的文件名name,另一个是文件打开的方式mode。
而采用本发明的方法,要使文件系统能支持Unicode,需要在FAT文件系统中增加一个参数处理模块。这个模块用Unicode API实现,这个API和现有技术的类似,但是需要多增加一个参数,把接口修改为:
f_open(const char*name,const char*uname,cosnt char*mode)
在这里,添加一个参数uname用来传递待打开文件名字的Unicode编码。
例如,当需要创建一个涉及多国语言的新文件夹时,应用层根据编码转换库,完成Unicode编码和非Unicode编码的转换工作,然后将转换完的Unicode编码和Unicode编码并一起传入参数处理模块,由参数处理模块将解析过的编码数据传给FAT文件系统,因此Unicode编码对FAT文件系统是透明的。创建这样一个涉及多国语言的新文件夹所用的接口函数描述为:
UINT8 fn_mkdir(const SINT8*dirname,const SINT8*udirname)
其中,udirname用来传递所创建的文件夹的名字的Unicode编码。
又例如,当需要设置文件的属性而且涉及多国语言时,由应用层根据编码库,将Unicode编码转换为非Unicode编码,由参数处理模块将解析过的编码数据传给FAT文件系统。设置文件的属性所用的接口函数描述为:
UINT8 fn_setattr(const SINT8*filename,const SINT8*ufilename,UINT8 attr)
其中attr表示文件属性,这个属性在文件系统中有对应的宏定义:
#define F_ATTR_ARC 0x20 //普通存档文件
#define F_ATTR_DIR 0x10 //目录
#define F_ATTR_VOLUME 0x08 //磁盘卷标
#define F_ATTR_SYSTEM 0x04 //系统
#define F_ATTR_HIDDEN 0x02 //隐藏
#define F_ATTR_READONLY 0x01 //只读
另外,ufilename用来传递所创建的文件夹的名字的Unicode编码。
这样,应用层在设置文件属性时,同时传入对应的unicode、非unicode编码。当FAT文件系统按照既定的程序执行,需要用及unicode编码时,直接访问ufilename即可。也就是说,底层的文件系统不会直接调用到unicode编码,因此unicode编码对这样具有参数转换模块的文件系统而言是透明的。
这些函数构成一套Unicode API,这个API实现了参数处理模块的设计,因此FAT文件系统可以支持Unicode编码,由此实现FAT文件系统对多国语言的支持。
可见,采用本发明,编码转换库放在应用层,解决了因为编码转换库过大而难以放在FAT文件系统内的问题;通过参数处理模块可以有效的使得FAT文件系统支持Unicode编码,从而有效的支持多国语言。因此本发明非常适用于小型的FAT文件系统,例如嵌入式系统和单片机开发,使得这些不能容纳Unicode转换库的系统都可以支持多国语言。
这种采用了本发明提出的FAT文件中支持多国语言方法的FAT文件系统,本领域的技术人员都可以把它应用到其他场合中,例如应用到通用计算机或其他嵌入式开发中。本实施例仅用于支持本发明,本发明的保护范围应该由权利要求书限定。
Claims (6)
1、一种在FAT文件系统中支持多国语言的方法,其特征在于:在应用层设置Unicode编码转换库;在应用层完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传给FAT系统;FAT文件系统中的参数处理模块对所传入的编码进行解析。
2、如权利要求1所述的在FAT文件系统中支持多国语言的方法,其特征在于参数处理模块可以以Unicode应用程序调用接口形式实现。
3、一种使用如权利要求1所述的方法的装置,包括CPU和存储器,其特征在于存储器内包括一个FAT文件系统,该文件系统包括一个参数处理模块,这个参数处理模块用于当应用层传入Unicode编码和非Unicode编码,解析这些编码;当FAT文件系统使用多国语言时,应用层通过编码转换库完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。
4、如权利要求3所述的装置,其特征在于所述应用层包括一个Unicode编码转换库。
5、如权利要求3所述的装置,其特征在于还包括USB模块,用于将该装置与计算机相连。
6、如权利要求3所述的装置,其特征在于装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101306439A CN100397399C (zh) | 2005-12-16 | 2005-12-16 | 一种在fat文件系统中支持多国语言的方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101306439A CN100397399C (zh) | 2005-12-16 | 2005-12-16 | 一种在fat文件系统中支持多国语言的方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1776685A true CN1776685A (zh) | 2006-05-24 |
CN100397399C CN100397399C (zh) | 2008-06-25 |
Family
ID=36766177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101306439A Expired - Fee Related CN100397399C (zh) | 2005-12-16 | 2005-12-16 | 一种在fat文件系统中支持多国语言的方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100397399C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286908B (zh) * | 2008-05-30 | 2010-11-10 | 成都穿越集成电路设计有限公司 | 在数字媒体播放器和无线网络节点间无线通讯方法及装置 |
CN101393529B (zh) * | 2008-11-07 | 2011-01-12 | 用友软件股份有限公司 | 一种实现计算机软件多语言支持的方法 |
CN110286859A (zh) * | 2019-06-28 | 2019-09-27 | 中国海洋大学 | 基于fat文件系统的数据存储方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480867B1 (en) * | 1999-07-06 | 2002-11-12 | International Business Machines Corporation | System and method for managing filesystem objects in a multilingual distributed environment |
US6883007B2 (en) * | 2001-08-16 | 2005-04-19 | International Business Machines | Meta normalization for text |
CN1452058A (zh) * | 2002-04-20 | 2003-10-29 | 鸿富锦精密工业(深圳)有限公司 | 专利资料多语言文字显示方法及系统 |
-
2005
- 2005-12-16 CN CNB2005101306439A patent/CN100397399C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286908B (zh) * | 2008-05-30 | 2010-11-10 | 成都穿越集成电路设计有限公司 | 在数字媒体播放器和无线网络节点间无线通讯方法及装置 |
CN101393529B (zh) * | 2008-11-07 | 2011-01-12 | 用友软件股份有限公司 | 一种实现计算机软件多语言支持的方法 |
CN110286859A (zh) * | 2019-06-28 | 2019-09-27 | 中国海洋大学 | 基于fat文件系统的数据存储方法及装置 |
CN110286859B (zh) * | 2019-06-28 | 2020-04-14 | 中国海洋大学 | 基于fat文件系统的数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100397399C (zh) | 2008-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105339904B (zh) | 用于存储和检索数据的方法和系统 | |
US10614032B2 (en) | Quick filename lookup using name hash | |
US9678879B2 (en) | Set partitioning for encoding file system allocation metadata | |
CN101916228A (zh) | 带有数据压缩功能的闪存转换层及实现方法 | |
CN101063978A (zh) | 文件系统管理装置 | |
US9141626B2 (en) | Volume having tiers of different storage traits | |
CN102804168A (zh) | 在数据库系统中减少存储需求的数据压缩 | |
JP2007012060A (ja) | 逆階層構造を有するファイルシステム | |
MX2008011916A (es) | Descripcion y consulta de regiones separadas de almacenamiento flash. | |
CN101393529B (zh) | 一种实现计算机软件多语言支持的方法 | |
CN1825283A (zh) | 嵌入式操作系统硬件镜像启动优化的实现方法 | |
CN101535966A (zh) | 受限命名空间环境中的反向名称映射 | |
CN1655134A (zh) | 数据处理装置与操作系统进行数据交换的方法 | |
WO2014159383A2 (en) | File system operation on multi-tiered volume | |
CN110347673A (zh) | 数据文件加载方法、装置、计算机设备以及存储介质 | |
US20060184576A1 (en) | System and method for extensible metadata architecture for digital images | |
CN1900935A (zh) | 访问扇区数据的方法和系统 | |
CN110297781B (zh) | 一种基于写时复制来恢复apfs中被删除数据的方法 | |
CN1828538A (zh) | 嵌入式系统中直接从文件系统运行程序的实现方法 | |
CN1573747A (zh) | 阴影分页 | |
CN100397399C (zh) | 一种在fat文件系统中支持多国语言的方法及其装置 | |
CN1329309A (zh) | 操作系统的多语言用户接口 | |
CN1200354C (zh) | 自动压缩/解压缩文件系统 | |
CN1889189A (zh) | 支持分区的闪存存贮器件 | |
CN1776687A (zh) | Fat文件系统中文件分割的方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080625 Termination date: 20111216 |