嵌入式文件系统比较

合集下载

几种文件系统的原理与对比

几种文件系统的原理与对比

几种文件系统的原理与对比文件系统是计算机存储管理的一种重要方式,它负责组织和管理计算机文件的存储、命名、访问和保护等操作。

不同的文件系统采用了不同的策略和原理来管理文件的组织和存储,下面将对几种常见的文件系统原理与对比进行详细介绍。

1. FAT文件系统(File Allocation Table)FAT文件系统是最早使用的文件系统之一,它采用了FAT表的概念来管理磁盘上的文件。

在FAT表中,每个文件都分配了一个表项来记录其存储位置信息。

FAT文件系统的优点是简单易用,对于小型存储介质和嵌入式设备较为合适;缺点是文件系统效率低下,不适用于大容量存储设备。

2. NTFS文件系统(New Technology File System)NTFS文件系统是微软开发的,用于Windows操作系统的文件系统,它采用了B+树的索引方式来管理文件。

NTFS的优点在于支持大容量存储设备,具有更高的效率和更好的稳定性,同时支持文件加密、压缩和访问控制等高级功能。

3. EXT文件系统(Extended File System)EXT文件系统是Unix和Linux操作系统常用的文件系统,目前已经发展到EXT4版本。

EXT文件系统使用了索引节点(Inode)的概念来管理文件,每个文件都有一个索引节点,记录了文件的属性和数据块的地址信息。

EXT4文件系统在性能、兼容性和可靠性方面有了很大的改进,支持更大的文件和更高的性能。

4. HFS+文件系统(Hierarchical File System Plus)HFS+文件系统是苹果公司开发的文件系统,用于Macintosh电脑的操作系统。

HFS+文件系统支持大文件和Unicode编码,并且具有日志功能来提高文件系统的可靠性。

HFS+文件系统是一种面向大容量存储的文件系统,适用于苹果设备的特定要求。

在对比几种文件系统时,可以从以下几个方面进行比较:1.空间管理:文件系统应能有效地管理存储设备的空间,提供高效的存储分配和回收策略。

两种开源嵌入式操作系统的比较

两种开源嵌入式操作系统的比较
e b dd d m e e op mfng y tm t i pr ve f ce c . Ths e i sse o m o e i in y i pa e d s rb s he u ̄e mor m au e ha t e WO po ulr p r e c e t c i nt e t r t n h t p a
第1 9卷 第 2期
2 011年 4月







