打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

时间:2012-03-13 09:34:17 来源:单片机与嵌入式系统 作者:高文玉 电子科技大学


2 关键技术
2.1 uboot支持YAFFS2文件系统
    YAFFS2是专门针对嵌入式设备,特别是使用NAND Flash作为存储器的嵌入式设备而创建的一种文件系统。对uboot进行修改,使其支持YAFFS2文件系统,能够将系统内核和文件系统烧写到NAND Flash,同时也能够在NAND Flash中引导启动系统。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()启动内核。


    本实验是将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芯片。


    嵌入式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,降低成本。通过以太网对远程嵌入式终端进行自动更新,具有操作简单、更新速度快的特点。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
zImage和root根文件系统的烧写
嵌入式Linux文件系统简介
在C51系统上实现YAFFS文件系统
uboot移植之nfs命令烧写uboot,zImage.img,root
fastboot 介绍
Davinci烧写程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服