一种嵌入式Linux系统固件下载方法和装置的制作方法

文档序号:6460672阅读:303来源:国知局
专利名称:一种嵌入式Linux系统固件下载方法和装置的制作方法
技术领域
本发明涉及嵌入式系统领域,特别是涉及一种在嵌入式Linux系统中 快速下载和升级固件的方法和装置。
技术背景一般来说,嵌入式系统是执行专用功能并被内部计算机控制的设备或 者系统。嵌入式系统越来越广泛地应用于各个领域,已经深入到人们生活 的方方面面。嵌入式系统一般不使用通用型计算机,而且运行的是固化的 软件,即固件。在嵌入系统开发过程中,固件的下载和升级是必不可少的 工作。研发人员需要不断重复下载固件,以测试和验证产品的功能;生产 人员需要大批量下载固件,以完成生产任务;工程人员需要快速升级固件, 以更新产品的功能。因此, 一种快速方便的固件下载方法是非常重要的。 目前固件下载的方法主要有两大类:一是使用编程器对器件进行单独烧写; 二是使用在线下载技术,将固件下载目标板的器件中。使用编程器烧写器 件,必须把器件从电路板上取下,非常不方便。在线下载技术免去了调试 时频繁地插入取出器件的不便,也方便了以后的升级。在多种嵌入式系统中,最为引人注目的是嵌入式Limix系统。作为一 种开放源代码操作系统,Linux系统在嵌入式领域中的应用可以节约大量 成本。目前来说,嵌入式Linux系统的固件下载,在研发阶段一般采用在 线下载的方式,而在量产时采用编程器烧写方式。由于Linux的开放性和 相对复杂性,在线下载固件是一个相对复杂的过程。 一个嵌入式Linux系 统从软件的角度看通常可以分为四个部分:引导加载程序、Linux内核、文 件系统和用户应用程序。要手工部署一个完整的系统,就需要逐一下载这 四种映像文件,其中涉及多个命令和参数,有一定复杂性,对操作人员要 求比较高,如果操作不当,还可能引起下载失败。如果采用编程器烧写固 件, 一来可能要将器件不断插入和拔出,二来编程器本身成本也比较高。发明内容本发明针对现有技术在下载Linux系统固件过程中的相对复杂的技术问题,提供了一种嵌入式Linux系统的固件下载装置和方法,实现了通过 在含有固件源的计算机终端上进行操作和控制,完成固件从计算机终端下 载到目标板,并写入Flash储存器中,从而完成固件的下载和更新。本发明提出的嵌入式Linux系统的固件下载装置,包括目标板、含 有固件源的计算机终端,所述目标板与计算机终端通过串口相连,计算机 终端将嵌入式Linux系统的固件中的引导程序通过串口下载到目标板;所 述目标板与计算机终端通过高速串行接口相连,计算机终端将嵌入式 Lirmx系统的固件中非引导程序部分通过高速串行接口下载到目标板。优选的,所述的高速串行接口为以下接口中的任意一种网口、 USB 接口、 IEEE1394接口。优选的,计算机终端将嵌入式Linux系统的固件中的操作系统和用户 程序通过高速串行接口下载到目标板。优选的,所述计算机终端通过以下协议中的任意一种Xmodem协议、 Kermit协议、Ymodem协议、Zmodem协议,将嵌入式Linux系统的固件中 的弓I导程序通过串口下载到目标板。优选的,所述计算机终端通过以下协议中的任意一种TFTP协议、 FTP协议、HTTP协议,将嵌入式Linux系统的固件中非引导程序部分通 过高速串行接口下载到目标板。本发明提出的嵌入式Limix系统的固件下载方法,包括以下下载过程1) 将目标板与含有固件源的计算机终端通过串口和高速串行接口相 连,并上电;2) 计算机终端通过串口将嵌入式Limix系统的固件中的引导程序下载 到目标板;3) 计算机终端通过高速串行接口将嵌入式Lhmx系统的固件中非引导 程序部分下载到目标板。优选的,所述步骤1)中计算机终端和目标板连接的高速串行接口为 以下接口中的任意一种网口、 USB接口、 IEEE1394接口。优选的,所述步骤3)具体为计算机终端通过高速串行接口将嵌入式Linux系统的固件中的操作系统和用户程序下载到目标板。优选的,所述步骤1)中具体为计算机终端通过以下协议中的任意 一种Xmodem协议、Kermit协议、Ymodem协议、Zmodem协议,将嵌入 式Linux系统的固件中的引导程序下载到目标板。优选的,所述步骤3)中具体为计算机终端通过以下协议中的任意一 种TFTP协议、FTP协议、HTTP协议,将嵌入式Linux系统的固件中非 引导程序部分下载到目标板。本发明提出的嵌入式Linux系统的固件下载装置和方法,使得嵌入式 Linux系统的固件下载可以通过个人计算机来完成,实现了通过串口和高 速串行接口对Flash存储器进行烧写,并完成整个系统的部署。与现有技 术相比,本发明下载速度快、操作简单、成本低,既适合于研发阶段,也适 合于量产阶段。


