Linux存储器接口软硬件设计3.ppt

上传人:b****1 文档编号:1381436 上传时间:2022-10-21 格式:PPT 页数:33 大小:287KB
下载 相关 举报
Linux存储器接口软硬件设计3.ppt_第1页
第1页 / 共33页
Linux存储器接口软硬件设计3.ppt_第2页
第2页 / 共33页
Linux存储器接口软硬件设计3.ppt_第3页
第3页 / 共33页
Linux存储器接口软硬件设计3.ppt_第4页
第4页 / 共33页
Linux存储器接口软硬件设计3.ppt_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

Linux存储器接口软硬件设计3.ppt

《Linux存储器接口软硬件设计3.ppt》由会员分享,可在线阅读,更多相关《Linux存储器接口软硬件设计3.ppt(33页珍藏版)》请在冰豆网上搜索。

Linux存储器接口软硬件设计3.ppt

Linux存储器接口软硬件设计,刘淼threewaterup-2006.3.21,嵌入式系统上常用的存储媒体,Flash芯片Flash媒质存储器:

SD/MMC卡、CF卡、SM卡、U盘、DOCIC卡、SIM卡硬盘:

CF接口、IDE接口,Linux对存储设备的管理,块设备-文件系统字符设备也可以完成简单的存储工作嵌入式Linux的存储通常通过MTD设备,MTD设备驱动,MTD(memorytechnologydevice)是用于访问memory设备(ROM、flash)的Linux子系统在硬件和上层之间提供了一个抽象的接口,MTD把文件系统和Flash设备相隔离,MTD与文件系统,Flash硬件驱动层在init时驱动Flash硬件,NAND型Flash的驱动程序则位于/drivers/mtd/nand子目录下MTD原始设备有两部分组成MTD原始设备的通用代码,各个特定的Flash的数据,例如分区。

mtd_info、mtd_table(mtdcore.c)、mtd_part(mtd_part.c)MTD设备层linux系统定义出MTD的块设备(主设备号31)和字符设备(设备号90)。

设备节点:

通过mknod在/dev子目录下建立MTD字符设备节点(主设备号为90)和MTD块设备节点(主设备号为31),通过访问此设备节点即可访问MTD字符设备和块设备。

根文件系统在Bootloader中将文件系统映像烧录到flash的某一个分区中,在启动的时候,将该分区作为根文件系统挂载。

文件系统:

内核启动后,mount,NAND和NOR性能比较,NOR和NAND是现在市场上两种主要的非易失闪存技术NOR的读速度比NAND稍快一些NAND的写入速度比NOR快很多NAND的擦除速度远比NOR的快大多数写入操作需要先进行擦除操作NAND的擦除单元更小,相应的擦除电路更少,接口差别,NORflash带有SRAM接口,线性寻址,可以很容易地存取其内部的每一个字节NANDflash使用复用接口和控制IO多次寻址存取数据NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作易于取代硬盘等类似的块设备,容量和成本,NANDflash生产过程更为简单,成本低常见的NORflash为128KB16MB,而NANDflash通常有8128MBNOR主要应用在代码存储介质中,NAND适合于数据存储NAND在CompactFlash、SecureDigital、PCCards和MMC存储卡市场上所占份额最大,可靠性和耐用性,在NAND中每块的最大擦写次数是100万次,而NOR的擦写次数是10万次位交换的问题NANDflash中更突出,需要ECC纠错NANDflash中坏块随机分布,需要通过软件标定产品量产的问题,更新MTD设备驱动程序,MTD的补丁http:

/www.linux-mtd.infradead.org/新的MTD驱动程序针对Linux2.6支持2kpageflash、DOC、SSDFC等新特性参考:

TheLinuxMTD,JFFSHOWTO,NandFlash连接原理,PXA270上扩展Nandflash,移植代码,建议先给内核打补丁有的linux内核带的MTD驱动程序有严重的问题nandflash相关代码在/drivers/mtd/nand/目录下添加自己的驱动程序,可以从/drivers/mtd/nand/spia.c派生(pxa27x_nand.c)修改drivers/mtd/nand/config.in配置菜单修改/drivers/mtd/nand/Makefile添加obj-$(CONFIG_MTD_NAND_ARM)+=pxa27x_nand.o,解读pxa27x_nand.c,模块入口:

pxa27x_init函数ioremap的作用pxa27x_IO_init,初始化Nandflash所用端口module_init宏定义了linux加载的模块启动的时候加载或者通过模块加载nand_scan确定设备及其类型,挂载相应的驱动程序add_mtd_partitions函数注册MTD分区,add_mtd_device注册MTD设备,MTD上的Norflash驱动,使用CFI接口的flashIntelAMD驱动程序自动挂接、自动检测,PXA270上Norflash设备驱动,添加驱动程序drivers/mtd/maps/uptechpxa27x-flash.c主要的工作在pxa27x_flash_probe函数中完成。

