系统软件的升级方法及其运行方法技术方案

技术编号:23287729 阅读:18 留言:0更新日期:2020-02-08 17:53
本发明专利技术的实施例提供一种系统软件的升级方法及其运行方法,涉及计算机控制技术领域,可以实现系统软件高效的升级,提高用户体验。一种系统软件的升级方法,包括:启动引导程序;判断是否升级系统软件;系统软件包括软件开发工具包和应用程序;若是,则判断升级所述软件开发工具包,和/或升级应用程序;若升级软件开发工具包,则引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间;根据升级的软件开发工具包文件中的多个API函数所分配的物理地址,生成API函数地址列表;若升级应用程序,则引导程序将升级的应用程序文件写入到存储器中的第二地址空间;应用程序利用所述API函数地址列表,调用软件开发工具包文件中的API函数。

Upgrade method and operation method of system software

【技术实现步骤摘要】
系统软件的升级方法及其运行方法
本专利技术涉及计算机控制
,尤其涉及一种系统软件的升级方法及其运行方法。
技术介绍
目前,在嵌入式产品中,应用比较广泛的是基于引导程序(BootLoader)加载源代码生成的Bin文件(二进制文件),通过该小段引导程序,初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态。但是,通常引导程序不涉及加密,在程序引导过程中可能会被盗取源代码,导致出现安全问题;并且,随着源代码的代码量越来越大,加载时间也越来越长,给用户造成了较差的体验。
技术实现思路
本专利技术的实施例提供一种系统软件的升级方法及其运行方法,可以实现系统软件高效的升级,提高用户体验。为达到上述目的,本专利技术的实施例采用如下技术方案:一方面,提供一种系统软件的升级方法,包括:启动引导程序;判断是否升级系统软件;所述系统软件包括软件开发工具包和应用程序;所述软件开发工具包由对应的软件开发工具包文件中的软件开发工具包代码编译生成;所述应用程序由对应的应用程序文件中的应用程序代码编译生成;若是,则判断升级所述软件开发工具包,和/或升级所述应用程序;若升级所述软件开发工具包,则所述引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间;根据升级的软件开发工具包文件中的多个API函数所分配的物理地址,生成API函数地址列表;若升级所述应用程序,则所述引导程序将升级的应用程序文件写入到存储器中的第二地址空间;所述应用程序利用所述API函数地址列表,调用所述软件开发工具包文件中的所述API函数。可选地,所述引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间,包括:所述引导程序利用分散加载技术,将升级的软件开发工具包文件中的API函数,分配到存储器中的所述第一地址空间的不同物理地址处。可选地,在启动引导程序之前,所述系统软件的升级方法还包括:将升级的系统软件代码分为升级的软件开发工具包代码和升级的应用程序代码;将升级的软件开发工具包代码生成升级的软件开发工具包文件;将升级的应用程序代码生成升级的应用程序代码文件;对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件。可选地,对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件,包括:利用高级加密标准算法,对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件。可选地,在对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件之后,所述系统软件的升级方法还包括:对升级的应用程序代码文件进行加密,生成升级的应用程序代码加密文件。可选地,在所述引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间之前,所述系统软件的升级方法还包括:所述引导程序将升级的软件开发工具包加密文件解密,得到升级的软件开发工具包文件。可选地,在所述引导程序将升级的应用程序文件写入到存储器中的第二地址空间之前,所述系统软件的升级方法还包括:所述引导程序将升级的应用程序代码加密文件解密,得到升级的应用程序代码文件。再一方面,提供一种系统软件的运行方法,包括:启动引导程序;所述引导程序利用如上所述的系统软件的升级方法对所述系统软件进行升级;所述系统软件包括软件开发工具包和应用程序;程序指针跳转至软件开发工具包的主函数入口,对所述软件开发工具包中的协议栈进行初始化;所述程序指针跳转至应用程序的主函数入口,对所述应用程序中的应用外设驱动进行初始化;注册所述软件开发工具包文件中的API函数;所述应用程序中的API函数指针,跳转至注册的API函数在API函数地址列表中所对应的物理地址处;根据注册的API函数所对应的物理地址,从所述存储器的第一地址空间中,调用并执行所述API函数;判断所调用的所述API函数是否执行成功;若失败,则执行复位,所述程序指针跳转回所述软件开发工具包的主函数入口;若成功,则执行启动程序,变更所述程序指针;启动并运行操作系统调度机制。本专利技术的实施例提供一种系统软件的升级方法及其运行,系统软件的代码划分为软件开发工具包代码和应用程序代码,软件开发工具包代码编译生成软件工具包,应用程序代码编译生成应用程序。由此,升级系统软件时,通过判断升级软件开发工具包,和/或升级应用程序,引导程序可单独升级软件开发工具包,或者单独升级应用程序,或者同时升级软件开发工具包和应用软件;若升级软件开发工具包,则引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间,若升级应用程序,则引导程序将升级的应用程序文件写入到存储器中的第二地址空间。通过灵活选择需要升级的文件,可降低成本,减少功耗和写入时间,进而有效提高用户体验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术的实施例提供的一种系统软件的升级方法的流程示意图;图2为本专利技术的实施例提供的再一种系统软件的升级方法的流程示意图;图3为本专利技术的实施例提供的另一种系统软件的升级方法的流程示意图;图4为本专利技术的实施例提供的又一种系统软件的升级方法的流程示意图;图5为本专利技术的实施例提供的又一种系统软件的升级方法的流程示意图;图6为本专利技术的实施例提供的一种系统软件的运行方法的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的实施例提供一种系统软件的升级方法,如图1所示,包括:S10、启动引导程序。S20、判断是否升级系统软件。系统软件包括软件开发工具包和应用程序。软件开发工具包由对应的软件开发工具包文件(stack.bin)中的软件开发工具包代码编译生成。应用程序由对应的应用程序文件(app.bin)中的应用程序代码编译生成。可以理解的是,系统软件的代码划分为软件开发工具包代码和应用程序代码;软件开发工具包代码生成软件开发工具包文件,应用程序代码生成应用程序文件;软件开发工具包文件和应用程序文件均为二进制文件。需要说明的是,软件开发工具包(SoftwareDevelopmentKit,SDK)包括协议栈(Protocolstack)和软件管理单元(SoftDeviceManager)。应用程序包括应用程序设备(ApplicationSoftDevice)和应用外设驱动(APP-PeripheralDrivers)。软件工具开发包是一种用本文档来自技高网...

