通过SD卡对嵌入式Linux设备进行升级的方法

文档序号:6472546阅读:210来源:国知局
专利名称:通过SD卡对嵌入式Linux设备进行升级的方法
技术领域
本发明涉及嵌入式设备技术,特别涉及嵌入式Linux设备升级的技术。
背景技术
在计算机嵌入式应用技术领域,Li皿x内核凭借其出色性能和开源路线,使得基于 Li皿x的嵌入式手持移动终端设备日益增多,而在此类嵌入式产品研发过程中,如何采用可 靠且简便的方法进行系统软件和应用软件的实时升级是一个十分关键和重要的环节,这直接 关系着产品的生命周期、维护成本、功能完善以及售后服务等诸多方面,目前基于Li皿x的 嵌入式产品研发过程中通常采用串口环境进行调试和软件升级,故需要产品外接一个RS232 串行调试接口,而成品样机则往往无此类串行调试接口,现有基于MTD (Memory Technology Devices)分区的嵌入式Li皿x设备系统中, 一般包括YAMON、 Linux内核、根文件系统几个模 块,应用程序存放在根文件系统中,其中YAM0N和Li皿x内核位于N0R-Flash中,对于这二者 的更新必须使用flash—eraseall和flashcp命令,根文件系统则可放在Nandflash上。

发明内容
本发明所要解决的技术问题,就是为了解决上述基于Li皿x的嵌入式手持移动终端设备 软件升级需要外接一个RS232串行调试接口的缺点,提供一种通过SD卡(Secure Digital Memory Card)对嵌入式Linux设备进行升级的方法。
本发明解决其技术问题,采用的技术方案是,通过SD卡对嵌入式Li皿x设备进行升级的 方法,其特征在于,包括以下步骤
a. 在具有符合该嵌入式Li皿x设备架构的开源GCC工具的本地操作系统环境中,交叉编译 开源工具包mtd-utils,得到flash—eraseall个flashcp这两个Linux的MTD分区更新命令,并 存储在可作为设备启动根文件系统的SD卡上;
b. 在SD卡上创建根文件更新列表及作为更新源的程序模块;
c. 将SD卡插入设备并通过终端触摸屏的特定操作启动更新程序,特定操作是指在开发过 程中确定的通过触摸屏操作的升级触发方式;
d. 根据更新程序进行升级;
e. 升级完成;
进一步的,步骤c所述更新程序包括设备产品硬件中的更新程序和SD卡的更新程序;
具体的,步骤b所述在SD卡上创建更新程序的指导信息及作为更新源的程序模块包括创 建应用程序或Linux内核或根文件系统或YAMON启动程序的更新指导信息及其作为更新源的程 序模块;
再进一步的,步骤d包括以下步骤
dl.更新程序根据SD卡上的更新列表判断更新模式,若仅需要更新应用程序则进入fl步 骤,若需要更新内核或YAMON则进入gl步骤,若需要修改以只读模式挂载的MTD分区内容则进 入hl步骤;
fl.更新程序调用1 inux的标准ki 1 lall命令停止当前应用程序的执行; f2.更新程序调用cp命令将SD卡上的新应用程序复制到合适的位置; f3.更新程序重新创建一个新的进程运行更新后的主应用程序,并进入e步骤; gl.更新程序使用SD卡上的flash—eraseall和flashcp命令将SD卡上的新内核文件或新 YAM0N文件覆盖至N0R-Flash中Linux内核或YAMON文件对应的MTD分区; g2.重启系统并进入e步骤;
hl.更新程序调用SD卡上的flash—eraseall和flashcp命令进行设备的YAMON和内核的更
新;
h2.更新程序在SD卡上特定位置创建重启时的更新信息标志,并调用reboot命令重启系
统;
h3.在设备以SD卡为根文件系统重启后,SD卡上的更新程序部分会根据SD卡上的更新信 息标志,对在正常使用时使用mount -o ro参数命令进行挂载的MTD分区进行mount -o rw参 数的挂载,并对其中的相应内容进行更新;
h4. SD卡中的更新程序部分再次调用flash—eraseall和flashcp命令将设备系统恢复到 正常执行时的YAMON和Li皿x内核设置;
h5.更新程序再次调用reboot命令重启完成了所有更新后的设备系统并进入e步骤。
本发明的有益效果是,通过以上步骤可以使得支持SD卡并基于MTD分区的基于Li皿x的嵌 入式手持移动终端设备在不需要外接RS232串行调试接口的前提下,可以通过SD卡进行简单 、快捷、安全的软件升级,升级过程中无需人为控制。


