CN100397399C - 一种在fat文件系统中支持多国语言的方法及其装置 - Google Patents

一种在fat文件系统中支持多国语言的方法及其装置 Download PDF

Info

Publication number
CN100397399C
CN100397399C CNB2005101306439A CN200510130643A CN100397399C CN 100397399 C CN100397399 C CN 100397399C CN B2005101306439 A CNB2005101306439 A CN B2005101306439A CN 200510130643 A CN200510130643 A CN 200510130643A CN 100397399 C CN100397399 C CN 100397399C
Authority
CN
China
Prior art keywords
unicode
file system
fat file
coding
processing module
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.)
Expired - Fee Related
Application number
CNB2005101306439A
Other languages
English (en)
Other versions
CN1776685A (zh
Inventor
孙丰强
赵原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2005101306439A priority Critical patent/CN100397399C/zh
Publication of CN1776685A publication Critical patent/CN1776685A/zh
Application granted granted Critical
Publication of CN100397399C publication Critical patent/CN100397399C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机原理领域。本发明提出一种在FAT文件系统中支持多国语言的方法,其中,在文件系统中增加参数处理模块,把Unicode转换库放在应用层。当FAT文件系统需要使用Unicode编码时,应用层完成编码之间的转换并把编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。本发明可以有效的使得FAT文件系统支持Unicode编码,从而有效的支持多国语言,特别适用于嵌入式系统和单片机的开发。

Description

一种在FAT文件系统中支持多国语言的方法及其装置
技术领域
本发明涉及计算机原理领域,具体涉及在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*dimame,const SINT8*udimame)
其中,udimame用来传递所创建的文件夹的名字的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编码和非Unicode编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。
4.如权利要求3所述的装置,其特征在于所述应用层包括一个Unicode编码转换库。
5.如权利要求3所述的装置,其特征在于还包括USB模块,用于将该装置与计算机相连。
6.如权利要求3所述的装置,其特征在于装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
CNB2005101306439A 2005-12-16 2005-12-16 一种在fat文件系统中支持多国语言的方法及其装置 Expired - Fee Related CN100397399C (zh)

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 CN1776685A (zh) 2006-05-24
CN100397399C true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286908B (zh) * 2008-05-30 2010-11-10 成都穿越集成电路设计有限公司 在数字媒体播放器和无线网络节点间无线通讯方法及装置
CN101393529B (zh) * 2008-11-07 2011-01-12 用友软件股份有限公司 一种实现计算机软件多语言支持的方法
CN110286859B (zh) * 2019-06-28 2020-04-14 中国海洋大学 基于fat文件系统的数据存储方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
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
US20030046257A1 (en) * 2001-08-16 2003-03-06 International Business Machines Corporation Meta Normalization for text
CN1452058A (zh) * 2002-04-20 2003-10-29 鸿富锦精密工业(深圳)有限公司 专利资料多语言文字显示方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
US20030046257A1 (en) * 2001-08-16 2003-03-06 International Business Machines Corporation Meta Normalization for text
CN1452058A (zh) * 2002-04-20 2003-10-29 鸿富锦精密工业(深圳)有限公司 专利资料多语言文字显示方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Qtopia的中文输入法设计与实现. 龙中花,廖建眀.成都信息工程学院学报,第19卷第4期. 2004
基于Qtopia的中文输入法设计与实现. 龙中花,廖建眀.成都信息工程学院学报,第19卷第4期. 2004 *

Also Published As

Publication number Publication date
CN1776685A (zh) 2006-05-24

Similar Documents

Publication Publication Date Title
CN100504854C (zh) 文件管理方法
CN105339904B (zh) 用于存储和检索数据的方法和系统
CN101535966B (zh) 受限命名空间环境中的反向名称映射
US9141626B2 (en) Volume having tiers of different storage traits
CN102804168A (zh) 在数据库系统中减少存储需求的数据压缩
CN102722372A (zh) 一种通过分类配置自动生成代码的方法及系统
CN102566990B (zh) 一种在Java应用中进行数据操作的方法及装置
CN101063978A (zh) 文件系统管理装置
CN104160397A (zh) 位置独立文件
CN110347673A (zh) 数据文件加载方法、装置、计算机设备以及存储介质
CN101894028B (zh) Linux内核镜像数据支持多种CPU的实现方法及装置
CN101393529B (zh) 一种实现计算机软件多语言支持的方法
WO2014159383A2 (en) File system operation on multi-tiered volume
CN100449545C (zh) 访问扇区数据的方法和系统
CN104765849A (zh) 一种获取拷贝数据来源信息的方法和系统
CN100397399C (zh) 一种在fat文件系统中支持多国语言的方法及其装置
WO2006088496A2 (en) System and method for extensible metadata architecture for digital images
CN110297781B (zh) 一种基于写时复制来恢复apfs中被删除数据的方法
CN102236609B (zh) 存储设备及其访问方法
GB2541916A (en) Method of operating data memory and device utilizing method
EP3236368A1 (en) Encoding processing program, encoding processing device, encoding processing method, decoding processing program, decoding processing device, and decoding processing method
JP2000207260A (ja) ハンドヘルド装置のデ―タ記憶およびデ―タ取出しのための方法および装置
CN101303667A (zh) 建立磁盘空簇表及查找磁盘空簇的方法和装置
CN102375781A (zh) 数据保护方法、存储器控制器及可携式存储器储存装置
CN101369953A (zh) 一种字库的网络分发方法及系统

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