Vo _9 No. l1 2 Ap .2 1 r 01
C mo tr a d no main e h oo y o ue n If r t T c n lg o
文章 编 号 :0 5 12 (0 )2 o6 — 3 10 — 2 8 2 1 0 一 0 4 0 1
两种 开源嵌 入 式 操 作 系统 的 比较
王 超, 孟祥娟 , 黄宇博
805) 30 4 ( 新疆 医科 大学高等职业技术学院, 鸟鲁木 齐市

要: 由于嵌 入 式 系统 处 理 能力 大 幅度 提 升 , 求的 功能 也越 来越 复 杂 , 别 是 在 网络 以及 多任 务方 面。 单 片机 式的 开 需 特
可 以方便 和 P C机共享 数 据 ,也越 来越 需 要 嵌人式 系 统 支持常用 的文 件系统 。
嵌 入 式 操作 系统 实 际 应 用 中最 常 出 问题 的地 方 有: 系统移植 、 进程 调度 和文件 系统 支持 。这些 问题 如 果处 理不好 , 就发 挥不 了嵌 入式 操作 系统 的优 势 , 至 甚
e be de o rtn yse :uC ̄n x n e s m d d pea g s tm i u a d Co .R eae v l pme o fcltt eee e a d s lc on ofsa ltd de eo ntt a i a e r frnc n ee t tf i i

嵌入式 NAND flash文件系统JFFS2和YAFFS比较

嵌入式 NAND flash文件系统JFFS2和YAFFS比较

嵌入式NAND flash文件系统JFFS2和YAFFS比较JFFS是由瑞典的Axis Communications Ab公司开发的(1999,以GNU发布),针对flash设备的特性为嵌入式设备开发的JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏块管理等功能. 这两种文件系统属于LFS(Log-structured File System).这种文件系统的特点是一旦数据出错,容易恢复,但是系统运行是需要占用一定的内存空间,这些空间就是用来存储”log”的.JFFS的缺点就是加载时间太长,因为每次加载都需要将FLASH上的所有节点(JFFS的存储单位)到内存,这样也占用了可观的内存空间.除此之外,”circle log”设计使得在对文件数据进行所有的数据都会被重写,这样造成不必要的时间,同时也会减少FLASH的寿命.JFFS2对JFFS1作了些改进,比如所需的内存变少了,垃圾回收机制也优化了.针对JFFS1,JFFS2的缺点,JFFS3出现了.YAFFS1 ">“Yet Another Flash File System”作者是新西兰的Charles Manning为一家名叫Alpha one 的公司(/)设计的,是第一个为NAND Flash设计的文件系统.共两个版本YAFFS1 和YAFFS2.YAFFS1支持512Bytes/Page的NAND Flash;后者YAFFS2支持2kBytes/Page的NAND Flash. YAFFS文件系统也属于LFS.跟其他文件系统比较,它具有更好的可移植性,甚至可以使用在没有操作系统的设备上(called “YAFFS/Direct”). YAFFS采用模块化设计,虽然最初是用在linux系统上的,但是也已经移植到其他系统比如wince.还有个突出的优点是它在mount的时候需要很少的内存.(如果是小页―512byte/page,每1MByte NAND大约需要4KBytes内存;大页需要大概1KBytes RAM/1MByte NAND) JFFS与YAFFS比较,两者各有长处. 一般来说,对于小于64MBytes的NAND Flash,可以选用JFFS;如果超过64MBytes,用YAFFS比较合适.由于嵌入式系统自身存在一些特殊要求,使得一些传统的文件系统(如FAT、EXT2等) 并不十分适合。

嵌入式Linux中常见的文件系统及特点

嵌入式Linux中常见的文件系统及特点

嵌⼊式Linux中常见的⽂件系统及特点1、Linux可⽀持的⽂件系统有多种,但是这么多种的⽂件系统都是基于Linux内核所提供的⽂件系统VFS的接⼝API。

因此对于Linux内核级别实现的⽂件系统只有VFS虚拟⽂件系统; 其余实现的⽂件系统都是调⽤VFS⽂件系统的API更上⼀层实现的;2、Linux⽂件系统的组成结构: 1、⽤户层:⽤户层向外提供Linux内核所⽀持⽂件系统的VFS的API接⼝ 内核层:内核实现了所说的各种⽂件系统 驱动层:驱动层是块设备的驱动程序 硬件层:硬件层是不同⽂件系统⽀持的存储器;3、Linux启动时的⽂件系统: 硬件上电启动,各项硬件初始化后,第⼀个启动的⽂件系统时RootFS根⽂件系统,如果说根⽂件系统没有起来,系统出现异常、将重启;4、常⽤的⽂件系统运⾏、存储设备有: DRAM、SDRAM以及ROM其中常使⽤flash;5、根据不同的存储介质,常见的⽂件系统有: 基于Flash(Nor、Nand)的⽂件系统有: jffs2:可读写,数据压缩、⽀持哈希表的⽂件系统,掉电保护;缺点:不适合使⽤在⼤容量的Nand Flash中,内存使⽤量太⼤极⼤降低数据操作速度; yaffs:读写速度快,占⽤内存⼩,实现内存访问异常处理;混合的垃圾回收算法;特别适合嵌⼊式设备使⽤;跨平台、⾃带Nand 芯⽚驱动 cramfs:只读的⽂件系统,执⾏速度快,内容⽆法扩充;⽂件系统健壮; romfs:简单紧凑、只读、不⽀持动态擦写;较多使⽤在uclinux系统上; 基于RAM存储介质的⽂件系统: ramdisk:将⼀部分固定⼤⼩的内存当做分区使⽤,不能真正算的上实际的⽂件系统,更像是⼀种机制,将实际的⽂件系统加载到内存中;将⼀些经常被访问的⽽⼜不会更改的⽂件放⼊到内存中,达到提⾼系统效率的⽬的;同时还负责将内核镜像与⽂件系统⼀块加载到内存中; ramfs/tmpfs :基于内存的⽂件系统,⼯作于虚拟⽂件系统层,可以创建多个⽂件系统,可以指定每个⽂件系统最⼤使⽤内存;这种⽂件系统将所有的⽂件都放在RAM中,既可以提⾼读写速度,也可以避免对flash⼤量的读写操作;⽂件系统不可以格式化,占⽤内存⼤⼩可以指定; ⽹络⽂件系统: NFS:是⼀种基于⽹络共享技术,可以在不同平台、不同机器、不同操作系统上实现⽂件共享、⽂件传输;在嵌⼊式Linux系统初始开发阶段可以⾮常⽅便⽂件传输、⽂件修改;地址异常进⼊模式描述0x0000,0000复位管理模式电平复位0x0000,0004未定义指令异常未定义模式遇到不能处理的指令,⽆法识别的指令0x0000,000c 软件中断管理模式异常发⽣时CPU处理的步骤:R13(sp),R15(PC)1、保存当前执⾏位置:LR寄存器(R14)2、保存当前执⾏状态:CPSR3、寻找中断⼊⼝,中断向量表:PC寄存器找向量地址4、执⾏中断处理完成:5、中断返回,继续执⾏:R14 <exception_mode> = return linkSPSR<exception_mode>=CPSRCPSR[4:0] =exception mode number;/* 处理器⼯作模式控制位 */CPSR[5]=0; /* 使⽤ARM指令集 */If<exception_mode> == reset or FIQ thenCPSR[6]= 1;/* 屏蔽快速中断FIQ */CPSR[7]=1; /* 屏蔽外部中断IRQ */PC=exception vector address;复位异常中断处理程序的主要功能:1、设置异常中断向量表:2、初始化数据栈和寄存器:3、初始化存储系统MMU:4、初始化关键IO设备:5、使能中断:6、处理器切换到合适的模式:7、初始化C变量跳转到应⽤程序执⾏:R14<SVC> = 设置相应的值;SPSR<SVC> = 设置相应的值;CPSR[4:0]=0b10011;/* 进⼊特权模式 */CPSR[5]=0; /* 使⽤ARM指令集 */CPSR[6] =1; /* 禁⽌相关关闭FIQ */CPSR[7] =1; /* 禁⽌IRQ */If high vectors configured thenPC=0xffff,0000;ElsePC= 0x0000,0000;其余的异常以此类推;异常的优先级:1、Reset: 优先级1(最⾼)2、Data abort:23、FIQ:34、IRQ:45、Prefetch abort:56、SWI或者undefined instruction:6(最低),软件中断异常或者未定义指令异常ARM硬件接⼝:1、程序的链接地址和程序地址:ld程序链接地址程序链接地址:是程序运⾏的起始地址;程序地址:是程序保存在硬盘中的地址;2、呵呵呵。

嵌入式操作系统VxWorks和Linux对比

嵌入式操作系统VxWorks和Linux对比

较之Vxworks系统因为我先前的工作主要是基于Vxworks的,所以在此对Linux系统和Vxworks系统做一个简单的比较,这个比较并非完全技术层面,而我对于Linux的了解也仅仅是“刚刚上路”,所以就是代表我的一家之言,仅供参考。

Linux和Vxworks相比,技术上有两个比较吸引人的特点,第一是内存管理,使得用户进程之间地址空间独立,从而可以避免应用程序漏洞导致系统崩溃的问题,而在基于Vxworks的系统中,内存操作相关问题,在系统致命问题中占有很高的比例。

第二是应用程序动态执行,这极大的提升系统扩展性能,减小现网运行设备的升级维护压力,电信级设备中,这应该是一项重要的性能指标。

当然,理论上Vxworks系统也能实现。

下面的表格是两者的综合比较。

linux:linux其实我没有什么资格来说,因为以前一直是在使用之中,没有研究过他的内核,不过最近打算看看内核部分。

linux不是一个实是的操作系统,首先我们要搞清楚这一点。

它的中断出发的时候是放如到一个管理结构中去,然后由仲裁机构去判断让谁先处理。

所以在处理中存在一个处理的延时。

在对反应时间有严格要求的场合,linux是不能够胜任的。

linux 的好处是代码公开,你可以去学习,研究,改进它。

这个比windows 要好的多。

对驱动的支持也比较好,显示那部分用x11就可以了。

vxworks:vxworks 是这几种操作系统中最贵的一个,好象要20万左右的吧,具体不知道也没有买过,源码不公开,主要用于商业领域和科研领域。

飞到火星去的探测器上安装的就是这个系统。

实时性好。

linux,vxworks,wince均是可以用于嵌入式领域的操作系统,其功能跟PC上的windows xp之类的作用类似,均是为了方便管理硬件和软件而使用的。

而ARM,是一家公司的名称,也是一大类型微控制器/微处理器的统称(均是以ARM公司提供的CPU核为基础开发)。

在ARM之外,还有MIPS,PowerPC等几种类型的CPU用在嵌入式领域,你可以把它们看作是PC平台的CPU,只是它们的使用领域不是桌面电脑而已,并集成了很多功能模块。

三种开源嵌入式操作系统的比较

三种开源嵌入式操作系统的比较

;i●■三种开源嵌入式操作系统的比较苟军年(兰州交通大学自动化与电气工程学院甘肃兰州730070)信息科掌【捕要】嵌入式操作系统的性能和选择是大多数嵌入式系统开发都要面临的问题。

比较3种开源嵌入式操作系统嵌入式L i nu x、Q N x和ecos,分析3种开源操作系统的主要性能,并根据分析结果指出各自的适用领域.【关键词】嵌入式操作系统RT O S嵌入式系统中图分类号:TP316.2文献标识码:A文章编号i1671--7597(2008)1110061--01一、三种开曩E O S介绍(一)嵌入式L i M U X.L i n ux是一个类似于U ni x的操作系统,它已经是最为流行的一款开放源代码的操作系统。

嵌入式L i nux由于其源代码公开,人们可以任意修改来满足自己的应用。

像大多数自由软件一样,L i nux遵从G PL,因此使用它无须为每例应用交纳许可证费。

Li nux下的应用软件大量可用,其中大部分都遵从GPL,是开放源代码和免费的。

稳定是L i nu x本身具备的一个很大优点。

内核精悍,运行所需资源少,支持的硬件数量庞大等都是Li nux所具备的.(二)O N X∞。

Q N)【O S是由0N X软件系统有限公司开发的一套实时操作系统,它是一个实时的、可扩展的操作系统,部分遵循了PO S I X( Por t abl e O per a t i ng S ys t em I nt er f ace of U ni x)相关标准,可以提供一个很小的微内核及一些可选择的配合进程。