【技术保护点】
1.一种系统软件的升级方法,其特征在于,包括:/n启动引导程序;/n判断是否升级系统软件;所述系统软件包括软件开发工具包和应用程序;所述软件开发工具包由对应的软件开发工具包文件中的软件开发工具包代码编译生成;所述应用程序由对应的应用程序文件中的应用程序代码编译生成;/n若是,则判断升级所述软件开发工具包,和/或升级所述应用程序;/n若升级所述软件开发工具包,则所述引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间;根据升级的软件开发工具包文件中的多个API函数所分配的物理地址,生成API函数地址列表;/n若升级所述应用程序,则所述引导程序将升级的应用程序文件写入到存储器中的第二地址空间;所述应用程序利用所述API函数地址列表,调用所述软件开发工具包文件中的所述API函数。/n

【技术特征摘要】
1.一种系统软件的升级方法,其特征在于,包括:
启动引导程序;
判断是否升级系统软件;所述系统软件包括软件开发工具包和应用程序;所述软件开发工具包由对应的软件开发工具包文件中的软件开发工具包代码编译生成;所述应用程序由对应的应用程序文件中的应用程序代码编译生成;
若是,则判断升级所述软件开发工具包,和/或升级所述应用程序;
若升级所述软件开发工具包,则所述引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间;根据升级的软件开发工具包文件中的多个API函数所分配的物理地址,生成API函数地址列表;
若升级所述应用程序,则所述引导程序将升级的应用程序文件写入到存储器中的第二地址空间;所述应用程序利用所述API函数地址列表,调用所述软件开发工具包文件中的所述API函数。


2.根据权利要求1所述的系统软件的升级方法,其特征在于,所述引导程序将升级的软件开发工具包文件写入到存储器中的第一地址空间,包括:
所述引导程序利用分散加载技术,将升级的软件开发工具包文件中的API函数,分配到存储器中的所述第一地址空间的不同物理地址处。


3.根据权利要求2所述的系统软件的升级方法,其特征在于,在启动引导程序之前,所述系统软件的升级方法还包括:
将升级的系统软件代码分为升级的软件开发工具包代码和升级的应用程序代码;
将升级的软件开发工具包代码生成升级的软件开发工具包文件;
将升级的应用程序代码生成升级的应用程序代码文件;
对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件。


4.根据权利要求3所述的系统软件的升级方法,其特征在于,对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件,包括:
利用高级加密标准算法,对升级的软件开发工具包文件进行加密,生成升级的软件开发工具包加密文件。...

【专利技术属性】
技术研发人员:李金雷李鑫
申请(专利权)人:京东方科技集团股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1