图1是本发明优选实施例固件下载流程图;图2是本发明优选实施例下载装置原理图;图3是本发明优选实施例中下载引导程序的流程图;图4是本发明优选实施例中下载Linux内核和文件系统的流程图;图5是本发明优选实施例中下载用户应用程序的流程图。
具体实施方式
以下结合附图并通过具体实施例对本发明的技术方案进行详细说明。 本发明的灵感来源于计算机系统中常见的机器人程序。在嵌入式 Linux系统研发时,下载固件普遍使用的是方法是用串口和网口连接目 标板,在超级终端里输入相关命令和参数,以控制映像文件的下载和烧写。 整个下载过程相对比较复杂,需要熟悉相关的软硬件知识和目标系统的参 数。而且在开发阶段,需要经常升级Linux内核、文件系统和用户应用程 序,不断的重复操作、输入指令,降低了开发效率。本发明使用个人计算 机上的专用程序来代替开发人员的工作,就像一个机器人程序,自动根据 不同的情况,向目标板发出适当的指令,以实现固件的下载。现将个人计算机上的专用控制程序称为下载工具,以下同。如图1所示的固件下载流程图,Linux系统的固件分为引导程序部分和非引导程序部分,其中非引导程序包括操作系统和用户程序。本实 施例中引导程序部分为引导加载程序,非引导程序部分为Linux内核、 文件系统、用户应用程序。下载固件的过程如下1. 连接好目标板,并上电。将含有固件源的计算机终端与目标板通过串口和高速串行接口连接起 来,启动"下载工具",将目标板上电,准备开始下载。计算机终端与目标板的连接方式如图2所示的下载装置原理图。本实施例中高速串行接口采 用网口,也可以选择采用USB接口或IEEE1394接口 (一种高效的串行接口 标准,功能强大而且性能稳定,而且支持热拔插和即插即用,可以在一个 端口上连接多达63个设备)。2. 通过串口 ,使用Xmodem协议(Xmodem协议是一种广泛使用的异 步文件运输协议,这种协议以128字节块的形式传输数据,并且每个块都 使用一个校验和过程来进行错误检测)下载引导加载程序。也可以采用其 它协议进行下载,例如Kermit协议(Kermit协议也是一种异步文件运输 协议,它的速度比Ymodem或者Zmodem要慢一些)、Ymodem协议(Ymodem 协议是Xmodem协议的一种增强形式,它一次传输可发送或接受几个文件)、 Zmodem协议(Zmodem协议是Xmodem协议的一种增强形式,它不需要对每 个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。它不 仅能传输更大的数据,而且错误率更小)等,本实施例中选用Xmodem协议 主要是由于该协议比较简单通用。由于串口简单通用,嵌入式系统刚启动 时一般都具有串口通信能力,故引导程序的下载适合于通过串口来进行。上电后,目标板发送出"CCC"字符,提示已经准备好。"下载工具" 发出烧写指令,通过串口和Xmodem协议,将引导加载程序(RomBoot、 U-Boot)下载到DataFlash上。如图3所示的下载引导加载程序流程。下 载引导加载程序的过程因应不同的系统可能略有不同,有的CPU芯片不支 持直接从片外引导,所以需要RomBoot (只读引导程序, 一般用于系统的 初始加载)来进行引导,有的CPU芯片不需要RomBoot,直接加载U-Boot (一种引导加载程序,用于加载嵌入式操作系统)。下载的顺序是先下载 RomBoot,再下载U-Boot,图3也表明了此顺序。3. 通过网口 ,使用TFTP协议(Trival File Transfer Protocol简单文件传输协议,用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务)下载Linux内核和文件系统,并 写入Flash存储器。此处还可以采用其它协议进行下载,例如FTP协议(File Transfer Protocol文件传输协议,用来在客户机与服务器之间进行文件 传输的协议,提供全面和可靠的文件传输服务)、HTTP (HyperTex Transfer Protocol超文本传输协议,用来在WWW上传输信息的协议),不过由于 TFTP比较简单,容易实现,比较适合用于下载固件。上一步完成后,如图4所示下载Linux内核和文件系统流程,进入 U-Boot的命令行状态,"下载工具"发出下载命令,通过网口和TFTP协议 将Linux内核和文件系统的映象下载到内存里,再发出烧写指令,将映象 写入到Flash存储器上。4. 通过网口,使用TFTP协议下载用户应用程序,并保存到指定目 录。此处也可以采用其它协议,例如FTP、 HTTP,不过由于TFTP比较简单, 容易实现,比较适合用于下载固件。上一步完成后,如图5所示的下载用户应用程序流程,进入Linux的 命令行状态,"下载工具"发送命令,执行脚本,通过网口和TFTP协议将 用户应用程序的压縮包下载到临时目录,再将压縮包解压到指定目录。5. 固件下载完成。至此,下载固件的任务完成。整个下载过程均由"下载工具"控制, 操作人员不需干预,只需按一下命令按钮,启动下载任务,然后稍等一会, 固件就会自动下载到目标板上。此外,本发明还可以单独下载引导加载程序、Linux内核、文件系统 和用户应用程序中的任意一个或多个,只要在"下载工具"中选择所要下 载的项目即可。这样对于开发人员来说非常方便,因为开发人员往往只需 要更新文件系统或用户应用程序。固件的划分方式是多样的,不同的系统有不同的划分方式,有的按功 能划分,有的按储存介质划分。 一般来说, 一个有操作系统的嵌入式系统, 从功能上来看,至少要有三部分引导程序、操作系统和用户程序。本发 明提出的分步下载的原则是从简单到复杂,先下载最基本最简单的部分(如 引导程序),再下载较为复杂的部分(如操作系统),最后下载用户应用程序。 由于串口简单通用,嵌入式系统刚启动时一般都具有串口通信能力,故引导程序的下载普遍是通过串口来进行的。接下来,由于操作系统和用户程序所占空间比较大,如果使用串口进行下载,速度会比较慢。而此时引导 程序己经下载完毕并运行起来,它可以支持更多的通信接口,例如网络接口、 USB接口等,所以可以使用这些高速接口来下载操作系统和应用程序。对于其它嵌入式系统的固件下载,也可以借鉴本发明的下载方法,使 用一个下载工具来完成下载过程的控制。特别是对于复杂的嵌入式系统中, 分步下载的优势就更明显。本发明由于在下载过程中不需要其他设备介入,而且下载过程简单、 直观,操作人员无需专门培训,大大提高了批量生产效率。同时下载接口 简单,可靠性高、成本低。解决了现有技术中高可靠性、低成本、高效率 无法兼顾的缺点。而且统一了操作方法,开发人员、生产人员或工程人员 使用起来都得心应手。经测试,采用本发明下载整个嵌入式Linux系统只需约两分钟(其中 Linux的启动占用于约半分钟)。在不添加其它设备的情况下,只需运行"下 载工具",就可以实现一键快速下载,正是本发明的最大优点。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种嵌入式Linux系统的固件下载装置,其特征在于,所述装置包括目标板、含有固件源的计算机终端,所述目标板与计算机终端通过串口相连,计算机终端将嵌入式Linux系统的固件中的引导程序通过串口下载到目标板;所述目标板与计算机终端通过高速串行接口相连,计算机终端将嵌入式Linux系统的固件中非引导程序部分通过高速串行接口下载到目标板。
2. 根据权利要求l所述的嵌入式Limix系统的固件下载装置,其特征 在于,所述的高速串行接口为以下接口中的任意一种网口、 USB接口、 IEEE1394接口。
3. 根据权利要求1或2所述的嵌入式Linux系统的固件下载装置,其 特征在于,计算机终端将嵌入式Linux系统的固件中的操作系统和用户程 序通过高速串行接口下载到目标板。
4. 根据权利要求1或2所述的嵌入式Linux系统的固件下载装置,其 特征在于,所述计算机终端通过以下协议中的任意一种Xmodem协议、 Kermit协议、Ymodem协议、Zmodem协议,将嵌入式Linux系统的固件中 的弓I导程序通过串口下载到目标板。
5. 根据权利要求1或2所述的嵌入式Linux系统的固件下载装置,其 特征在于,所述计算机终端通过以下协议中的任意一种TFTP协议、FTP 协议、HTTP协议,将嵌入式Linux系统的固件中非引导程序部分通过高 速串行接口下载到目标板。
6. —种嵌入式Linux系统的固件下载方法,其特征在于,所述方法包 括以下下载过程1) 将目标板与含有固件源的计算机终端通过串口和高速串行接口相 连,并上电;2) 计算机终端通过串口将嵌入式Linux系统的固件中的引导程序下载 到目标板;3) 计算机终端通过高速串行接口将嵌入式Linux系统的固件中非引导 程序部分下载到目标板。
7. 根据权利要求6所述的嵌入式Linux系统的固件下载方法,其特征在于,所述步骤1)中计算机终端和目标板连接的高速串行接口为以下接口中的任意一种网口、 USB接口、 IEEE1394接口。
8. 根据权利要求6或7所述的嵌入式Linux系统的固件下载方法,其 特征在于,所述步骤3)具体为计算机终端通过高速串行接口将嵌入式 Limix系统的固件中的操作系统和用户程序下载到目标板。
9. 根据权利要求6或7所述的嵌入式Linux系统的固件下载方法,其 特征在于,所述步骤1)中具体为计算机终端通过以下协议中的任意一 种Xmodem协议、Kermit协议、Ymodem协议、Zmodem协议,将嵌入式 Linux系统的固件中的引导程序下载到目标板。
10. 根据权利要求6或7所述的嵌入式Linux系统的固件下载方法, 其特征在于,所述步骤3)中具体为计算机终端通过以下协议中的任意 一种TFTP协议、FTP协议、HTTP协议,将嵌入式Linux系统的固件中 非弓I导程序部分下载到目标板。
全文摘要
本发明公开了一种嵌入式Linux系统的固件下载装置和方法,依照从简单到复杂的分步下载原则,先通过串口下载最基本最简单的部分,再下载较为复杂的部分,最后下载用户应用程序。采用本发明提出的装置和方法使得嵌入式Linux系统的固件下载可以通过个人计算机来完成,实现了通过串口和高速串行接口对Flash存储器进行烧写,并完成整个系统的部署。与现有技术相比,本发明下载速度快、操作简单、成本低,既适合于研发阶段,也适合于量产阶段。
文档编号G06F9/445GK101216773SQ20081006502
公开日2008年7月9日 申请日期2008年1月9日 优先权日2008年1月9日
发明者陈国桥 申请人:深圳国人通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1