新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 利用SD卡实现嵌入式Linux系统的自动升级

利用SD卡实现嵌入式Linux系统的自动升级

作者:时间:2012-12-06来源:网络收藏

(2)判断中是否有内核映像文件
如果存在,则将其烧写到Flash相应的分区当中。实现这个功能需要使用到中的run_command函数,由于kernel的映像文件一般不会超过5 MB,所以在烧写kernel的时候不需要检查映像文件的大小。检查内核映像文件是否存在也是通过执行命令的方式,如果存在,那么Env环境变量fileexist的值就是YES,并且此时的内核映像已经存在于SDRAM当中,可以直接通过命令烧写到Flash相应的分区当中。具体的代码如下:
e.JPG
(3)判断中是否有文件系统映像文件
如果存在,则写入到相应的Flash分区当中。本实验设备上使用的文件系统是Yaffs2,通过命令烧写Yaffs2文件系统的时候,必须要知道它的实际大小。由于升级很可能导致文件系统大小的变化,所以这里必须将读取到SDRAM当中的文件大小记录下来,这个工作在中已经完成,我们只需要通过getenv(filesize)就可以获得载入SDRAM当中的文件大小,其他的步骤和烧写内核映像是一样的。具体代码如下:
f.JPG
经过上面3个步骤修改的Uboot程序可支持的功能,需要注意这段代码应该放在Uboot自动加载系统之前,推荐将这些代码放在main_loop函数中。

结语
本文通过定制扩展Uboot实现了用SD卡方式进行嵌入式设备操作系统的,这种方式不但克服了传统升级方式的局限性,而且具有一定商业价值。目前,该方法经过调试,系统运行正常。显然,要通过SD卡实现系统升级,需要嵌入式设备具有SD卡接口,因此,它并不适合所有的嵌入式系统,但是这种实现机制可供借鉴。

本文引用地址:http://www.eepw.com.cn/article/148225.htm
linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程



上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