新闻中心

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

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

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

2 关键技术
2.1 工作原理
是一个由德国DENX发起的,遵循GPL条款的开源项目,支持ARM、X86、MIPS、PowerPC等处理器,可启动、VxWorks、TREMS等嵌入式操作系统,其提供了丰富的配置、管理以及运行命令。
与大多数Bootloader一样都包含两种操作模式:
①启动加载(Bootloading)模式:即Uboot从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程都是自动完成的。
②下载(Downloading)模式:在这种模式下,目标机的Uboot将通过串口或网络等通信方式将内核或文件系统印象下载到RAM当中,然后再写入相应的存储设备中。这种工作模式通常在系统初次安装和更新时使用。
Uboot的实现依赖于CPU的体系结构,它分为stage1和stage2两大部分。stage1存放用汇编语言实现的依赖于CPU体系结构的代码,比如设备初始化代码等;stage2则通常用具有更好的可读性和可移植性的C语言来实现。
Uboot Stage1的主要功能有:
①硬件设备初始化;
②为Uboot重定位至RAM中,准备RAM空间;
③重定位Uboot代码到RAM中;
④设置堆栈,将BSS段清零;
⑤跳转到第二阶段的C程序入口点。
Uboot Stage2的主要功能有:
①初始化硬件设备;
②将内核和文件系统映像从Flash读到RAM中;
③设定内核启动参数和调用内核。
通过上面这两个阶段,Uboot就完成了引导内核启动的任务。
2.2 Uboot扩展升级功能
Uboot本身并不带有系统升级功能,本文在Uboot现有的功能上做扩展,使其完成系统升级的功能,将新的内核或者文件系统映像烧写到Flash的相应分区中。本文的实验对象是Samsung公司的S3C2440微处理器,该设备上有64 MB的SDARM和256 MB的NAND Flash,NAND Flash的起始地址映射到0x00000000,SDRAM的起始地址映射到0x30000000。设备上的Uboot将256 MBNAND Flash分为Bootloader、Bootloader参数、ker nel和rootfs四个区。其中,Bootloader分区是用于存放Uboot映像,它的起始地址为NAND Flash的起始地址0x00000000;Bootloader参数区是用于存放Uboot的参数;kernel区用于存放内核;rootfs区用于存放文件系统,在我们的设备上使用的文件系统是Yaffs2。这4个分区的起始地址和大小如表1所列。

本文引用地址:http://www.eepw.com.cn/article/148225.htm

b.JPG

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

linux相关文章:linux教程




评论


相关推荐

技术专区

关闭