其内核仅提供4种服务:进程调度、进程阃通信、底层网络通信和中断处理。

(三)e C os。

e C os(e m be dde d C onf i gur a bl e oper a t i ng syst em),即嵌入式可配置操作系统。

它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。

其最大特点是配置灵活,采用模块化设计,包括内核、c语言库和底层运行包在内的核心部分由不同的组件构成。

比较嵌入式linux vxworks wince

比较嵌入式linux vxworks wince
让我们逐条分析评价Linux和WinCE/Windows的优缺点。
1.支持多种硬件平台由于嵌入式设备硬件平台的多样性,CPU芯片的快速更新,嵌入式操作系统要求支持常用的嵌入式CPU,如X86, ARM, MIPS, POWERPC等,并具有良好的可移植性。另外还需要支持种类繁多的外部设备。Linux支持以上几乎所有的主流芯片,并且还在不断的被移植到新的芯片上。而在这方面,WinCE显然差得很远。
2.占有较少的硬件资源由于多数嵌入式系统具有成本敏感性,处理器速度较低 ,存储器空间较少,这要求嵌入式OS体积小,速度快。Linux体系结构比较灵活,易于裁减,可以小到2M flash,4M RAM。而WinCE对资源的要求更高。
3.高可定制性由于不同的嵌入式应用对系统要求各不相同,这要求嵌入式OS具备高可定制性,能够根据需要方便的增加和减少各项功能模块。这一点对于嵌入式领域至关重要,而Linux由于图形系统不在内核中,且支持模块机制,内核可根据需要加入或去掉功能。其外围工具拥有众多选择,更由于可以自由修改源代码,具有极强的可定制性。而WinCE/Windows根本无法做到这一点。
4.具有实时处理能力实时应用分为硬实时和软实时两大类,嵌入式OS需要明确是否支持实时和支持哪一类实时应用,需要提供最坏情况响应时间为多长。Linux和WinCE/Windows最初设计时都没有考虑实时应用,但众多的实时Linux项目已使Linux具备了硬实时和软实时处理能力,硬实时有RT-Linux和RTAI,而2.6中加入了可抢占核心,使得Linux具备了软实时处理能力,此外还有Timsys和Montavista等实时Linux实现。Linux自由开发模式的优点得到了充分的体现。Windows虽然也有第三方提供类似于RT-linux的实时功能,但由于微软未提供这方面的支持,也由于Windows可靠性不能满足要求,很少有人在实时领域使用Windows。但RT-linux已经在美国航天部门,印度军方等得到了广泛应用。还有Montavista,Timsys的实时Linux都有很多成功案例。

单片机嵌入式操作系统选择指南 适合你的系统

单片机嵌入式操作系统选择指南 适合你的系统

单片机嵌入式操作系统选择指南适合你的系统在嵌入式系统领域,单片机是一种重要的组成部分,而选择合适的操作系统对于单片机的功能和性能起着决定性的作用。

本文将介绍一些常见的单片机嵌入式操作系统,并针对不同应用场景提供一些建议,以帮助选择适合你的系统。

一、嵌入式操作系统的重要性嵌入式系统通常用于控制和管理各种设备,如智能家居、医疗设备、交通工具等。

选择合适的嵌入式操作系统可以提升系统的稳定性、安全性和性能。

以下是一些常见的嵌入式操作系统。

二、常见的嵌入式操作系统1. 实时操作系统(RTOS)实时操作系统(RTOS)是一种专门设计用于处理实时任务的操作系统。

它具有以下特点:高度可靠、响应时间短、实时性强。

常见的RTOS有嵌入式Linux、FreeRTOS、uC/OS等。

2. 裸机编程裸机编程是指直接在单片机上编写程序,不依赖于操作系统。

这种方式效率高,资源占用少,但对开发者的要求较高。

3. 嵌入式Linux嵌入式Linux是一种基于Linux内核的操作系统,具有强大的功能和广泛的应用领域。

它支持多线程、网络连接、文件系统等特性,适用于对功能要求较高的嵌入式系统。

4. uC/OSuC/OS是一种采用优先级调度算法的实时操作系统,具有较小的内存占用和快速的响应时间。

它适用于对实时性要求较高的系统,如工业自动化和航空航天。

5. FreeRTOSFreeRTOS是一种开源的实时操作系统,具有小巧、高效、可靠的特点。

它适用于资源受限、对实时性要求较高的系统,如传感器节点和嵌入式设备。

三、选择适合的操作系统在选择嵌入式操作系统时,需要考虑以下几个因素:1. 功能需求首先需要明确系统的功能需求,包括任务调度、网络连接、文件系统等。

根据需求选择适合的操作系统。

2. 系统的资源限制考虑系统的处理能力、内存大小等资源限制。

对于资源受限的系统,选择轻量级的操作系统或裸机编程可能更为合适。

3. 开发人员的经验和技术开发人员的经验和技术能力对选择操作系统也起着关键的作用。

几种嵌入式实时操作系统的分析与比较

几种嵌入式实时操作系统的分析与比较

⼏种嵌⼊式实时操作系统的分析与⽐较VxWorks、µClinux、µC/OS-II和eCos是4种性能优良并被⼴泛应⽤的实时操作系统。

