新闻中心

EEPW首页>嵌入式系统>设计应用> 利用NAND Flash实现嵌入式系统的远程更新

利用NAND Flash实现嵌入式系统的远程更新

作者: 时间:2012-03-13 来源:网络 收藏


2 关键技术
2.1 uboot支持YAFFS2文件
YAFFS2是专门针对设备,特别是使用作为存储器的设备而创建的一种文件。对uboot进行修改,使其支持YAFFS2文件,能够将系统内核和文件系统烧写到,同时也能够在中引导启动系统。NAND Flash的分布图如图3所示。系统烧写时,首先用JTAG丁具将uboot烧写到NAND Flash的最前面;然后在uboot上执行tftp命令将内核映像zImage和根文件系统ramdisk传送到SDRAM中;在uboot上执行ymount命令挂载yaffs2文件系统;在uboot上执行ywrm命令可以将zImage和ramdisk烧写到NAND Flash中,此时也可以通过yls命令看到已经烧写的zImage和ramdisk。系统运行时,uboot从NAND Flash中引导zImage和ramdisk,在uboot上执行ymount命令挂载YAFFS2文件系统;执行yrdm命令将zImage和ramdisk读到SDRAM相应的地址中;执行go命令开始引导内核,首先解压ramdisk.gz文件,然后跳转到zImage处执行,zImage自解压后调用start_ker_nel()启动内核。

本文引用地址://m.amcfsurvey.com/article/149451.htm

c.jpg


本实验是将uboot直接烧写在NAND Flash的chunk中,uboot在剩余的空间上挂载YAFFS2文件系统,并将zImage和ramdisk写入文件系统。当系统运行起来后,在相同的NAND Flash空间上挂载YAFFS2文件系统后,可以看到和编辑uboot写入的zImage和ramdisk。同样uboot在启动时也可以看到kernel写入NAND Flash的文件。这样就了在uhoot和kernel中都可以升级和系统。
2.2 YAFFS2文件系统制作
YAFFS(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的文件系统,它是一种类似于JFFS2的日志型文件系统。相对于JFFS2,YAFFS减少了一些功能,因此速度更快、占用内存更少,并且对NAND Flash具有很好的保护机制,能够延长NAND Flash的使用寿命。因此,YAFFS文件系统的出现,使得价格低廉的NAND Flash芯片具有高效性和健壮性。基于NANDFlash的YAFFS文件系统结构框图如图4所示。目前有YAFFS和YAFFS2 2个版本,2个版本的主要区别之一在于YAFFS2能够更好地支持大容量的NAND Flash芯片。

d.jpg


嵌入式Linux内核本身并不支持YAFFS2文件系统,Linux内核对YAFFS2文件系统的支持有2种方法:一种是直接把YAFFS2编译到内核,另外一种是将YAFFS2编译成单独的模块进行加载。为了方便调试,本文选用第二种方法。首先下载YAFFS2源码,这里要注意uboot中的YAFFS2应该和内核中的版本一致。然后将YAFFS2源码解压缩,进行相应的代码修改,编译生成yaffs2.ko模块。将此模块加到ramdisk中,系统启动后挂载yaffs2.ko模块,此时就可以对NAND Flash进行读写。

结语
本文针对嵌入式Linux操作系统,基于uboot和内核对YAFFS2文件系统的支持,NAND Flash对嵌入式系统的。本系统从NAND Flash中引导内核与文件系统,可以省去NOR Flash,降低成本。通过以太网对嵌入式终端进行自动,具有操作简单、更新速度快的特点。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