嵌入式开发环境介绍,嵌入式文件系统要求分析
er/User Setings 项目中,选择Network Applications之后,需要其中的portmap服务,[*] portmap即可。然后选择mount和umount服务使mClinux支持mount和umount指令。mClinux-2.4-x的内核对 NFS mount的支持不够,这使得在mClinux上添加NFS服务存在一些困难,而在较新的mClinux版本mClinux-2.6-x中重写了对 NTFS文件系统的支持。在BusyBox中选择mount和umount及mount NFS support三项即可,这样客户端的配置完成。最后重新编译内核,指令如下:
# make menuconfig ------------- 内核配
# make dep -------------寻找依存关系
# make clean------------清除以前构造内核时生成的文件
# make lib_only-----------该命令编译库文件
# make user_only----------编译用户应用程序文件
# make romfs ----------生成romfs文件系统
# make image----------生成romfs.o文件
# make
重 新编译后,会在。。。/image/目录下生成image.rom文件,它是压缩了的内核在rom的映像文件,将其烧写到用户板的Flash即可。用户板 重新启动之后,新的内核已经开始工作,这时就可以在终端里进行NFS mount了(以在minicom为例)。输入如下指令:
#mount -t nfs 10.5.22.247:/home/tmp /var/tmp /nfsmount -o nolock
# mount
执行完两条指令后,在Linux下的minicom里会看到如下信息:
Rootfs on / type rootfs (rw)
/dev/rom0 on / type rootfs (ro)
/proc on/proc type proc (rw)
/dev/ram0 on/var type ext2 (rw)
/dev/ram1 on /disk type ext2 (rw)
10.5.22.247:/home/tmp on /var/tmp type nfs (rw,v3,rsize=8192,hard, udp,nolock,addr=10.5.22.2)
这样就将宿主机的/home/tmp目录挂载到了用户板的/var/tmp目录。
结语
通过以上两种方式的比较,可以看到,就开发的效率来说,NFS的方式明显具有优势。毕竟,用户开发的程序往往不能一次就调试成功,采用 NFS方式使得多人同时开发一个程序成为可能。事实上,除了文中提到的两种方式以外,还有其它以太网环境下的嵌入式开发手段,如telnet等,限于篇 幅,不再详细介绍。
嵌入式文件系统要求分析
嵌入式linux下常见的文件系统
• RomFS:只读文件系统,可以放在ROM空间,也可以在系统的RAM中,嵌入式linux中常用来作
根文件系统
• RamFS:利用VFS自身结构而形成的内存文件系统,使用系统的RAM空间
• JFFS/JFFS2:为Flash设计的日志文件系统
• Yaffs:专门为Nand Flash设计
• proc:为内核和内核模块将信息发送给进程提供一种机制,可以查看系统模块装载的信息
• devFS:设备文件系统
Linux上的Ext2fs
• 支持4 TB 存储、文件名称最长1012 字符
• 可选择逻辑块
• 快速符号链接
• Ext2不适合flash设备
• 是为象IDE 设备那样的块设备设计的,逻辑块大小必须是512 byte、1 KB、2KB等
• 没有提供对基于扇区的擦除/写操作的良好管理
• 如果在一个扇区中擦除单个字节,必须将整个扇区复制到RAM,然后擦除,再重写入
• 在出现电源故障时,Ext2fs 是不能防止崩溃的
• 文件系统不支持损耗平衡,缩短了flash的寿命
jffs/jffs2文件系统的优缺点
• 日志文件系统
• 提供了更好的崩溃、掉电安全保护
• jffs2支持对flash的均匀磨损
• 在扇区级别上执行闪存擦除/写/读操作要比Ext2文件系统好
• 文件系统接近满时,JFFS2 会大大放慢运行速度——垃圾收集
Nand上yaffs文件系统的优势
• 专门为Nand flash设计的日志文件系统
• jffs/jffs2不适合大容量的Nand flash
• jffs的日志通过jffs_node建立在RAM中,占用RAM空间:对于128MB的Nand大概需要4MB的空间来维护节点
• 启动的时候需要扫描日志节点,不适合大容量的Nand flash
• FAT系统没有日志
编译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系统的相关信息
• mo
- 什么是LED驱动时序?LCD背光驱动程序设计(04-26)
- LCD驱动的移植及其GUI仿真如何进行,LCD数模转换现实原理及其源代码(04-25)
- wince代码写入LCD驱动参考,数码产品怎样分别是不是LCD坏点(04-26)
- ARM微处理器助记符指令及其功能描述(04-30)
- 布线工程师如何充分“掌控”时钟信号?(02-21)
- FPGA组成、工作原理和开发流程(10-13)