本⽂通过对这4种操作系统的主要性能进⾏分析与⽐较,归纳出它们的选型依据和适⽤领域。

1 4种操作系统的介绍(1)VxWorksVxWorks是美国WindRiver公司的产品,是⽬前嵌⼊式系统领域中应⽤很⼴泛,市场占有率⽐较⾼的嵌⼊式操作系统。

VxWorks实时操作系统由400多个相对独⽴、短⼩精悍的⽬标模块组成,⽤户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接⼝)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的⽤户接⼝,在核⼼⽅⾯甚⾄町以微缩到8 KB。

(2) µC/OS-IIµC/OS-II是在µC-OS的基础上发展起来的,是美国嵌⼊式系统专家Jean J.Labrosse⽤C语⾔编写的⼀个结构⼩巧、抢占式的多任务实时内核。

µC/OS-II 能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执⾏效率⾼、占⽤空间⼩、实时性能优良和可扩展性强等特点。

(3)µClinuxµClinux是⼀种优秀的嵌⼊式Linux版本,其全称为micro-control Linux,从字⾯意思看是指微控制Linux。

同标准的Linux相⽐,µClinux的内核⾮常⼩,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强⼤的⽹络功能、出⾊的⽂件系统⽀持、标准丰富的API,以及TCP/IP⽹络协议等。

因为没有MMU内存管理单元,所以其多任务的实现需要⼀定技巧。

(4)eCoseCos(embedded Configurable operating system),即嵌⼊式可配置操作系统。

pc式与嵌入式比较

pc式与嵌入式比较

一直以来,关于硬盘录像‎机将以嵌入式‎还是PC式为‎主的争论就不‎绝于耳,大家目前已形‎成一个共识,PC式DVR‎虽然功能强大‎,使用方便,但结构不合理‎,容易死机(非正规大厂设‎计生产);而嵌入式DV‎R虽然结构合‎理,不易死机,但操作繁琐,功能简单,现场和回放效‎果都不理想,因此目前两类‎产品各自占据‎自己的市场。

由于大多数用‎户对DVR内‎部硬软件结构‎不太清楚,因而形成了一‎些错误概念,例如认为嵌入‎式DVR脱离‎P C平台,绝对稳定,不死机等等。

其实无论PC‎式还是嵌入式‎,它都是一个计‎算机系统,离不开构成计‎算机系统的三‎大主要要素,CPU主控系‎统,OS操作系统‎和APP 应用‎软件。

PC式DVR‎选用的是In‎t el X86系列C‎P U和微软W‎i ndows‎操作系统;而嵌入式用的‎则是嵌入式C‎P U和实时操‎作系统(RTOS)。

我们实际生活‎中所遇到的计‎算机系统太多‎了,小到手机、PDA,大到探索者火‎星探测器等等‎,不胜枚举,只要是计算机‎系统就有死机‎的可能,无非槪率大小‎而已,例如我们的手‎机就有可能死‎机。

根据不同应用‎选用合适的C‎P U系统及操‎作系统是产品‎设计者的重要‎工作,犹如做衣服,一定要量体裁‎衣,大了不行,小了更不行,目前我们DV‎R市场就存在‎着这种情况。

下面就两类D‎V R的技术特‎点和各自优势‎以及应用情况‎做一个分析对‎比,方便大家在工‎程应用中选择‎相应的设备。

目前绝大多数‎D VR应用都‎以单机工作为‎主,所以一个最基‎本要求就是预‎览和回放图像‎质量必须高。

这一点PC式‎D VR占有绝‎对优势,因为它们采用‎X VGA显示‎模式,最大支持10‎24×768的显示‎分辨率,85Hz以上‎的刷新率;而嵌入式DV‎R大多采用带‎O SD功能的‎画面分割器芯‎片方案,最大显示分辨‎率只有704‎×576,刷新率一般低‎于70Hz.;而且XVGA‎输出采用三原‎色分离的显示‎控制模式,优于嵌入式D‎V R所用的D‎/A转换成复合‎视频信号的方‎式;再加之PC式‎D VR的CR‎T显示器支持‎高刷频率(85HZ),逐行扫描,而大多数嵌入‎式所使用的V‎i deo监视‎器只支持隔行‎扫描,低刷新频率(50HZ),所以其图像质‎量无论预览还‎是回放都低于‎P C式DVR‎,许多工程商在‎使用了嵌入式‎D VR都有同‎感。

不同文件系统的比较

不同文件系统的比较

几种文件系统比较嵌入式系统中比较常用的文件系统为JFFS、JFFS2、CRAMFS和YAFFS。

J f f s2:日志闪存文件系统版本2(J o u r n a l l i n g F l a s h F i l e S y s t e m v2)JFFS2主要应用于NOR Flash,可读写,支持数据压缩,安全保护等特点。

存储空间已满或接近满时,JFFS2文件系统的运行速度却由于垃圾收集的原因而放慢。

不适合用于NAND Flash,NAND Flash的容量一般比较大,JFFS2文件系统为维护日志节点所占用的内存空间也迅速增大,因此JFFS2在挂载时需要很长时间来扫描整个FLASH的内容,用以找出所有的日志节点并建立文件结构,这样就会极大的降低系统的运行效率。

y a f f s:Y e t A n o t h e r F l a s h F i l e S y s t e myaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的日志型文件系统。

不支持数据压缩,速度快,挂载时间很短,对内存的占用较小。

支持跨平台。

yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API。

yaffs仅支持小页(512 Bytes) NAND闪存,yaffs2可支持大页(2KB) NAND闪存。

同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。

C r a m f s C o m p r e s s e d R O M F i l e S y s t e m是一种只读的压缩文件系统。

它也基于MTD驱动程序。

降低了系统成本。

以压缩方式存储,在运行时解压缩,不支持应用程序以XIP方式运行,需要将程序拷到RAM里去运行,它的效率高,速度快,其只读的特点保护文件系统免受破坏,提高了系统的可靠性。

R o m f s文件系统是一种简单的只读文件系统,不支持动态擦写,按顺序存放数据,因而支持应用程序以XIP片内运行方式运行,在系统运行时,节省RAM空间。

两种嵌入式操作系统的比较

两种嵌入式操作系统的比较

