一种嵌入式软件多版本控制系统及方法技术方案

技术编号:24330687 阅读:92 留言:0更新日期:2020-05-29 19:30
本发明专利技术涉及一种嵌入式软件多版本控制系统及方法,属于车辆电子信息系统技术领域。本发明专利技术将多个独立发布版本的应用软件集成到程序存储器中,通过起动引导程序实现应用软件版本的选择,避免了在同一个软件中通过复杂的判断逻辑来实现产品工作状态的切换,提高了软件的基本可靠性,很大程度上可以节省开发成本、后期人工维护成本,有重要的工程应用价值和经济效益。本发明专利技术的可在多种嵌入式芯片中实施,系统适应性好;可增加并切换多个应用程序版本,可扩展性好且保证了软件的可靠性。

【技术实现步骤摘要】
一种嵌入式软件多版本控制系统及方法
本专利技术属于车辆电子信息系统
,具体涉及一种嵌入式软件多版本控制系统及方法。
技术介绍
随着电子技术的飞速发展,越来越多的嵌入式产品开始渗透到我们生活的各个角落,从微小的智能传感器到车辆整车系统,到工业生产的大型系统,嵌入式产品无不发挥着极其核心的作用等。在嵌入式产品应用过程中,为了减少开发成本,经常需要对产品进行复用,典型的如以下情形:1)产品可靠性增长。当已经发布的产品出现可靠性问题,但功能没有任何影响,通过试验确认后,需要对产品实施可靠性增长。对于可靠性增长的产品来说,一般必须满足的要求是原位替换,即增长后的产品能适用于原工作环境,也能适用新的工作环境。这种情况硬件和软件都可能涉及更改。2)已有产品应用于新环境。如果产品在新的系统中不需要进行硬件变化,例如重量、尺寸、硬件资源、物理电气接口等,那么为了减少开发和维护成本,可以直接通过更改产品软件适用新的系统和工作环境。如果产品进行了软件的更改,为了保证可靠性增长产品的原位替换能力,一般通过在软件中设置产品状态的标识位(即增长前和增长后)进行判断;或者为了保证产品应用于新系统环境的能力,一般通过在软件中设置所处系统和工作环境的标识位进行判断。根据判断结果对于不同的产品状态或工作环境进入不同的分支,从而进行相应的工作。但如果软件有一大部分可复用,但有关键部分不能复用,例如接口协议发生变更带来的软件更改、软件全局变量、关键处理函数、关键变量内存分配空间等发生变化,在同一个软件中通过分支判断来实现工作状态的切换,势必会造成软件结构的混乱、代码执行效能的低下甚至严重错误等软件可靠性的降低,对软件后续的维护和管理也带来很大麻烦。综上,研究一种可靠的、方便的嵌入式软件多版本控制方法,可简化复用嵌入式设备过程而不降低软件的可靠性,从而节省开发成本、后期人工维护成本,有很大的工程应用价值和经济效益。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:从软件变更的嵌入式产品复用需求出发,专利技术一种嵌入式软件的多版本控制方法,简化复用过程,提高软件可靠性,节省产品开发和维护成本。(二)技术方案为了解决上述技术问题,本专利技术提供了一种嵌入式软件多版本控制系统,包括程序存储器1、总线接口4、通用IO口5、外部通信总线6、状态触发开关7,其中,所述程序存储器1、总线接口4、通用IO口5组成嵌入式处理器;程序存储器1中运行了BootLoader引导程序2和应用程序3,BootLoader引导程序2位于程序存储器1的起始地址;所述嵌入式处理器通过总线接口4与外部通信总线6连接,接收外部总线数据;嵌入式处理器通过通用IO口5与状态触发开关7连接,接收开关电平信号。优选地,所述BootLoader引导程序2包括状态触发开关检测程序8、接口特征数据检测程序9、应用程序入口跳转程序10、通用IO驱动11、总线接口驱动12、系统自检和初始化程序13;BootLoader引导程序2位于程序存储器1的起始地址,在嵌入式处理器上电时首先执行;工作状态通过外部通信总线6或状态触发开关7输入;BootLoader引导程序2通过两种方式实现状态检测逻辑,一是通过状态触发开关检测程序8和通用IO驱动11实现,其中通用IO驱动11提供检测嵌入式处理器IO口电平信号的底层程序接口;二是通过接口特征数据检测程序9和总线接口驱动12实现,其中总线接口驱动12提供检测嵌入式处理器外部总线通信的底层程序接口;BootLoader引导程序2根据状态检测结果,通过应用程序入口跳转程序10实现应用程序3多个版本的切换;系统自检和初始化程序13用于实现系统上电时进行硬件状态检查和外设初始化。本专利技术还提供了一种利用所述的系统实现的一种嵌入式软件多版本控制方法,包括以下步骤:首先通过程序下载器将BootLoader引导程序2和多个版本的应用程序3写入程序存储器1;其中将BootLoader引导程序2写入程序存储器1的起始地址;嵌入式处理器上电,从程序存储器1起始地址执行,因此首先执行BootLoader引导程序2,BootLoader引导程序2实现状态触发开关检测程序8、接口特征数据检测程序9、应用程序入口跳转程序10、通用IO驱动11、总线接口驱动12、系统自检和初始化程序13。优选地,执行BootLoader引导程序2时,首先执行系统自检和初始化程序13,实现系统上电时进行硬件状态检查和外设初始化,自检通过后,进行工作状态检测判断;工作状态检测判断通过两种方式来实施,一是在嵌入式处理器外部设置状态触发开关7,将状态触发开关7与处理器通用IO口5连接,BootLoader引导程序2中的状态触发开关检测程序8和通用IO驱动11检测该状态触发开关7的状态,开关状态作为判断标识;二是在通信协议中设计特征信息,BootLoader引导程序2中的接口特征数据检测程序9通过总线接口驱动12接收外部通信数据并检测该特征信息,该特征信息作为判断标识。优选地,工作状态检测判断完成后,应用程序入口跳转程序10根据得到的开关状态或特征信息,查找应用程序版本控制向量表,确认当前嵌入式设备应该工作的环境和应该具有的状态,实现应用程序3多个版本的切换。优选地,将BootLoader引导程序2和多个版本的应用程序3写入程序存储器1时,程序下载地址通过编译器的编译选项来指定。优选地,将BootLoader引导程序2和多个版本的应用程序3写入程序存储器1时,应用程序3的多个版本依次根据前一程序的占用存储空间来确定下载偏移量。本专利技术又提供了一种车辆电子信息系统,其特征在于,包括所述的系统。本专利技术又提供了一种所述的方法在车辆电子信息系统中的应用。(三)有益效果本专利技术将多个独立发布版本的应用软件集成到程序存储器中,通过起动引导程序实现应用软件版本的选择,避免了在同一个软件中通过复杂的判断逻辑来实现产品工作状态的切换,提高了软件的基本可靠性,很大程度上可以节省开发成本、后期人工维护成本,有重要的工程应用价值和经济效益。本专利技术的可在多种嵌入式芯片中实施,系统适应性好;可增加并切换多个应用程序版本,可扩展性好且保证了软件的可靠性。附图说明图1为本专利技术系统的总体架构框图;图2为本专利技术的程序存储空间分配示意图;图3为本专利技术的BootLoader程序架构框图;图4为本专利技术方法中基于外部状态开关触发引导程序的数据流示意图;图5为本专利技术方法中基于外部通信数据特征引导程序的数据流示意图;其中,1.程序存储器,2.BootLoader程序,3.应用程序,4.总线接口,5.通用IO口,6.外部通信总线,7.状态触发开关,8.状态触发开关检测程序、9.接口特征数据检测程序、10.应用程序入口跳转程序、11.通用IO驱动、12.总线接口驱动、13.系统自检和初始化程序。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面本文档来自技高网
...

