一种智能终端、应用程序更新系统及其更新方法
技术领域
本发明涉及嵌入式系统的应用程序更新领域,具体涉及一种具有应用程序更新功能的智能终端、应用程序更新系统及其更新方法。
背景技术
嵌入式Linux在嵌入式领域发展迅速,Linux已经成为了一个功能强大、设计完善的操作系统。特别在消费电子、工控、终端类产品中嵌入式Linux应用更为广泛。嵌入式LINUX系统一般分为引导启动(bootloader)、Linux内核(驱动程序)、文件系统、应用程序4个部分。其中,启动代码、内核、文件系统相对来说比较稳定,更新的机会很小。但是,由于用户需求的变化,主站开发人员和终端开人员对规约理解的偏差,应用程序需要频繁的更新。目前基于LINUX系统终端应用程序更新方法如图1所示,其包括PC机和智能终端,二者之间通过网络或串口的方式进行应用程序更新。
总的来说,当前基于Linux系统的智能设备应用程序更新有如下三种方式:
1、更新整个文件系统(应用程序被包含在文件系统内):使用芯片厂家提供的上位机软件通过串口把文件系统烧写到系统指定的Flash分区上。
2、通过网络的方式更新应用程序:用网线连接智能设备和PC机,终端开启FTP服务,PC机侧用FTP客户端登陆到智能设备,然后把新的应用程序覆盖以前的应用程序。
3、通过串口或者GPRS更新应用程序:根据智能设备和服务器端指定的协议,实现文件下载。
当前基于嵌入式Linux系统的智能设备应用程序更新仍存在如下缺陷:
1、应用程序的更新,需要上位机的支持,当在生产和现场更换应用程序时,专业人员需要带着笔记本去更新应用程序,这无疑为生产和维护带来很大的不便。
2、传统的基于嵌入式Linux系统的智能设备应用程序更新需要网络的支持,由于网络部分是高频部分,需要和其它部分电路隔离,这位电路板设计带来了很大的麻烦,而且网络部分成本(网络芯片,晶振,电路板等)大概在50元。
为此,迫切的需要本领域的技术人员开发出一款应用方便、不需要额外设备的应用程序更新方法。
发明内容
为了克服现有技术的缺陷,本发明的目的之一在于提出一种成本低廉,操作、使用方便的智能终端。
本发明的智能终端是通过如下技术方案实现的:
一种具有应用程序更新功能的智能终端,其包括:
通信接口模块,其包括U盘接口,用于插接存储有新应用程序的U盘;
存储模块,用于存储智能终端中的应用程序;和
应用程序更新模块,用于对U盘中的新应用程序与智能终端中的应用程序进行比较、处理后,执行智能终端中的应用程序。
进一步地,所述通信接口单元可以包括下述任一至全部接口:载波接口、GPRS接口、CDMA接口和电台接口。
进一步地,所述应用程序更新模块可以包括:
判断子模块,用于判断U盘接口处是否有U盘插入;和
处理子模块,用于根据新应用程序的版本与智能终端中应用程序的版本比较结果,来确定更新智能终端中的应用程序记录后再执行该应用程序或者直接执行智能终端中的应用程序。
本发明的另一目的在于提出一种应用程序更新系统,该系统包括管理服务器和/或上述智能终端,所述管理服务器,用于在编译后的新应用程序尾添加数据结构,并存储于U盘中;所述智能终端,用于将U盘中的新应用程序与智能终端中的应用程序进行比较、处理后,执行智能终端中的应用程序。
进一步地,所述管理服务器可以包括:
读取模块,用于将新应用程序拷贝到系统文件中的指定位置,获取新应用程序的长度、并读取新应用程序尾的一个定长数据结构;
定位模块,根据定长数据结构来确定是定位系统文件指针到新应用程序尾或者定位系统文件指针到新应用程序尾前定长位置;和
处理模块,用于建立数据结构、并在新应用程序尾添加数据结构;
所述智能终端可以包括:
通信接口模块,其包括U盘接口,用于插接存储有新应用程序的U盘;
存储模块,用于存储智能终端中的应用程序;和
应用程序更新模块,用于对U盘中的新应用程序与智能终端中的应用程序进行比较、处理后,执行智能终端中的应用程序。
进一步地,所述定位模块可以包括:
程序标识子模块,用于检查程序标识是否正确;
检验位子模块,用于检查定长数据结构中的校验位是否正确;
定位子模块,用于定位系统文件指针到新应用程序尾或者定位系统文件指针到新应用程序尾前定长位置。
进一步地,所述通信接口单元可以包括下述任一至全部接口:载波接口、GPRS接口、CDMA接口和电台接口。
进一步地,所述应用程序更新模块可以包括:
判断子模块,用于判断U盘接口处是否有U盘插入;和
处理子模块,用于根据新应用程序的版本与智能终端中应用程序的版本比较结果,来确定更新智能终端中的应用程序记录后再执行该应用程序或者直接执行智能终端中的应用程序。
本发明的再一目的在于提出一种应用程序更新方法,其包括如下步骤:
在编译后的新应用程序尾添加数据结构,并存储于U盘中;
将所述U盘中的新应用程序与智能终端中的应用程序进行比较、处理后,执行新应用程序。
进一步地,在编译后的新应用程序尾添加数据结构的步骤可以包括:
1)将新应用程序拷贝到系统文件中的指定位置,获取新应用程序的长度、并读取新应用程序尾的一个定长数据结构;
2)根据定长数据结构来确定是定位系统文件指针到新应用程序尾或者定位系统文件指针到新应用程序尾前定长位置;
3)建立数据结构,并在新应用程序尾部添加该数据结构,然后将该新应用程序存储于U盘中。
进一步地,所述步骤2中定位系统文件指针可以包括如下步骤:
2-1)检查定长数据结构中的程序标识是否正确,如正确,则进一步检查该定长数据结构的校验位;否则直接定位系统文件指针到新应用程序尾;
2-2)检查定长数据结构中的校验位是否正确,如正确,则进一步判断是否覆盖程序标识和校验位;如需要覆盖,则定位系统文件指针到新应用程序尾;否则定位系统文件指针到新应用程序尾前定长位置。
进一步地,所述步骤3中建立的数据结构包括下述内容:程序标识、程序处理时间和数据结构的校验位。
进一步地,将新应用程序与智能终端中的应用程序进行比较、处理的步骤可以包括:
1)判断是否有U盘插入,如果是,则进行步骤2;否则直接执行智能终端中的应用程序;
2)U盘挂载后,对U盘中的新应用程序和智能终端中的应用程序进行比较,如果二者的程序处理时间不一致,则将新应用程序复制到智能终端要运行的目录中,并更新智能终端的应用程序记录,更新完成后U盘卸载,执行智能终端中的应用程序;否则直接执行智能终端中的应用程序。
进一步地,所述新应用程序是以二进制的方式进行编译的。
与现有技术相比,本发明的有益效果在于:
1、本发明的终端使用U盘替代了现有技术中的网络进行应用程序更新,大幅降低了智能终端和整个应用程序更新系统的成本;
2、由于本发明的应用程序更新系统是在管理服务器中对新应用程序尾数据结构后复制到U盘中,将U盘插入智能终端,终端重启后,智能终端便开始自动更新应用程序;采用本发明更新系统的结构和通过U盘作为传递介质的方法,可以使现场应用程序更新时,不需要专业人员进行操作,方便使用;
3、当需要进行大批量终端生产时,本发明的更新系统和方法可以大大缩短程序更新的耗时;
4、采用本发明的终端进行应用程序升级时,会保存系统升级前的参数和数据。
附图说明
图1是现有应用程序更新示意图;
图2是本发明智能终端应用程序更新的实施例结构示意图;
图3是管理服务器的实施例结构示意图;
图4是智能终端的实施例结构示意图;
图5是管理服务器进行应用程序处理的实施例流程图;
图6是智能终端进行自运行程序的实施例流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明。
如图4所示,具有应用程序更新功能的智能终端包括:
通信接口模块,其包括U盘接口,用于插接存储有新应用程序的U盘;
存储模块,可采用SDRAM或DDR2内存作为存储模块,用于存储智能终端中的应用程序;和
应用程序更新模块,用于对U盘中的新应用程序与智能终端中的应用程序进行比较、处理后,执行智能终端中的应用程序。
为了进一步扩展本发明智能终端的应用范畴,通信接口单元还可以包括下述任一至全部接口:载波接口、GPRS接口、CDMA接口和电台接口。
应用程序更新模块进一步包括判断子模块和处理子模块,其中,判断子模块,用于判断U盘接口处是否有U盘插入;处理子模块,用于根据新应用程序的版本与智能终端中应用程序的版本比较结果,来确定更新智能终端中的应用程序记录后再执行该应用程序或者直接执行智能终端中的应用程序。上述判断子模块和处理子模块可以由CPU来完成,待CPU根据比较结果确定执行方式,可通过嵌在CPU上的NandFlash板来执行智能终端中的应用程序。
采用这种终端和将U盘插入智能终端进行更新的方式,不但操作简单,解决了需要上位机支持的弊端,还可以省略智能终端与上位机之间网络部分设置的问题,大大降低了更新应用程序的成本;此外,更是解决了需要专业技术人员才能更新应用程序的问题。
如图2所示,当本发明的终端需要更新应用程序时,开发人员可以把新应用程序存放到U盘的根目录下,车间人员或现场人员只需将U盘直接插入智能终端的U盘接口上,然后重启智能终端,智能终端便可以自动安装或更新应用程序。
为了实现上述目的,本发明还提出了一种包括管理服务器和上述图4所示智能终端的应用程序更新系统。
管理服务器的功能是在经过上位机编译后的新应用程序尾添加一个固定的数据结构,并将经过上述处理的新应用程序存储与U盘中,添加数据结构的目的是为了区分应用程序的软件版本和恶意用户进行升级;智能终端的功能是:当智能终端重启或者上电启动后,智能终端会判断是否有U盘插入,然后对U盘中的新应用程序和智能终端中的应用程序进行比较、处理,最后执行智能终端中的应用程序。
如图3所示,管理服务器包括读取模块、定位模块和处理模块,定位模块分别与读取模块和处理模块相连接。其中,读取模块,用于将新应用程序添加到系统文件中的指定位置,获取新应用程序的长度、并读取新应用程序尾的一个定长数据结构;定位模块,用于根据定长数据结构来确定是定位系统文件指针到新应用程序尾或者定位系统文件指针到新应用程序尾前定长位置,由于定长数据结构包括下述内容:程序标识、程序处理时间和数据结构的校验位,所以定位模块可以根据定长数据结构中的上述内容来确定定位系统文件指针的位置;处理模块,用于建立数据结构、并在新应用程序尾添加数据结构。
定位模块进一步包括程序标识子模块、校验位子模块和定位子模块,程序处理时间子模块分别与程序标识子模块和校验位子模块相连,校验位子模块与定位子模块相连。其中,程序标识子模块,用于检查程序标识是否正确;检验位子模块,用于检查定长数据结构中的校验位是否正确;定位子模块,用于定位系统文件指针到新应用程序尾或者定位系统文件指针到新应用程序尾前定长位置。
本发明对基于嵌入式Linux智能终端应用程序更新提供了一种流程:
步骤一,当现场工程人员或者车间调试人员发现应用程序有问题时,开发人员根据返回的情况,进行程序修改后,编译后形成新应用程序。
步骤二,开发人员用管理服务器处理编译后的新应用程序,然后把处理过的新应用程序拷贝到U盘根目录下;
步骤三:开发人员把U盘交给工程人员或者车间调试人员,工程人员或现场调试人员把U盘插入到智能终端的U盘接口,然后重启终端,终端就会自动运行程序更新。
本发明的应用程序更新方法主要包括管理服务器对编译后的新应用程序进行处理环节和智能终端的系统内核启动后的自运行环节,下面进行详细说明。
1、如图5所示,对编译后的新应用程序进行处理的实现。
首先,对编译后的新应用程序(该新应用程序是在管理服务器中以二进制的方式进行编译的)进行判断该新应用程序是否需要处理,如果需要处理,则在该新应用程序的尾部添加一个数据结构,并将添加完数据结构的新应用程序存储于U盘中。实现该步骤的具体流程如下:
1-1)将新应用程序添加到管理服务器系统文件中的指定位置,获取新应用程序的长度、并读取新应用程序尾的一个定长数据结构;
1-2)根据读取的定长数据结构来判断新应用程序是否已经处理,处理工作包括依次检查定长数据结构中的程序标识和数据结构的校验位是否正确,如果其中任一项检查不正确,则直接将定位系统文件指针到新应用程序的尾部;如果两项检查均正确,则进行步骤1-3;
1-3)判断是否要覆盖上述检查过的程序标识和校验位中,如需覆盖,则定位系统文件指针到新应用程序尾;否则定位系统文件指针到新应用程序尾前定长位置;
1-4)建立数据结构;该数据结构包括如下内容:①程序标识,此标识为了防止恶意用户的破坏,②程序处理时间,此时间当做程序版本来区分,具有唯一性,③添加数据结构的校验,例如可以在程序尾部添加程序标识和奇数位校验和,偶数位校验和,整个尾部结数据构校验和等,目的是为了程序的稳定和可靠性。
1-5)在新应用程序尾部添加该数据结构,当需要更新应用文件时,则将该新应用程序存储于U盘中。
本领域技术人员应了解,1-2)中判断新应用程序已经处理后,还可以在应用程序的尾部添加一个程序版本号,后续1-3)覆盖程序标识,还可以覆盖程序版本号。
2、如图6所示,内核启动后,自运行环节的实现。
2-1)判断是否有U盘插入,如果是,则进行步骤2-2;否则直接执行智能终端中的应用程序;
2-2)U盘挂载,对U盘中的新应用程序和智能终端中的应用程序进行比较,如果二者的程序处理时间不一致,则将新应用程序复制到智能终端要运行的目录中,并更新智能终端的应用程序记录,更新完成后U盘卸载,并执行智能终端中的应用程序;否则直接执行智能终端中的应用程序。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。