系统 的 各种 资 源 。其 中用 户 指 的是 系统 程 序 之 上 的所 有 软件 。 所谓 合 理有 效 的方 法 , 的 就是 操 作 系统 如 何协 调 指 支持 文 件 系统 ,方 便 组织 文 件并 易于对 其 规 范化 操 作 。
调 度模块 首先 用 变量 0s c T BHi 曲Rd 记 录 当前 最 高级 就 y
嵌 入式 操 作 系统 是嵌 入 式 系 统软 硬 件 资源 的 控制 中 绪任务的T CB地址 ,然 后调 用 OS T K S ) — AS _ W(函数来 进
心 ,它 以尽 量 合 理 的 有效 方 法组 织 多 个 用 户共 享嵌 入式 行任 务切 换 。
从 八 十 年代 起 ,国 际上 就 有一 些 I 织 、公 司 ,开 剥夺 实时 内 核 的 实时 操 作 系统 。其 内 核 提供 任 务 调 度与 T组 始进 行 商 用嵌 入式 系 统 和 专用 操 作 系 统 的研 发 。这 其 中 管理 、 间管 理 、 务 间 同步 与通 信 、 时 任 内存 管理 和 中断 服 涌 现 了一 些 著 名 的 嵌 入 式 系 统 ,如 Mir s f 公 司 的 务 等 功 能 。 co ot WiC n E和 Wi R vryt 公司 的 V Wok 就 分 别是 非 n ieS s m d e x rs B l u 是 一 种 优 秀的 嵌 入 式 Lnx Ci x n iu 版本 。 Ciu 是 Bl x n 实时 和 实 时嵌 入 式 操 作 系统 的 代 表 。但 是 商 用产 品的 造 Mi oC no—iu 的缩 写 。同标 准 Ln x u e c —o rl n x r L iu r ,它集 成 S 价 都 十 分 昂贵 ,用 于 一般 用 途 会 提高 产 品 成 本从 而 失 去 了标 准 Ln x iu 操作 系统 的稳 定 性 、 大 网络 功 能和 出色 的 强 竞争力。 文 件 系统 等 主 要优 点 。但 是 由于 没 有 MMU 内存 管 理单 ( B / S BC i x 作 系统是 两 种性 能优 良源 码 公 开 元 ) CO  ̄ u l u 操 n ,其 多 任 务 的 实现 需 要 一 定技 巧 。

嵌入式操作系统ucos与linux比较

嵌入式操作系统ucos与linux比较

ucos2与linux的比较随着嵌入式计算机技术的迅猛发展,嵌入式操作系统的应用领域逐步扩大,嵌入式计算机已经深入到人类日常生活和生产的各个角落。

这次通过阅读相关资料,进一步加深了对嵌入式操作系统的了解,以下着重对ucos2和linux进行比较,谈谈对嵌入式操作系统的理解。

首先linux和ucos都是免费使用,源代码公开的操作系统,可供用户自由进行裁剪,添加,移植。

Linux是分时多任务多用户操作系统,ucos是实时多任务操作系统。

两者都可运行于多种平台,适应性好,linux不仅可以运行于32位机,也可运行于64位机,单核,多核也同样适用。

uCOS 2已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。

内核Ucos内核包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分,能够维持系统基本工作的部分都在这里。

而linux内核包括进程管理,内存管理,设备管理,网络管理四部分。

Ucos没有提供输入输出管理,文件系统,网络等服务。

这些功能可由用户自行添加实现。

Ucos内核支持抢占,即在进行内核服务函数时,允许被中断服务中断,并且中断结束后可以重新进行任务调度。

Linux是非抢占式内核,实时性差。

当进程运行在用户态时,可以被优先级更高的进程抢占,但当他进入核心态时,优先级再高也不能抢占它。

实时性实时任务分为软实时和硬实时,硬实时对响应时间要求较高,且时间不被满足时会导致致命的错误,软实时随对响应时间有要求,但不是强制,不会给系统造成致命错误。

Ucos是一个基于优先级调度的抢占式的实时内核,不仅内核支持抢占,同时支持任务的抢占式调度,优先级低的任务可以被高优先级任务抢占,也可被中断服务抢占。

这就保证了系统可以尽可能快的对外部事件做出响应。

通用Linux主要考虑调度的公平性和吞吐量等指标,尽管系统可以通过把实时事件赋予高优先级的方法来实时响应实时事件,但效果有限,对于响应时间要求比较高的硬实时任务,无法满足要求。

嵌入式GUI方案比较

嵌入式GUI方案比较

嵌入式GUI 方案比较一.嵌入式GUI 概况概况随着嵌入式系统的广泛应用,PDA 、机顶盒、DVD/VCD 播放机及WAP 手机已经迅速普及。

图形用户界面(GUI )的广泛流行,是当今计算机技术的重大成就之一。

嵌入式GUI 为嵌入式系统提供了一种应用于特殊场合的人机交互接口。

它极大地方便了非专业用户的使用,因此实时嵌入式系统对GUI 的需求越来越明显,而这一切均要求有一个高性能、高可靠的GUI 的支持。

的支持。

综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对 GUI 的基本要求包括:的基本要求包括:1.轻型、占用资源少。

.轻型、占用资源少。

2.高性能。

.高性能。

3.高可靠性。

.高可靠性。

4.可配置。

.可配置。

二.目前,主流的嵌入式Linux 系统的GUI 解决方案有:解决方案有:1. MicroWindows MicroWindows 是一个著名的开放源码的嵌入式GUI 软件。

MicroWindows提供了现代图形窗口系统的一些特性。

MicroWindows MicroWindows APIAPI 接口支持类Win32 API ,接口试图和Win32完全兼容。

它还实现了一些Win32用户模块功能。

MicroWindows 采用分层设计方法,以便不同的层面能够在需要的时候改写,基本上用本上用 C 语言实现。

MicroWindows 能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。

这样,MicroWindows 就显得十分小巧,便于移植到各种硬件和软件系统上。

MicroWindows 已经支持已经支持 Intel 16位和32位CPU 、MIPS R4000 以及以及 ARM 芯片;但作为一个窗口系统,该项目提供的窗口处理功能还需要进一步完善,提供的窗口处理功能还需要进一步完善,比如控件或构件的实现还很不完备,比如控件或构件的实现还很不完备,比如控件或构件的实现还很不完备,键键盘和鼠标等的驱动还很不完善。

嵌入式操作系统与实时系统的区别与应用

嵌入式操作系统与实时系统的区别与应用

嵌入式操作系统与实时系统的区别与应用嵌入式操作系统和实时系统是嵌入式系统开发中经常使用的两种技术。

它们具有不同的特点和适用范围,下面将分别介绍它们的区别以及应用。

一、嵌入式操作系统1.定义:嵌入式操作系统是专门为嵌入式系统开发的一种操作系统,它可以通过固化到ROM或Flash中的嵌入式芯片实现对系统资源的有效管理和利用。

2.特点:a. 灵活性高:嵌入式操作系统具有可裁剪性,用户可以根据应用需求选择需要的功能模块。

b. 易维护性好:嵌入式操作系统可以通过模块化的方式进行开发和维护,方便软件开发团队进行合作。

c. 存储资源占用小:嵌入式操作系统通常占用的存储资源相对较少,运行效率较高。

3.应用领域:a. 智能家居:如智能门锁、智能温控等设备中常使用嵌入式操作系统进行资源管理。

b. 工业控制:在工业自动化领域,嵌入式操作系统常被用于控制器和监控设备中,实现对工艺过程的管理和控制。

c. 汽车电子:嵌入式操作系统广泛应用于汽车电子系统,如车载娱乐系统、车载导航系统等。

二、实时系统1.定义:实时系统是指按照一定规定时间要求处理任务,并能够满足任务处理的时间要求的计算机系统。

2.特点:a. 时间性要求高:实时系统对任务的响应时间和处理时间有严格要求。

b. 可靠性要求高:实时系统要求系统能够保证任务按照规定的时间要求完成。

c. 可预测性要求高:实时系统需要提前预测任务的处理时间和资源占用,以便能够满足任务的实时性要求。

3.应用领域:a. 军事系统:实时系统在军事装备、指挥控制系统等领域中得到广泛应用,以满足任务的实时性要求。

b. 医疗设备:如心脏起搏器、呼吸机等医疗设备对实时性要求非常高,需要实时系统来保证任务的及时处理。

c. 航空航天:在飞行控制系统、导航系统等领域,实时系统用于保证任务的及时响应,确保飞行安全。

综上所述,嵌入式操作系统和实时系统在嵌入式系统开发中有着不同的应用场景和特点。

嵌入式操作系统通常用于对资源进行管理和利用,其灵活性高、易维护性好和存储资源占用小的特点使其在智能家居、工业控制和汽车电子等领域得到广泛应用。

两种开源嵌入式操作系统的比较

两种开源嵌入式操作系统的比较

3 进 程 调 度
任 务 调 度 主 要 是 协 调 各 个 任 务 对 系 统 内资 源 ( 例 如 内存 、 O设 备 、 P 的争 夺 使 用 。 进 程 调 度 又 称 为 I / C U) C U调 度 .其 根 本 任 务 是 按 照 某 种 原 则 为 处 于 就 绪 状 P 态 的进 程 分 配 C U。 由于 嵌 入 式 系统 中 内存 和 I P / 0设 备 一 般 都 和 C U 同时 归 属 于 某 进 程 , 以 任 务 调 度 和 P 所 进 程调度概念 相近 . 多 场合不加 区分 , 文 中的“ 很 下 任 务 ” 实就是指“ 程” 其 进


实政 与 经 验
\\
L — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ~ — —
两种 开源嵌 入 式 操作 系统 的 比较
内嵌 网络 协议 、 持 多 种 文 件 系统 。 编 译 后 目标 文件 支 其
可控 制 在 几 百 K量 级 e o 构 小 巧 、具 有 可 剥夺 实 时 内 核 的实 时操 作 C s结 系统 。其 内核 提供 任 务调 度 与管 理 、 间管 理 、 务 间 时 任 同步 与 通信 、 内存 管 理 和 中断 服 务 等 功 能 。 u lu C i x是 一 种 早期 的嵌 人 式 Ln x版 本 。同 标 准 n iu
@ 现 计 机 21. 代 算 o13 0
享嵌 入式 系统 的 各 种 资源 。 谓 合 理 有 效 的 方法 . 的 所 指

文件系统结构分析

文件系统结构分析

文件系统结构分析1 嵌入式文件系统1.1嵌入式文件系统体系结构在嵌入式系统中,文件系统是嵌入式系统的一个组成模块,它是作为系统的一个可加载选项提供给用户,由用户决定是否需要加载它。

同时,它还需要满足结构紧凑、代码量小、支持多种存储设备、可伸缩、可剪裁、可移植等特点。

基于上面的要求,嵌入式文件系统在设计和实现时就要把它作为一个独立的模块来整体考虑。

特别是对文件系统内部资源的管理要做到独立性。

由于嵌入式文件系统是作为嵌入式系统的一个可选加载项提供给用户的,当用户针对其应用的特殊要求对嵌入式系统进行配置时没有选择加载文件系统,但是用户还是需要使用到系统I/O。

由于这种情况的出现就决定了嵌入式系统中的文件系统不再具有I/O设备的管理功能。

系统I/O的管理和使用接口的提供将由I/O管理模块完成,文件系统作为一个独立的自包含模块存在。

基于以上考虑,嵌入式文件系统的体系结构如图1所示。

图1 嵌入式文件系统体系结构在嵌入式文件系统的最上层是文件系统API。

文件系统的一切功能都是通过这一层提供给用户的。

同时,在整个文件系统中也只有这一层对用户是可见的。

在这一层中所提供的所有功能接口都将严格的遵循POSIX标准。

文件系统核心层是实现文件系统主要功能的模块。

在这一层中,文件系统要把用户的功能操作转化成对文件系统的抽象对象的操作。

这些操作将通过下面的功能模块最终落实到物理介质上面。

如果文件系统需要支持多种具体的文件系统格式的话,这一层还可以进一步细分成虚拟文件系统和逻辑文件系统。

块高速缓存的存在是为了提高文件系统的性能。

在这一层中缓存着以前访问过的块设备数据。

文件系统通过一定的算法来高效的管理这些数据,以提高缓冲的性能。

同时,它的存在使下层的数据操作对上层的文件操作透明,提高了文件系统的模块性。

1.2嵌入式文件系统体系的功能与特点文件系统是操作系统的重要组成部分,用于控制对存储设备的存取。

它提供对文件和目录的分层组织形式、数据缓冲(对于实时系统,允许绕过缓冲)以及对文件存取权限的控制。

2.四种常用嵌入式RTOS的比较与选择

2.四种常用嵌入式RTOS的比较与选择

o Linux 的特点
(五)硬件支持 :
支 持 多 种 体 系 结 构 , 如 X86 、 ARM 、 MIPS 、 ALPHA、SPARC等目前,Linux已经被移植到数十种 硬件平台上,几乎支持所有流行的CPU。
(六)标准兼容性:
Linux可作为一个嵌入式操作系统,它支持POSIX.1b 标准。
o Linux 的特点
(七)技术支持
Linux具有开放性: (1) 用户可得到UNIX的全部开发工具。 (2) 可使用市场上便宜又常见的硬件。
(八)源代码还是目标代码
Linux是源代码完全公开的。 Linux的内核映像 bzImage.bin大小为569,764大小。加上其他应用程序, 其大小可在2M左右。
(三)内核
o Linux 的特点
Linux采用的是带保护的平行内核体系(见上图)。其优点是: (1)采用平行内核,因为各层次间以及同层次间的实现比较独立, 这种体系的稳定性就要好的多,如果一个子系统崩溃,系统一般不 会全部瘫痪;(2)可以更容易地添加新服务模块,Linux甚至无 须重新启动。 缺点是:(1)当高层模块(如加减设备,服务器时)更新时,往 往更新了特权任务表的内容,所以内核需要重新编译. (2)这种 体系的底层代码和硬件直接关联,且功能越强,这种关联越紧,再 加上核心比微内核体系要大得多,所以移植也要费事。
(4)最大中断禁止时间:
(5)任务切换时间:
二:如何选择RTOS
4.内核要求的最小存储器大小
实时操作系统可以装入小得令人惊讶的内存中。最小的 内核经常是仅仅支持很少的特性,而典型的配置可能产生大 得多的内核。一般情况下,供应商可以提供一份详细的列表, 说明了创建包含不同服务的内核分别需要多大的RAM和ROM。

JFFS和YAFFS两种文件系统在嵌入式Linux平台上的运行比较

JFFS和YAFFS两种文件系统在嵌入式Linux平台上的运行比较

TECHNOLOGY 技术应用一、嵌入式平台物理存储特性Nand flash内存作为flash内存的一种,因其具有容量较大,改写速度快等优点,适用于大量数据的存储,并且内部采用非线性宏单元模式,所以为固态大容量内存的实现提供了廉价有效的解决方案,在业界得到了越来越广泛的应用。

本文通过比较分析JFFS和YAFFS两种文件系统在Linux平台上的运行情况,来说明面向不同性能的文件系统选择。

二、JFFS文件系统1.稳定性优势。

JFFS文件系统采用日志结构,与Linux的标准文件系统Ext2文件系统相比,JFFS文件系统在执行扇区级别上的擦除、读、写的速度更快,并且在机器崩溃、掉电时能够提供安全保护。

这是因为Ext2文件系统对于一个扇区的更新需要重写整个擦写块,但是在重写过程中,若发生机器崩溃或突然断电,将会造成整个擦写块中的数据全部丢失。

而因嵌入式系统要求高稳定性,因宕机、断电而发生数据丢失的现象是不能接受的,所以JFFS文件系统具有免受宕机和断电危害功能的日志型文件系统,这点相较于Ext2文件系统又有了能够满足嵌入式系统稳定性要求的优势。

2.高效的垃圾回收机制。

JFFS文件系统具有高效的垃圾回收机制,即具有释放过时的日志文件节点的能力。

首先,JFFS文件系统以闪存块为单位进行空间的回收,每次擦除最应该被擦除的块,该块被擦除后成为新的空闲块;其次,JFFS文件系统通过碎片收集进程回收碎片,每次仅回收一个空闲块,只有在空闲块数过多的情况下,处于睡眠状态的进程才会被唤醒。

三、YAFFS文件系统对NAND Flash的支持YAFFS文件系统与JFFS文件系统相比,其优势在于它是首个专门针对NAND型闪存的文件系统。

因为NAND型闪存结构特殊,它是以页为单位进行读写和编程的操作,适合进行文件存储以及纯数据存储,考虑到NAND型闪存的特有结构,YAFFS文件系统将文件组织成固定大小的页。

在擦写策略方面,YAFFS文件系统采取先写入新的数据块,再删除旧的数据块的方式,防止了宕机、断电情况下,数据完整性被破坏。

嵌入式操作系统的优缺点分析

嵌入式操作系统的优缺点分析

嵌入式操作系统的优缺点分析优点:1.资源消耗低:嵌入式操作系统通常设计为轻量级系统,占用较少的存储空间和计算资源。

这使得它们适用于资源有限的嵌入式设备,如传感器、手机和智能家居设备。

2.高效实时性:嵌入式操作系统具备高实时性能,可以在规定的时间范围内完成各种任务。

这对于需要及时响应外部事件的应用场景非常重要,比如自动驾驶系统、工业控制系统和医疗设备。

3.稳定可靠性:嵌入式操作系统经过严格的测试和验证,确保在长时间运行和高负载工作条件下的稳定性和可靠性。

这对于需要长时间运行、无故障的设备至关重要,如航空航天、军事和电信设备。

4.定制化灵活性:嵌入式操作系统可以根据特定需求进行定制和配置,以满足各种应用的需求。

开发人员可以选择安装特定的模块和功能,以减少不必要的资源消耗,并提高性能。

5.安全性强:嵌入式操作系统通常具有安全性方面的改进,以保护设备免受网络攻击、非法访问和数据泄露。

这对于存储和处理敏感数据的应用场景特别重要,如金融、医疗和能源行业。

缺点:1.开发复杂性:嵌入式操作系统的开发和定制需要专业的知识和技能。

开发人员需要了解底层硬件和驱动程序,并确保软件与硬件之间的兼容性和稳定性。

这增加了开发和维护成本。

2.成本较高:嵌入式操作系统通常需要购买或许可,这增加了设备的成本。

另外,为了将操作系统与硬件配对,可能需要专门设计和制造定制芯片,这也增加了设备制造的成本。

3.学习曲线陡峭:嵌入式操作系统具有自己的编程模型和开发工具,与传统的桌面操作系统有所不同。

因此,开发人员需要花费一定时间和精力来学习和掌握相应的开发技术和工具。

4.可伸缩性局限性:嵌入式操作系统通常设计为针对特定硬件平台的,因此在其他平台上的可伸缩性可能受到限制。

这可能导致在一些情况下,升级硬件或更换平台时需要重新设计和开发操作系统。

5.限制性操作:嵌入式操作系统通常是为一些特定应用领域而开发的,因此可能会存在一些功能局限性。

如果需要新的功能或更新的技术支持,可能需要与操作系统供应商合作或进行额外的定制开发。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/yaffs/index.html
上下载。在测试过程中稳定性能比JFFS2文件系统要稳定的多,而且mount分区的时间也比JFFS2文件系统少的多。用JFFS2 mount一个2m的文件系统大约需要1s。下面分别介绍在uclinux下面使用JFFS2和YAFFS文件系统。
lib/下的一些动态链接库。
shell busybox知道吗? 利用这个,可以省很多空间, 到google上搜搜
本文来自ChinaUnix博客,如果查看原文请点:/u1/55409/showart_452871.html
1、JFFS2


上面下载最新的MTD和JFFS2压缩包。压缩包里面还有有关的内核补丁和一些MTD的相关工具。主要的补丁就是ilookup-2.4.23.patch,因为最新的MTD驱动中要用到一个ilookup()函数。打完补丁、更新了MTD驱动和JFFS2文件系统之后就开始写自己nand flash驱动了。如果不想把JFFS2作为根文件系统的话,还需要修改MTD_BLOCK_MAJOR。驱动可以参考里面的例子,最简单的就是参考spia.c。
定义自己的驱动文件
File systems下
CONFIG_JFFS2_FS=Y
CONFIG_JFFS2_FS_DEBUG=2
CONFIG_JFFS2_FS_NAND=y /*这个是新加的*/
在uClinux v1.3.4 Configuration下
Flash Tools下
CONFIG_USER_MTDUTILS=Y
CONFIG_USER_MTDUTILS_ERASE=Y
CONFIG_USER_MTDUTILS_ERASEALL=Y
CONFIG_USER_MTDUTILS_MKFSJFFS2=Y
最后就是辛苦了调试工作了。:(MTD驱动调试完之后,就可以在上面挂接JFFS2文件系统了。参看flash分区情况:cat /proc/mtd,擦除分区:eraseall /dev/mtd*.例如把第一个分区mount到/mnt目录下面:
具体制作方法:
dd if=/dev/zero of=rootfs.img bs=1M count=一个整数(看你的实际的需要的空间了,一般也就10M)
把它格式化为你需要的文件系统,比如 ext2 ,ext3 ,reiserfs 什么的,
比如ext3 : mkfs.ext3 root.img
建议你先搞一个别人的,拿过来,参考,自己去改,一开始,自己去作肯定要疯的。
你可以到网上搜搜的。 有个网站,
/
这个里面提供了一些简单的文件系统,你可以拿过来,自己改改。 这是个比较快的方法,其实,里面要改基本是:
/etc/rc.d/** 下面的启动脚本。
然后把它mount到某个目录,比如tmp 吧:
mount -t ext3 /tmp/
然后,你的文件系统所在的目录的所有文件copy到tmp目录下: 比如你的文件系统目录在/root/rootfs-test :
cp -av /root/rootfs-test/* /tmp/ (这里注意一个细节:copy的时候,用参数a表示copy全部,v表示只copy链接本身,不copy它指向的内容,这点很关键哦!) ,另外,有的人常用:cp -pdR 这个你也可以试试,意思就是原来什么样,copy过去就什么样。
嵌入式文件系统比较
来源: ChinaUnix博客 日期: 2007.12.29 12:47 (共有0条评论) 我要评论
目前flash的文件系统比较多,用的比较多的就是JFFS2文件系统。基于NOR flash上的JFFS2文件系统可以说算是比较成熟了,支持NAND flash的JFFS2也已经发布了。源代码可以到
CONFIG_MTD_DEBUG=Y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_PARTITIONS=Y
CONFIG_MTD_CHAR=Y
CONFIG_MTD_BLOCK=Y
NAND Flash Device Drivers下
CONFIG_MTD_NAND=Y
而ramdisk呢?这个用的比较多,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 关键是以后,在ramdisk里面可以写,这是一个和cramfs重要的区别了。
写驱动主要工作是定义flash分区结构、定义flash读写地址、写控制flash的**_hwcontrol()函数。具体的操作要看所用的nand flash的芯片资料。相对NOR flash来说驱动要简单多了。:)
改完之后再配置
Memory Technology Devices(MTD)下
CONFIG_MTD=Y
下面运行。

/yaffs/index.html
上下载源代码。压缩包里面也包含YAFFS的说明文档。YAFFS文件系统的源文件就devextras.h,yaffs_ecc.c,yaffs_ecc.h,yaffs_guts.c,yaffs_guts.h,yaffs_mtdif.h,yaffs_mtdif.c和yportenv.h
然后卸载/tmp/ 目录就好了。
umount /tmp
一般的情况下,ramdisk是要压缩的,对于上面的生成好的img, rootfs.img ,你可以这样压缩:
gzip -v9 rootfs.img 会自动生成rootfs.img.gz ,一般压缩率,30%吧!
romfs
uCLinux系统采用ROMFS文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面:首先内核支持ROMFS文件系统比支持ext2文件系统需要更少的代码;其次ROMFS文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。ROMFS文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟RAM盘的方法进行处理(RAM盘将采用ext2文件系统).

上面下载。但是在我的测试过程中,在nand flash上挂接的JFFS2文件系统很不稳定,经常有CRC错误产生。特别是进行写操作的时候,每次复位都会产生CRC错误,可以说支持NAND flash的JFFS2文件系统目前还不成熟。而YAFFS文件系统则是专门针对NAND flash的,源代码可以到
obj-y := yaffs_fs.o yaffs_guts.o yaffs_mtdif.o yaffs_ecc.o
obj-m := $(O_TARGET)
include $(TOPDIR)/Rules.make
接下来就是改fs目录下面config.in和makefile,在配置YAFFS的时候,把YAFFS连接进去。
cramfs是只读压缩的文件系统,文件系统类型可以是ext2,ext3,什么的,
制作方法: 假如你的根文件系统的目录是 rootfs (你将来要用到的所有的文件就在这里)
like this : mkcramfs rootfs rootfs.cramfs 就搞定了。如名字所言,它是只读压缩,所以比较省空间,如果你的flash比较小,就用这个吧! 系统启动后,kernel把他load到内存中,解压,所以比较占内存。看你的需要了。
如果像前面一样已经把NAND MTD驱动调好了,加YAFFS就很简单了。因为YAFFS是自己做ECC校验的,所以要把MTD驱动里面的ECC去掉。在驱动里面改成this->eccmode = NAND_ECC_NONE就可以了。
另外YAFFS是用mkyaffs来擦除flash,所以在mtd-utils中加上mkyaffs.c,一起编译进去。
最后就是编译了,呵呵。中间会有一些警告没有关系的,就是写没有用的变量和函数,不过话说回来YAFFS的代码写的确实不太规范。当然它的性能确实没话说。有兴趣的可以试一下。
/////////////
cramfs和romfs只是一个文件系统类型,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你 linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 ^-^恭喜你,你答对了,加10分
可以从
/
下载生成romfs的工具genromfs
个人经验: 你自己要创建文件系统,一般是先建一个目录在里面建一些常用的目录,比如bin ,sbin ,root ,etc lib 什么的,正如楼上所言,lib比较烦,需要考虑你要用的程序需要的动态链接库,
另外需要配置的宏:CONFIG_YAFFS_FS 和CONFIG_YAFFS_MTD_ENABLED,就是配置在mtd上面挂接YAFFS,其它还有一些辅助配置需要时也可以配置。
在fs目录下面建一个yaffs目录,把以上说的文件考里面去,新建一个makefile:
O_TARGET := yaffs.o
先:eraseall /dev/mtd0
然后:mount -t jffs2 /dev/mtdblock0 /mnt
2、YAFFS
YAFFS意义为'yet another flash file system',也是一个开源的文件系统。YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,具有很好的可移植性,能够在linux,uclinux,和wince
相关文档
最新文档