嵌入式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、保存当前执行状态:CPSR 3、寻找中断入口,中断向量表:PC寄存器找向量地址 4、执行中断处理完成: 5、中断返回,继续执行: R14 <exception_mode> = return link SPSR<exception_mode>=CPSR CPSR[4:0] =exception mode number;/* 处理器工作模式控制位 */ CPSR[5]=0; /* 使用ARM指令集 */ If<exception_mode> == reset or FIQ then CPSR[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 then PC=0xffff,0000; Else PC= 0x0000,0000; 其余的异常以此类推; 异常的优先级: 1、Reset: 优先级1(最高) 2、Data abort:2 3、FIQ:3 4、IRQ:4 5、Prefetch abort:5 6、SWI或者undefined instruction:6(最低),软件中断异常或者未定义指令异常 ARM硬件接口: 1、程序的链接地址和程序地址:ld程序链接地址 程序链接地址:是程序运行的起始地址;程序地址:是程序保存在硬盘中的地址; 2、呵呵呵

浙公网安备 33010602011771号