图l为实施例的系统流程图。
具体实施例方式
下面结合附图及实施例,详细描述本发明的技术方案。
本发明提供了一种通过SD卡对基于MTD分区的嵌入式Li皿x手持移动终端设备进行升级的 方法,首先在具有符合该嵌入式Li皿x设备架构的开源GCC工具的本地操作系统环境中,交叉 编译开源工具包mtd-utils,得到flash—eraseall个flashcp这两个Linux的MTD分区更新命令 ,并存储在可作为设备启动根文件系统的SD卡上,再在SD卡上创建更新程序的指导信息及作 为更新源的程序模块,最后将SD卡插入设备并通过终端触摸屏的特定操作启动更新程序进行 升级。
实施例
本例提供一种通过SD卡对基于MTD分区的嵌入式Li皿x手持移动终端设备进行升级的方法 ,包括应用程序或Linux内核或根文件系统或YAMON启动程序等众多软件模块的自动安全更新 升级,其系统流程图如图l。
首先,对于嵌入式Li皿x手持移动终端设备而言,更新程序由设备产品的硬件中的更新 程序和SD卡中的更新程序两部分组成,由在开发过程中与应用程序开发人员协商所确定的通 过触摸屏操作的升级触发方式来触发和启动,然后在一张拥有足够空间的具有li皿x ext3文 件系统格式的SD卡上创建设备的Linux根文件系统,从而使得该SD卡能够成功引导系统启动 ,然后下载flash—eraseall. c和flashcp. c开源代码,在具有符合该嵌入式Linux设备架构的 开源GCC工具的本地操作系统环境中,交叉编译开源工具包mtd-utils,得到 flash—eraseall个flashcp这两个Linux的MTD分区更新命令,并将其拷贝到SD卡上,为了在 使用SD卡进行软件升级时安全可靠,避免无意操作导致更新程序被触发,需要在升级使用的 SD卡文件系统中预留特定的标志信息,即使该SD卡成为升级专用SD卡,同时需要在SD卡上创 建需要进行软件更新的模块列表及标志信息,然后在设备系统正常运行的时候插入该SD卡, 并通过触摸屏操作的升级触发方式启动硬件中的更新程序,更新程序首先通过SD卡中的更新 模块列表判断系统是否需要更新YAMON并以SD卡作为根文件系统重新启动,如果SD卡上的更 新模块列表中只有主应用程序则不需要重新启动设备,更新程序首先调用1 inux的标准 killall命令停止当前应用程序的执行,再调用cp命令将SD卡上的新应用程序复制到合适的 位置,然后更新程序重新创建一个新的进程运行更新后的主应用程序即可让设备在极短时间 内恢复正常运行;如果SD卡上的更新模块列表中包含Li皿x内核或YAMON,更新程序直接使用 SD卡上的flash—eraseall和flashcp命令将SD卡上的新内核文件或新YAMON文件覆盖至 NOR-Flash中Linux内核或YAMON对应的MTD分区即可,其形式如下
flash—eraseall /dev/mtdX,flashcp new—file /dev/mtdX;
因为Linux内核在系统启动后就一直常驻内存,所以内核更新后需要重新启动系统,而
YAMON作为引导加载根文件系统的模块被更新后也只会在重启系统后生效;如果需要修改被 以只读模式进行挂载的MTD分区中的内容时,则需要在SD卡中首先存放使用SD卡作为引导程 序的YAMON程序,以及mmc直接编译进内核的内核程序,当硬件中的更新程序被触发后,其首 先调用SD卡上的flash—eraseall和flashcp命令进行设备的YAMON和内核的更新,使得系统重 启时会以SD卡作为根文件系统,并具有mmc直接编入的Li皿x内核,随后更新程序在SD卡上特 定位置创建重启时的更新信息标志,然后调用reboot命令重启系统,在设备以SD卡为根文件 系统重启后,SD卡上的更新程序部分会根据SD卡上的更新信息标志,对在正常使用时使用 mount -o ro参数命令进行挂载的MTD分区进行mount -o rw参数的挂载,并对其中的相应内 容进行更新,完成后SD卡中的更新程序部分会再次调用flash—eraseall和flashcp命令将设 备系统恢复到正常执行时的YAMON和Li皿x内核设置,最后更新程序再次调用reboot命令重启 完成了所有更新后的设备系统。
在更新程序运行的开始处必须首先确保在插入的SD卡中同时拥有flash—eraseall和 flashcp命令,并且整个过程中使用flash—eraseall必须和flashcp成对先后出现,在执行 flash—erseall擦除命令之前必须先确保SD卡上具有最新的作为更新源的程序模块,为了防 止更新源的程序模块错误和无效,需要对更新源的程序模块的时效使用Li皿x的test命令进 行检査,为了防止flash—eraseall和flashcp命令在设备正常的根文件系统也存在,避免在 执行了f lash—eraseall命令之后无法再执行flashcp命令而导致系统崩溃无法自动恢复的情 况,更新程序在使用这两条命令时应该使用SD卡上这两条命令的绝对路径。
权利要求
1.通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,包括以下步骤a.在具有符合该嵌入式Linux设备架构的开源GCC工具的本地操作系统环境中,交叉编译开源工具包mtd-utils,得到flash eraseall个flashcp这两个Linux的MTD分区更新命令,并存储在可作为设备启动根文件系统的SD卡上;b.在SD卡上创建根文件更新列表及作为更新源的程序模块;c.将SD卡插入设备并通过终端触摸屏的特定操作启动更新程序,特定操作是指在开发过程中确定的通过触摸屏操作的升级触发方式;d.根据更新程序进行升级;e.升级完成。
2.根据权利要求l所述通过SD卡对嵌入式Li皿x设备进行升级的方法 ,其特征在于,步骤c所述更新程序包括设备产品硬件中的更新程序和SD卡的更新程序。
3.根据权利要求l所述通过SD卡对嵌入式Li皿x设备进行升级的方法 ,其特征在于,步骤b所述在SD卡上创建更新程序的指导信息及作为更新源的程序模块包括 创建应用程序或Linux内核或根文件系统或YAMON启动程序的更新指导信息及其作为更新源的 程序模块。
4.根据权利要求l、 2或3所述通过SD卡对嵌入式Li皿x设备进行升级 的方法,其特征在于,步骤d包括以下步骤dl.更新程序根据SD卡上的更新列表判断更新模式,若仅需要更新应用程序则进入fl步 骤,若需要更新内核或YAMON则进入gl步骤,若需要修改以只读模式挂载的MTD分区内容则进 入hl步骤;fl.更新程序调用1 inux的标准ki 1 lall命令停止当前应用程序的执行;f2.更新程序调用cp命令将SD卡上的新应用程序复制到合适的位置;f3.更新程序重新创建一个新的进程运行更新后的主应用程序,并进入e步骤;gl.更新程序使用SD卡上的flash—eraseall和flashcp命令将SD卡上的新内核文件或新 YAM0N文件覆盖至N0R-Flash中Linux内核或YAMON文件对应的MTD分区; g2.重启系统并进入e步骤;hl.更新程序调用SD卡上的flash—eraseall和flashcp命令进行设备的YAMON和内核的更新;h2.更新程序在SD卡上特定位置创建重启时的更新信息标志,并调用reboot命令重启系统;h3.在设备以SD卡为根文件系统重启后,SD卡上的更新程序部分会根据SD卡上的更新信 息标志,对在正常使用时使用mount -o ro参数命令进行挂载的MTD分区进行mount -o rw参 数的挂载,并对其中的相应内容进行更新;h4. SD卡中的更新程序部分再次调用flash—eraseall和flashcp命令将设备系统恢复到 正常执行时的YAMON和Limx内核设置;h5.更新程序再次调用reboot命令重启完成了所有更新后的设备系统并进入e步骤。
全文摘要
本发明涉及嵌入式设备技术,解决了嵌入式Linux手持移动终端设备软件升级需要外接一个RS232串行调试接口的缺点,提供了一种通过SD卡对嵌入式Linux设备进行升级的方法,其技术方案概括为通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,包括以下步骤a.交叉编译得到更新命令,并存储在可作为设备启动根文件系统的SD卡上;b.在SD卡上创建根文件更新列表及更新源程序模块;c.将SD卡插入设备并通过特定操作启动更新程序;d.进行升级;e.升级完成。其有益效果是,可通过SD卡对嵌入式Linux设备进行简单、快捷、安全的软件升级,适用于基于MTD分区的嵌入式Linux手持移动终端设备。
文档编号G06F9/445GK101344854SQ20081030414
公开日2009年1月14日 申请日期2008年8月22日 优先权日2008年8月22日
发明者晓 周, 程远兵 申请人:四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1