CN100561433C - 嵌入式系统及其升级方法 - Google Patents
嵌入式系统及其升级方法 Download PDFInfo
- Publication number
- CN100561433C CN100561433C CNB2006100219851A CN200610021985A CN100561433C CN 100561433 C CN100561433 C CN 100561433C CN B2006100219851 A CNB2006100219851 A CN B2006100219851A CN 200610021985 A CN200610021985 A CN 200610021985A CN 100561433 C CN100561433 C CN 100561433C
- Authority
- CN
- China
- Prior art keywords
- upgrade
- software upgrading
- module
- software
- embedded system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式系统技术,特别涉及一种在嵌入式系统引导程序中实现升级的技术。本发明提供一种在不扩充bootloader的情况下,让系统可以通过http、tftp协议下载软件实现系统升级的嵌入式系统及其升级方法,通过在FLASH增加一个经操作系统裁减后的软件升级模块,来下载升级软件,不需要在bootloader中再写驱动程序和网络协议,即直接利用裁减后的操作系统中已有的驱动程序和网络协议来下载升级软件。本发明实现了在引导阶段完成系统升级。裁减过的软件升级模块小,不增加系统成本,而且在主文件系统损坏时还可提供系统恢复功能,提高了安全性,有利于软件的后续升级和维护,有着较大的社会效益和使用价值。
Description
技术领域
本发明涉及嵌入式系统技术,特别涉及一种在嵌入式系统引导程序中实现升级的技术。
背景技术
嵌入式软件系统由于具有操作系统和众多的驱动程序、协议栈和应用程序,系统较为复杂,从而变得脆弱,容易发生程序错误而需要不断的升级。
系统引导程序(bootloader)是嵌入式系统上电启动运行的第一段软件代码,是在操作系统内核或用户应用程序运行之前,运行的一段子程序。通过这段程序,初始化硬件设备、建立内存空间的映射图,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。即在嵌入式系统中系统引导模块与操作系统相连,引导操作系统运行。
嵌入式系统软件一般由设备开发商在试制或生产时通过EJTAG调试器或编程器烧录到FLASH中,其bootloader功能很弱。虽然现有的嵌入式系统包含有RS232串口、网络接口、升级包存储单元,但系统如欲在引导程序中实现系统升级,必须额外在引导程序中编写大量的软件代码,增加网口驱动、HTTP协议栈等模块。经扩充后的系统引导模块通过操作系统可分别与RS232串口、网络接口通信,把下载的升级软件保存在升级包存储单元。但是由于不同平台硬件架构不同,软件要做很多的移植工作,其工作量较大,此类方法操作复杂且升级软件速度较慢,给产品开发商和用户带来了诸多不便。
发明内容
本发明所要解决的技术问题是:提供一种在不扩充bootloader的情况下,让系统可以通过http、tftp协议下载软件实现系统升级的嵌入式系统及其升级方法。
本发明为解决上述技术问题采用的技术方案是:
嵌入式系统,包括系统引导模块、操作系统、RS232串口、网络接口、升级包存储单元;增加了一个软件升级模块,操作系统与系统引导模块相连;软件升级模块也与系统引导模块相连;软件升级模块还分别与RS232串口、网络接口、升级包存储单元相连。
通过在FLASH中增加一个软件升级模块,该软件升级模块为裁减后的操作系统,通过该软件升级模块来下载升级软件,不需要在bootloader中再写驱动程序和网络协议,即直接利用裁减后的操作系统中已有的驱动程序和网络协议来下载升级软件。
本发明还提供该嵌入式系统的升级方法:软件升级模块启动中先检测是否在延迟时间内出现升级请求,若没有则正常启动;若有则进入软件升级模块,执行升级程序下载、写FLASH。其具体步骤如下:
a、嵌入式系统上电,运行系统引导程序,统引导程序完成硬件的初始化并加载相关的硬件驱动程序;
b、判断在延迟时间内是否有升级请求,若否,进入步骤c;若是,进入步骤d;
c、启动操作系统;
d、启动软件升级模块,软件升级模块设置网络参数,并通过网络接口与升级服务器通信,将升级文件下载到FLASH,升级完毕回到步骤a。
本发明的有益效果是:使用本发明所述嵌入式系统进行软件升级,增加一个经过操作系统裁减后的软件升级模块来加强引导程序的功能,实现了在引导阶段完成系统升级,大大节省了工作量,缩短产品的开发周期。裁减过的软件升级模块很小,不增加系统成本,而且在主文件系统损坏时还可提供系统恢复功能,提高了安全性,有利于软件的后续升级和维护,有着较大的社会效益和使用价值。
以下结合附图与具体实施方式对本发明做进一步说明。
附图说明
图1为嵌入式系统示意图;
图2为嵌入式系统的升级流程图。
具体实施方式
下面以PNX8550开发平台为例,采用PHILIPS PNX8550开发板,已经移植了linux操作系统,相关驱动和应用软件基本完成,有一个基本的bootloader,此bootloader只有uart驱动和nand FLASH驱动,要让此bootloader支持文件下载功能需要写网卡驱动和TCP/IP、tftp、http协议,工作量较大且不便于移植。
linux内核本来就包含了网卡驱动和TCP/IP、tftp、http协议,裁剪linux内核,生成一个专门用来下载升级软件的软件升级模块,包括网卡芯片驱动、FLASH读写驱动、RS232串口驱动等,构成一个嵌入式最小系统,将与网络连接、下载保存无关的进程模块裁减掉。
操作系统不用动态模块库,只用静态模块,文件系统采用initramfs,网卡驱动采用静态方式连接进内核,rootfs文件系统采用busybox编译,只保留httpget程序,编译成vmlinux,再用gzip压缩。
进一步裁减,将执行的第一个进程init改成http下载程序,去掉bash、init等shell程序。
再进一步裁减,改造linux启动部分,将linux启动线程init改成http下载线程,去掉rootfs文件系统。
FLASH上保留最终裁减过后的操作系统,即软件升级模块。利用此软件升级模块下载升级软件至FLASH,实现系统升级。如图1所示,形成双系统bootloader,除操作系统与系统引导模块相连以外,还有软件升级模块也与系统引导模块相连;软件升级模块还分别与RS232串口、网络接口、升级包存储单元相连。上述嵌入式系统的FLASH空间分配如下表:
程序 | 地址 | 大小 |
bootloader | 0x00000000~0x00040000 | 256K |
软件升级模块 | 0x00040000~0x00300000 | 2M-256K |
操作系统 | 0x00300000~0x01000000 | 2M-64M |
这样就不需要在bootloader中写相关驱动程序,嵌入式系统利用软件升级模块中的驱动和网络协议来下载升级软件,还可以利用驱动中的LCD驱动以图形方式显示软件下载、写入FLASH的进度,不但缩短了开发周期,而且功能强大,http下载可以穿透代理,可以显示下载进度图形。
裁减操作系统,也可以用其他比较小的系统如ucDOS、pSos等系统,去掉所有不用的功能,只保留http下载和写FLASH程序,用gzip压缩。
如图2所示,为嵌入式系统的升级流程如下:
嵌入式系统上电复位后,首先运行bootloader,此程序主要完成硬件的初始化并加载相关的硬件驱动程序。当bootLoader初始化结束后,通过软件控制加入3秒的软件延时,在此时间段内判断RS232串口有无请求升级的按键按下,若无,延迟时间到后立即启动操作系统,进行正常引导。若在延迟时间内RS232串口接收到有相应的升级功能请求键按下,立刻进入软件升级流程。通过设置网络参数(本机地址、服务器地址、MAC地址、网络传输协议等)来与升级服务器互连互通。设置结束后按下升级开始功能键开始软件升级,若升级成功则返回到上电初始化状态重起系统。
升级的软件一般包括操作系统的驱动修正程序或应用层面的增值服务软件两个方面。
Claims (8)
1、一种嵌入式系统,包括系统引导模块、操作系统、RS232串口、网络接口、升级包存储单元,其特征在于,还包括软件升级模块,所述软件升级模块与所述系统引导模块相连;所述软件升级模块分别与所述RS232串口、所述网络接口、所述升级包存储单元相连;
所述系统引导模块用于运行系统引导程序,完成硬件的初始化并加载相关的硬件驱动程序,在延迟时间内检测RS232串口是否有升级请求,如是,启动软件升级模块;如否,启动操作系统;
所述RS232串口用于接收升级请求;
所述网络接口用于与升级服务器通信;
所述升级包存储单元用于存储下载的升级文件;
所述软件升级模块用于设置网络参数,并通过网络接口与升级服务器通信,将升级文件下载到升级包存储单元,下载完毕后控制进行软件升级。
2、如权利要求1所述一种嵌入式系统,其特征在于,所述系统引导模块、操作系统、升级包存储单元、软件升级模块都内置于FLASH中。
3、如权利要求1或2所述一种嵌入式系统,其特征在于,所述软件升级模块包括网卡芯片驱动、FLASH读写驱动、RS232串口驱动。
4、如权利要求1所述一种嵌入式系统的升级方法,包括以下步骤:
a、嵌入式系统上电,运行系统引导程序,系统引导程序完成硬件的初始化并加载相关的硬件驱动程序;
b、判断在延迟时间内是否有升级请求,若否,进入步骤d;若是,进入步骤c;
c、启动软件升级模块,软件升级模块设置网络参数,并通过网络接口与升级服务器通信,将升级文件下载到FLASH,升级完毕回到步骤a;
d、启动操作系统。
5、如权利要求4所述一种嵌入式系统的升级方法,其特征在于,所述软件升级模块为裁减后的操作系统,包括网卡芯片驱动、FLASH读写驱动、RS232串口驱动。
6、如权利要求4或5所述一种嵌入式系统的升级方法,其特征在于,所述软件升级模块保存在所述FLASH上。
7、如权利要求6所述一种嵌入式系统的升级方法,其特征在于,所述步骤b,所述升级请求由RS232串口输入。
8、如权利要求7所述一种嵌入式系统的升级方法,其特征在于,所述网络参数包括本机地址、服务器地址、MAC地址、网络传输协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100219851A CN100561433C (zh) | 2006-09-30 | 2006-09-30 | 嵌入式系统及其升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100219851A CN100561433C (zh) | 2006-09-30 | 2006-09-30 | 嵌入式系统及其升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1928820A CN1928820A (zh) | 2007-03-14 |
CN100561433C true CN100561433C (zh) | 2009-11-18 |
Family
ID=37858794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100219851A Expired - Fee Related CN100561433C (zh) | 2006-09-30 | 2006-09-30 | 嵌入式系统及其升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100561433C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253846A (zh) * | 2010-05-21 | 2011-11-23 | 康佳集团股份有限公司 | 一种嵌入式系统软件升级的方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477471B (zh) * | 2009-01-07 | 2014-04-30 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式系统固件在线升级方法 |
CN102214106B (zh) * | 2010-04-08 | 2014-03-26 | 三星电子(中国)研发中心 | 嵌入式设备双系统自动引导方法 |
CN101882087A (zh) * | 2010-06-30 | 2010-11-10 | 中兴通讯股份有限公司 | 一种多媒体终端设备及其维护方法 |
CN102541585B (zh) * | 2011-11-11 | 2016-05-18 | 深圳市迪威新软件技术有限公司 | 一种远程升级方法及嵌入式系统 |
CN102799452B (zh) * | 2012-06-29 | 2015-10-07 | 深圳市安普尔科技有限公司 | 系统软件升级方法和装置 |
CN103095497A (zh) * | 2013-01-11 | 2013-05-08 | 厦门亿联网络技术股份有限公司 | 一种voip话机的恢复模式升级方法 |
CN103559059A (zh) * | 2013-11-05 | 2014-02-05 | 广东新支点技术服务有限公司 | 一种快速的免介质Linux系统升级方法 |
CN103677941B (zh) * | 2013-12-27 | 2017-08-11 | 北京大唐智能卡技术有限公司 | 一种实现智能卡操作系统模块升级的方法及装置 |
CN103744702A (zh) * | 2014-01-07 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | 一种交换、路由设备的双系统启动方法 |
CN103761129B (zh) * | 2014-01-13 | 2017-04-12 | 中南大学 | 一种在Bootloader层实现SDIO接口驱动的方法 |
CN104965744A (zh) * | 2015-07-10 | 2015-10-07 | 上海斐讯数据通信技术有限公司 | 一种系统升级方法及嵌入式系统 |
CN105204896A (zh) * | 2015-09-08 | 2015-12-30 | 江苏绿扬电子仪器集团有限公司 | 一种数字存储示波器的BootLoader设计方法 |
CN105278410B (zh) * | 2015-10-26 | 2018-07-10 | 广东威创视讯科技股份有限公司 | 一种自动嵌入最小系统的方法、装置及系统 |
CN105279002B (zh) * | 2015-11-23 | 2018-10-26 | 上海网测通信技术有限公司 | 嵌入式系统中基于系统引导文件的自动升级方法 |
CN107844305A (zh) * | 2016-09-20 | 2018-03-27 | 芯讯通无线科技(上海)有限公司 | 嵌入式设备的软件升级方法及嵌入式设备 |
CN106878160A (zh) * | 2017-02-24 | 2017-06-20 | 烽火通信科技股份有限公司 | 家庭网关进入安全模式的方法及家庭网关系统 |
CN112882731A (zh) * | 2021-01-08 | 2021-06-01 | 北京锦鸿希电信息技术股份有限公司 | 嵌入式软件升级方法和装置 |
CN113282321A (zh) * | 2021-05-28 | 2021-08-20 | 武汉天喻信息产业股份有限公司 | 一种智能设备的固件更新方法及系统 |
CN114489702B (zh) * | 2022-01-29 | 2023-09-15 | 北京有竹居网络技术有限公司 | 安装操作系统的方法、装置、介质以及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517899A (zh) * | 2003-01-14 | 2004-08-04 | 联想(北京)有限公司 | 更新嵌入式设备的操作系统的方法 |
CN1567195A (zh) * | 2003-06-20 | 2005-01-19 | 华为技术有限公司 | 在嵌入式系统中实现引导程序热升级的方法 |
CN1808385A (zh) * | 2006-01-20 | 2006-07-26 | 北京朗通环球科技有限公司 | 一种嵌入式系统的引导系统 |
-
2006
- 2006-09-30 CN CNB2006100219851A patent/CN100561433C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517899A (zh) * | 2003-01-14 | 2004-08-04 | 联想(北京)有限公司 | 更新嵌入式设备的操作系统的方法 |
CN1567195A (zh) * | 2003-06-20 | 2005-01-19 | 华为技术有限公司 | 在嵌入式系统中实现引导程序热升级的方法 |
CN1808385A (zh) * | 2006-01-20 | 2006-07-26 | 北京朗通环球科技有限公司 | 一种嵌入式系统的引导系统 |
Non-Patent Citations (4)
Title |
---|
MC683XX系列嵌入式CPU在线下载程序的方法. 袁璟,高明,潘小强.工业控制计算机,第18卷第6期. 2005 |
MC683XX系列嵌入式CPU在线下载程序的方法. 袁璟,高明,潘小强.工业控制计算机,第18卷第6期. 2005 * |
基于嵌入式Linux的BootLoader的设计与应用. 王薇,40-46,西南交通大学研究生学位论文. 2006 |
基于嵌入式Linux的BootLoader的设计与应用. 王薇,40-46,西南交通大学研究生学位论文. 2006 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253846A (zh) * | 2010-05-21 | 2011-11-23 | 康佳集团股份有限公司 | 一种嵌入式系统软件升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1928820A (zh) | 2007-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100561433C (zh) | 嵌入式系统及其升级方法 | |
CN106990958B (zh) | 一种扩展组件、电子设备及启动方法 | |
CN101477471B (zh) | 一种嵌入式系统固件在线升级方法 | |
CN101794235B (zh) | 基于操作系统网络驱动的无盘计算机启动方法 | |
CN106201563B (zh) | 启动参数的配置方法和装置、主板启动的方法和装置 | |
US8171276B2 (en) | Minimal startup mode for performing multiple-reboot configuration | |
CN101431441B (zh) | 一种内部植入cpu的fpga系统在线升级的方法 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
US11550593B2 (en) | Information handling system quick boot | |
CN109960523B (zh) | 一种嵌入式设备的固件升级方法及装置 | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作系统切换方法 | |
CN101546270A (zh) | 一种Linux操作系统的自动安装方法、装置及系统 | |
CN103164238A (zh) | 自动化连续安装操作系统的方法 | |
CN102362241A (zh) | 用于多功能设备枚举的系统和方法 | |
CN103677915A (zh) | 一种基于TF启动卡进行flash镜像自动烧写的方法 | |
CN100389389C (zh) | 在嵌入式系统中实现引导程序热升级的方法 | |
CN102609274A (zh) | 一种系统快速启动运行方法及电视机 | |
WO2007056343A2 (en) | Networked linux machine and windows software development system | |
CN101923480B (zh) | 一种终端设备的启动方法及装置 | |
KR101249735B1 (ko) | 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체 | |
CN113656076A (zh) | 一种基于硬件复用通道的bios启动方法及装置 | |
WO2022199335A1 (zh) | 服务器部件固件升级的控制方法、装置、设备及存储介质 | |
CN102253844A (zh) | 一种启动处理器的方法和设备 | |
KR20130068630A (ko) | 임베디드 디바이스의 초기화 방법 및 장치 | |
CN104866397A (zh) | 计算机系统与控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091118 Termination date: 20170930 |