查找分区,测试MTD设备

(1),正确加载了设备,使用命令cat/proc/mtd,可以显示MTD设备信息:

dev:

sizeerasesizenamemtd0:

00e0000000004000Nandflashpartition“创建节点(如果不是用devfs)在hostlinux上的romfs/dev目录创建mtd0,c,90,0、mtdblock0,b,31,0文件用mkfs.jffs2(或者mkfs.yaffs)生成文件系统映象(比如jffs2.img),测试MTD设备

(2),目标板启动以后cpjffs2.img/dev/mtd0注意:

这里使用的/dev/mtd0是字符设备mounttjffs2/dev/mtdblock0/var/jffs2需要在编译内核的时候包含jffs2文件系统使用块设备在文件系统上进行其他测试:

/var/jffs2cp/root/hello.,嵌入式linux下常见的文件系统,RomFS:

只读文件系统,可以放在ROM空间,也可以在系统的RAM中,嵌入式linux中常用来作根文件系统RamFS:

利用VFS自身结构而形成的内存文件系统,使用系统的RAM空间JFFS/JFFS2:

为Flash设计的日志文件系统Yaffs:

专门为NandFlash设计proc:

为内核和内核模块将信息发送给进程提供一种机制,可以查看系统模块装载的信息devFS:

设备文件系统,Linux上的Ext2fs,支持4TB存储、文件名称最长1012字符可选择逻辑块快速符号链接Ext2不适合flash设备是为象IDE设备那样的块设备设计的,逻辑块大小必须是512byte、1KB、2KB等没有提供对基于扇区的擦除写操作的良好管理如果在一个扇区中擦除单个字节,必须将整个扇区复制到RAM,然后擦除,再重写入在出现电源故障时,Ext2fs是不能防止崩溃的文件系统不支持损耗平衡,缩短了flash的寿命,jffs/jffs2文件系统的优缺点,日志文件系统提供了更好的崩溃、掉电安全保护jffs2支持对flash的均匀磨损在扇区级别上执行闪存擦除写读操作要比Ext2文件系统好文件系统接近满时,JFFS2会大大放慢运行速度垃圾收集,Nand上yaffs文件系统的优势,专门为Nandflash设计的日志文件系统jffsjffs2不适合大容量的Nandflashjffs的日志通过jffs_node建立在RAM中,占用RAM空间:

对于128MB的Nand大概需要4MB的空间来维护节点启动的时候需要扫描日志节点,不适合大容量的NandflashFAT系统没有日志,编译yaffs文件系统,mtd的最新补丁升级?

接口更新,适合与yaffs与原有的mtd驱动程序不兼容,需要重写如果使用旧mtd驱动需要定义Makefile中MTD_OLD=-DCONFIG_YAFFS_USE_OLD_MTD参考文档:

yaffs-rootfs-howto最新版的yaffs网站:

http:

/www.aleph1.co.uk/armlinux/projects/yaffs,使用yaffs文件系统,通过cat/proc/yaffs命令可以看到yaffs系统的相关信息mount-tyaffs/dev/mtdblock/0/mnt/yaffsyaffs做root的问题,如何处理坏块?

IDE接口软硬件设计,IDE接口简介,IntegratedDriveElectronics(IDE)本意是指把控制器与盘体集成在一起的硬盘驱动器。

通常说的IDE接口,称之为ATA(AdvancedTechnologyAttachment)接口分类:

ATA-1(IDE)、ATA-2(EIDE)、ATA-3(FastATA-2)、UltraATA、UltraATA/33、UltraATA/66、UltraATA/100及SerialATA,IDE接口标准,低电平有效,IDE设备寄存器,嵌入式处理器上扩展IDE接口的考虑,电平标准是否满足?

IDE接口为5V逻辑,与3.3V逻辑如何接口总线时序如何满足?

读写时序和SRAM类似,通过组合逻辑即可满足,UP-NETARM2410-S上IDE接口逻辑原理图,FPGA内部逻辑nGCSF信号地址译码的结果偏移地址0x800000,IDE接口的驱动程序,在drivers/ide/arm/pxa-ide.c中实现:

IO空间分配ide_register_hw注册驱动器IDE设备工作在PIO模式下,测试IDE设备,使用devfs,系统会自动创建/dev/ide/host0/bus0/target0/lun0/路径discpart1、part2使用fdisk为磁盘分区格式化:

ext3(mkfs.ext3)、vfat(mkdosfs)mountmounttvfat/dev/,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1