【技术保护点】
1.一种嵌入式软件多版本控制系统,其特征在于,包括程序存储器(1)、总线接口(4)、通用IO口(5)、外部通信总线(6)、状态触发开关(7),其中,所述程序存储器(1)、总线接口(4)、通用IO口(5)组成嵌入式处理器;程序存储器(1)中运行了BootLoader引导程序(2)和应用程序(3),BootLoader引导程序(2)位于程序存储器(1)的起始地址;所述嵌入式处理器通过总线接口(4)与外部通信总线(6)连接,接收外部总线数据;嵌入式处理器通过通用IO口(5)与状态触发开关(7)连接,接收开关电平信号。/n

【技术特征摘要】
1.一种嵌入式软件多版本控制系统,其特征在于,包括程序存储器(1)、总线接口(4)、通用IO口(5)、外部通信总线(6)、状态触发开关(7),其中,所述程序存储器(1)、总线接口(4)、通用IO口(5)组成嵌入式处理器;程序存储器(1)中运行了BootLoader引导程序(2)和应用程序(3),BootLoader引导程序(2)位于程序存储器(1)的起始地址;所述嵌入式处理器通过总线接口(4)与外部通信总线(6)连接,接收外部总线数据;嵌入式处理器通过通用IO口(5)与状态触发开关(7)连接,接收开关电平信号。


2.如权利要求1所述的系统,其特征在于,所述BootLoader引导程序(2)包括状态触发开关检测程序(8)、接口特征数据检测程序(9)、应用程序入口跳转程序(10)、通用IO驱动(11)、总线接口驱动(12)、系统自检和初始化程序(13);BootLoader引导程序(2)位于程序存储器(1)的起始地址,在嵌入式处理器上电时首先执行;工作状态通过外部通信总线(6)或状态触发开关(7)输入;BootLoader引导程序(2)通过两种方式实现状态检测逻辑,一是通过状态触发开关检测程序(8)和通用IO驱动(11)实现,其中通用IO驱动(11)提供检测嵌入式处理器IO口电平信号的底层程序接口;二是通过接口特征数据检测程序(9)和总线接口驱动(12)实现,其中总线接口驱动(12)提供检测嵌入式处理器外部总线通信的底层程序接口;BootLoader引导程序(2)根据状态检测结果,通过应用程序入口跳转程序(10)实现应用程序(3)多个版本的切换;系统自检和初始化程序(13)用于实现系统上电时进行硬件状态检查和外设初始化。


3.一种利用如权利要求2所述的系统实现的一种嵌入式软件多版本控制方法,其特征在于,包括以下步骤:
首先通过程序下载器将BootLoader引导程序(2)和多个版本的应用程序(3)写入程序存储器(1);其中将BootLoader引导程序(2)写入程序存储器(1)的起始地址;
嵌入式处理器上电,从程序存...

【专利技术属性】
技术研发人员:冯亮张领辉李芍渠龙波郭倩雅庞凤颖高明陈京天
申请(专利权)人:中国北方车辆研究所
类型:发明
国别省市:北京;11

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

1