脱离仿真器支持环境的dsp软件升级系统及其升级方法

文档序号:6398920阅读:275来源:国知局
专利名称:脱离仿真器支持环境的dsp软件升级系统及其升级方法
技术领域
本发明涉及一种升级系统及其升级方法,特别是涉及一种脱离仿真器支持环境的DSP软件升级系统及其升级方法。
背景技术
随着DSP(Digital Signal Processing,数字信号处理)芯片功能的强大和应用领域的飞速扩展,各种工控、军事设备对复杂DSP系统的需求急剧增加,由此带来DSP软件维护复杂性和频繁度的提高,特别是为了应对日益频繁的简单而有效的外场维护升级需求,急需设计出一套具有高安全可靠性、可重用性、需求设备简单的软件升级实现方法。TI公司的C5000,C6000系列DSP芯片是当前市面上占有率大的高性能数字信号处理器。该类DSP具有如下共同特点:没有内部ROM ;统一地址映射;上电可从外部ROM/FLASH自举引导启动;启动之前需要从FLASH首地址起始的位置通过DMA方式或者直接字节拷贝方式复制连续的IKB或者64KB固定大小的代码到内部程序存储RAM中再运行,没有通用CPU的硬件复杂,这些特点给片上软件系统的升级带来一定的困难。

发明内容
本发明所要解决的技术问题是提供一种脱离仿真器支持环境的DSP软件升级系统及其升级方法,其运用非易失数据程序存储模块驻留只读引导启动代码,通过外设接口(如串行通信口,网口等)下载更新程序到DSP系统代码驻留区,用离散量及非易失可读写标志位控制系统启动运行。本发明是通过下述技术方案来解决上述技术问题的:一种脱离仿真器支持环境的DSP软件升级系统,其特征在于,其包括运算处理模块和非易失数据程序存储模块,运算处理模块包括运算处理单元、程序数据内存单元、串口网络通信单元、离散量输入单元、数据加载缓存单元,程序数据内存单元、串口网络通信单元、离散量输入单元、数据加载缓存单元都与运算处理单元连接;非易失数据程序存储模块包括上电引导代码驻留单元、配置参数驻留单元、最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元,上电引导代码驻留单元通过配置参数驻留单元与最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元连接;运算处理单元作负责整个软硬件的正常运行;程序数据内存单元用于支持运算处理单元对指令代码的读取、数据访问;串口网络通信单元接收并反馈更新操作指令及状态信息,传送升级数据包内容至数据加载缓存单元;离散量输入单元结合配置参数驻留单元,用于辅助判断运算处理模块在上电复位时选非易失数据程序存储模块中所包含的最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元之中一个单元进行引导启动;数据加载缓存单元用于缓存串口网络通信单元传送过来的新版DSP系统软件代码;上电引导代码驻留单元用于系统上电复位完成时刻运算处理单元自引导运行上电引导代码;配置参数驻留单元存放着当前起作用的版本的标志位CVflag和其他配置参数,CVflag用于运算处理模块执行上电引导代码时判断并加载启动指定版本的软件运行;最小系统驻留单元存放具有驱动串口网络通信单元以及可执行FLASH读写的基本DSP软件;第一版本系统程序驻留单元用于存放第一版本系统程序代码;第二版本系统程序驻留单元用于存放第二版本系统程序代码。优选地,所述非易失数据程序存储模块用一个闪存来存放各个驻留单元内容,闪存具有存储区,存储区可分为第一分区、第二分区、第三分区、第四分区、第五分区。本发明还提供一种脱离仿真器支持环境的DSP软件升级系统的升级方法,该升级方法采用如上所述的脱离仿真器支持环境的DSP软件升级系统,该升级方法包括以下步骤:步骤slOOOl,通过串口网络通信单元从用户输入获取升级指令,进入升级流程;步骤S10002,通过串口网络通信单元获取上位机传送过来的升级代码,也即新一版的软件,暂存到数据加载缓存单元,同时获取该代码文件的二进制CRC校验和,用于升级包完整性检验;步骤S10003,用CRC校验方法校验数据加载缓存单元中的升级代码,对比上位机传输过来的二进制CRC校验和,确认升级包传输的完整性;通过S10003中的CRC校验,如果出现校验和错误,则程序将跳转到步骤sl004,提示相应错误信息,终止升级流程,等待用户处理;如果校验和正确,则转至升级流程中的下一步 S10013 ;步骤S10013,判断配置参数的值,从配置参数驻留单元中读出标志位CVflag的值,与0x5A5A进行比较,如果数值相等,则流程跳转到步骤S10113,否则,标志位CVflag等于其他任何值都跳转到步骤S10213执行处理;步骤S10113,执行升级代码在非易失数据程序存储模块对应第四分区的固化烧写,这样更新过程会覆盖该分区中原有的老版本软件,当上电引导代码引导该分区的系统软件启动时将启动最新更新的系统;步骤S11113,对烧写完成的代码进行CRC校验,保证更新代码的完整性和可用性;如果CRC校验出错,则流程跳转至S10004,终止升级程序,提示错误信息,等待用户处理,否则进入步骤S12113 ;步骤S12113,更新配置参数驻留单元中的标志位CVflag值,使其等于0xA5A5 ;更新的作用是保证当下一次系统进行上电启动时上电引导程序能正确选择第四分区中更新的系统运行;步骤S13113,校验配置参数,也即读出配置参数驻留单元中的标志位CVflag值,与0xA5A5进行匹配,如果相等则表明步骤S12113中的更新操作是成功的,此时程序转到步骤S10005,完成软件的安全升级,否则是不成功的,流程跳转到S10004,提示相应错误,等待用户处理;
在步骤S10013中,如果判断当前CVflag的值不等于0x5A5A,则升级流程会进入步骤S10213,选择更新软件到所示的第三分区;步骤S10213,与步骤S10113相似的,执行升级代码在非易失数据程序存储模块对应第三分区的固化烧写,这样更新过程会覆盖该分区中原有的老版本软件,当上电引导代码引导该分区的系统软件启动时将启动第三分区中最新更新的系统;步骤S11213,同步骤sllll3,校验第三分区中更新的代码;如果校验出错,流程跳转至S10004,提示错误信息并终止升级流程,否则校验成功,进入步骤S12213 ;步骤s 12213,同步骤s 12113,执行配置参数驻留单元中的标志位CVf lag值的更新操作,对标志位CVflag写入0x5A5A,确保下一次系统进行上电启动时上电引导程序能正确选择第三分区中更新的系统运行;步骤S13213,与步骤S13113相同。本发明的积极进步效果在于:本发明避免了更新DSP代码需要仿真器支持的缺点,通过外设接口自由更新;引导启动代码和系统代码具有相互独立性,两者工程不用联合编译,利于系统及应用代码的编写;更新代码运用分区驻留及状态位辅助加载的方式,避免更新过程失败时无法重启或恢复系统,真正做到系统更新过程安全可靠。


图1为本发明脱离仿真器支持环境的DSP软件升级系统的原理框图。图2为本发明中FLASH存储区分区示意图。图3为本发明脱离仿真器支持环境的DSP软件升级系统的升级方法的流程图。图4为本发明脱离仿真器支持环境的DSP软件升级系统的升级方法带来的软件启动加载方法的流程图。
具体实施例方式为了使本发明实施例的技术方案以及有点更加清楚明白,下面结合附图并举实施例进行进一步详细说明。参考图1,是本发明软件升级系统的具体实施例的结构示意图。如图所示,本发明脱离仿真器支持环境的DSP软件升级系统主要包括运算处理模块10和非易失数据程序存储模块11。下面对运算处理模块10和非易失数据程序存储模块11以及其相互关系进行详细说明。所述运算处理模块10,用于运行期望当前运行版本的系统,处理任务数据,与外界进行通信,以及访问非易失数据程序存储模块U,维护系统升级。运算处理模块10包括运算处理单元101、程序数据内存单元102、串口网络通信单元103、离散量输入单元104、数据加载缓存单元105,程序数据内存单元102、串口网络通信单元103、离散量输入单元104、数据加载缓存单元105都与运算处理单元101连接。此处,所述运算处理单元101作为本发明实施例中的核心处理单元,也即DSP处理器单元,负责整个软硬件的正常运行。在本发明实施例中处于统筹安全升级DSP软件的操作和监控。程序数据内存单元102,用于支持运算处理单元101对指令代码的读取、数据访问坐寸O串口网络通信单元103,此单元在本发明实施例中接收并反馈更新操作指令及状态信息,传送升级数据包内容至数据加载缓存单元105。离散量输入单元104,此单元在本发明实施例中结合非易失数据程序存储模块11所包含的配置参数驻留单元112,用于辅助判断运算处理模块10在上电复位时选非易失数据程序存储模块11中所包含的最小系统驻留单元113、第一版本系统程序驻留单元114、第二版本系统程序驻留单元115之中一个单元进行引导启动。数据加载缓存单元105,用于缓存串口网络通信单元103传送过来的新版DSP系统软件代码,提供给运算处理单元进行新版DSP系统软件代码的校验、更新等。所述非易失数据程序存储模块11,用于存储程序代码,提供运算处理模块10以程序指令、非易失配置参数等。非易失数据程序存储模块11包括上电引导代码驻留单元111、配置参数驻留单元112、最小系统驻留单元113、第一版本系统程序驻留单元114、第二版本系统程序驻留单元115,上电引导代码驻留单元111通过配置参数驻留单元112与最小系统驻留单元113、第一版本系统程序驻留单元114、第二版本系统程序驻留单元115连接。上电引导代码驻留单元111,用于系统上电复位完成时刻运算处理单元10通过DMA自引导运行上电引导代码,引导系统的启动,此部分代码带写保护功能,只能读取,不能更改或者擦除。配置参数驻留单元112,其中主要存放着当前起作用的版本的标志位CVflag和其他参数信息,CVflag用于运算处理模块10执行上电引导代码时判断并加载启动指定版本的软件运行,CVflag=0x5A5A表示从第三分区所在的A版系统程序加载运行,CVflag=0xA5A5表示从第四分区所在的B版系统程序加载运行,其它数据内容无效,并且强制引导程序选择从最小系统所在的第二分区加载系统。配置参数驻留单元设有配置参数,不仅仅包括配置参数CVflag。配置参数有很多种,用处和用途也不一样,而CVflag只是所有配置参数中的一个参数而已。CVflag的英文意思为current version flag,代表当前起作用的系统版本的标志位,CVflag=0x5A5A,代表当前起作用的DSP系统版本在第三分区中,CVflag=0xA5A5代表当前起作用的DSP系统版本软件在第四分区中。DSP引导启动代码要根据CVflag的当前值来判断引导启动第三分区还是第四分区中的系统代码。最小系统驻留单兀113,在本发明实施例中存放具有驱动串口网络通彳目单兀103以及可执行FLASH读写等功能的基本DSP软件,此部分软件只能读取,不能更改或擦除,即带写保护功能,通过上电引导代码的加载和启动。第一版本系统程序驻留单元114,用于存放A版本系统程序代码,此A版本系统可以称为第一版本系统,包含驱动系统所有单元以及其他应用的功能。第二版本系统程序驻留单元115,用于存放B版系统程序代码,此B版本系统可以称为第二版本系统,可认为是第一版本软件的升级版本。非易失数据程序存储模块11的硬件载体通常是非易失性电可擦除型存储芯片(NOR FLASH)。为了更好的阐述本发明,用图2结合非易失数据程序存储模块11中各单元驻留分区加以说明如下:图2是FLASH存储区分区示意图,FLASH (闪存)用于存放本发明实施例中非易失数据程序存储模块中各个驻留单元内容。FLASH具有存储区,存储区可分为五个分区,即第一分区、第二分区、第三分区、第四分区、第五分区。图2中第一分区首地址对应FLASH存储区起始地址,假设FLASH的首地址在DSP统一地址映射中分配为0x64000000,且设定FLASH容量为4096KB (Kbyte),可将五个段分配如下:第一分区:0x6400000(T0x6400ffff (64KB),用于存放非易失数据/代码存储模块11中的上电引导代码驻留单元111的代码内容。上电引导代码驻留单元111,用于系统上电复位完成时刻运算处理单元10通过DMA方式自动搬移此代码至程序数据内存单元102的O地址处自动运行,引导系统的启动,此部分代码带写保护功能,只能读取,不能更改或者擦除。第二分区:0x6401000(T0x6401ffff (64KB),用于存放非易失数据/代码存储模块11中的最小系统驻留单元113所包含的代码内容。最小系统驻留单兀113,在本发明实施例中存放具有驱动串口网络通彳目单兀103以及可执行FLASH读写等功能的基本DSP软件,此部分软件只能读取,不能更改或擦除,即带写保护功能,通过上电引导代码的加载和启动。第三分区:0x6402000(T0x6405ffff (256KB),用于存放第一版本系统程序驻留单元114所包含的内容。第一版本系统程序驻留单元114,用于存放A版本系统程序代码,此A版本系统可以称为第一版本软件,包含驱动系统所有单元以及其他应用的功能。第四分区:0x6406000(T0x6409ffff (256KB),用于存放第二版本系统程序驻留单元115所包含的内容。第二版本系统程序驻留单元115,用于存放B版系统程序代码,此B版本系统可以称为第二版本软件,可认为是第一版本软件的升级版本。第五分区:0x640A000(T0x640Affff (64KB),用于存放配置参数驻留单元112所包含的内容。配置参数驻留单元112,其中主要存放的是当前起作用的版本的标志位CVflag,用于运算处理模块10执行上电引导代码时判断并加载启动指定版本的软件运行,CVflag=0x5A5A表示从第三分区所在的A版系统程序加载运行,CVflag=0xA5A5表示从第四分区所在的B版系统程序加载运行,其它数据内容无效,并且强制引导程序选择从最小系统所在的第二分区加载系统。0x5A5A是16位十六进制数值,表示本发明中给CVflag设定的值,CVflag可以等于0x5A5A或者0xA5A5。CVflag不能等于其他任何值,否则读得CVflag为其他任何值得时候判断CVflag值无效(也即CVflag值在更新中受到破坏)。DSP系统启动过程中读取CVflag的值(步骤S20023),如果CVf lag=0x5A5A代表系统弓丨导启动时引导代码选择第三分区中所包含的系统启动,而CVflag=0xA5A5表示选择第四分区启动。DSP系统升级过程中读取CVflag的值(步骤S10013),如果CVflag=0x5A5A,表示当前在运行的系统在第三分区中,那么新升级的系统代码覆盖第四分区中原有代码,而不是覆盖第三分区中此时正在运行的代码,达到安全升级的目的。步骤S10013中如果CVflag=0xA5A5就不再赘述。参考图3,为本发明脱离仿真器支持环境的DSP软件升级系统的升级方法的流程示意图。如图3所示,该实施例实施过程包括如下步骤:步骤S10001,通过串口网络通信单元从用户输入获取升级指令,进入升级流程。步骤S10002,通过串口网络通信单元获取上位机传送过来的升级代码,也即新一版的软件,暂存到数据加载缓存单元,同时获取该代码文件的二进制CRC校验和,用于升级包完整性检验。步骤S10003,用CRC校验方法校验数据加载缓存单元中的升级代码,对比上位机传输过来的二进制CRC校验和,确认升级包传输的完整性。通过S10003中的CRC校验,如果出现校验和错误,则程序将跳转到步骤sl004,提示相应错误信息,终止升级流程,等待用户处理。如果校验和正确,则转至升级流程中的下一步 S10013。步骤S10013,判断配置参数的值,从配置参数驻留单元中读出标志位CVflag的值,与0x5A5A进行比较,如果数值相等,则流程跳转到步骤S10113,否则,标志位CVflag等于其他任何值都跳转到步骤S10213执行处理。步骤S10113,执行升级代码在非易失数据程序存储模块对应如图2中第四分区的固化烧写,这样更新过程会覆盖该分区中原有的老版本软件,当上电引导代码引导该分区的系统软件启动时将启动最新更新的系统。步骤S11113,对烧写完成的代码进行CRC校验,保证更新代码的完整性和可用性。如果CRC校验出错,则流程跳转至S10004,终止升级程序,提示错误信息,等待用户处理,否则进入步骤S12113。步骤S12113,更新配置参数驻留单元中的标志位CVflag值,使其等于0xA5A5。更新的作用是保证当下一次系统如图4进行上电启动时上电引导程序能正确选择第四分区中更新的系统运行。步骤S13113,校验配置参数,也即读出配置参数驻留单元中的标志位CVflag值,与0xA5A5进行匹配,如果相等则表明步骤S12113中的更新操作是成功的,此时程序转到步骤S10005,完成软件的安全升级,否则是不成功的,流程跳转到S10004,提示相应错误,等待用户处理。在步骤sl0013中,如果当前CVflag的值不等于0x5A5A,贝U升级流程会进入步骤S10213,选择更新软件到图2中所示的第三分区。升级流程中步骤sl0013、sl3113、sl3213、s20023、s20123是读取配置参数中的CVflag项,而步骤sl2113、sl2213是重新设置CVflag的值。步骤S10213,与步骤S10113相似的,执行升级代码在非易失数据程序存储模块对应如图2中第三分区的固化烧写,这样更新过程会覆盖该分区中原有的老版本软件,当上电引导代码引导该分区的系统软件启动时将启动第三分区中最新更新的系统。步骤S11213,同步骤S11113,校验第三分区中更新的代码。如果校验出错,流程跳转至S10004,提示错误信息并终止升级流程,否则校验成功,进入步骤S12213。步骤s 12213,同步骤s 12113,执行配置参数驻留单元中的标志位CVf lag值的更新操作,对标志位CVflag写入0x5A5A,确保下一次系统如图4进行上电启动时上电引导程序能正确选择第三分区中更新的系统运行。步骤S13213,与步骤sl3113相同,在此不再赘述。
上述升级步骤是安全可靠的,在升级过程中的任何一环节出现死机、掉电等异常状况都不会导致系统无法重新启动或者无法再次用本发明软件升级方法进行升级。本发明软件升级方法的实施例流程的完整实现,依赖于如图4所描述的软件启动加载方法实施例的流程。参考图4,本发明脱离仿真器支持环境的DSP软件升级系统的升级方法带来的软件启动加载方法实施例流程示意图。如图4所示,该实施例实施过程如下:步骤s20001,DSP系统上电启动,在系统复位信号结束时刻,DSP自动通过DMA方式从非易失数据程序存储模块的上电引导代码驻留单元拷贝上电引导代码到程序数据内存单元的O地址处开始执行,或者直接把程序指针指向上电引导代码的首地址开始执行。步骤S20002,执行上电引导代码,在此过程中,弓丨导代码会通过获取离散量输入单元的值来判断是否直接启动最小系统。步骤S20003,判断离散量输入的值,如果获取的离散量输入值为低电平,则引导代码选择从最小系统驻留单元中的最小系统代码启动。如果获取的离散量输入值为高电平,则引导流程需要通过步骤S20023进一步判断。步骤S20013,上电引导程序选择启动最小系统,此系统驻留在非易失数据/代码存储模块11的最小系统驻留单元113中,对应于图2中的第二分区。最小系统,或者A版本系统亦或B版本系统启动之后都将进入步骤S20004执行程序任务处理。步骤S20023,此情况是在步骤s20003中获取的离散量输入值为高电平的情况下发生的,当进入S20023时,上电引导程序会去非易失数据程序存储模块11中的配置参数驻留单元112读取标志位CVf lag的值,如果CVflag=0x5A5A,则引导程序执行步骤s20223,力口载启动第三分区中的系统代码,也即A版本系统程序,否则执行步骤S20123,进入再一次比较判断。步骤S20223,引导程序完成系统引导,加载第一版本系统程序驻留单元中的系统执行,进入步骤S20004。步骤S20123,当步骤s20023中第一次判断CVflag的值不等于0x5A5A时,进入步骤S20123,第二次判断标志位CVflag值,比较是否等于0xA5A5,如果相等,则可断定需要引导启动第四分区中的系统代码,也即跳转到步骤S21123,否则引导程序认为CVflag的值是个无效的值,从而转入引导启动最小系统代码的流程上来。标志位CVflag中值无效可能是上一次更新系统在步骤S12113或者S12213中出错所致。步骤s21123,标志似CVflag=0xA5A5,弓丨导程序完成系统引导,加载弟_■版本系统程序驻留单元中的系统程序执行,进入步骤S20004。无论启动最小系统或者第三分区或第三分区中的系统程序,都进入程序任务处理的步骤S20004中,此步骤的程序处理中必须包含图3中所有操作所需内容,能接受用户升级指令,完成系统升级任务。步骤S20005,系统下电结束流程操作,在正常完成用户任务处理及程序后台处理下电结束。综合图3和图4的描述,为了实现DSP系统软件的安全升级和对最新升级系统软件的正确引导启动,配置参数的更新起到关键作用。
假设当前正常启动系统情况下上电引导代码是引导第三分区中的系统代码启动,则此时配置参数CVflag=0x5A5A。按照图4中本发明软件系统启动过程实施例流程示意图,执行步骤为 s20001->s20002->s20003->s20023->s20223->s20004。而当系统当前的配置参数CVflag=0xA5A5时,上电引导代码将会引导启动第四分区中的系统代码,按照图4中本发明软件系统启动过程实施例流程示意图,执行步骤为s20001->s20002->s20003->s20023->s20123->s21123->s20004o如果配置参数的值CVflag既不 等于0x5A5A,也不等于0xA5A5,我们就认为配置参数中的值无效,此时上电引导代码将会引导启动最小系统代码执行,按照图4中本发明软件系统启动过程实施例流程示意图,执行步骤为s20001->s20002->s20003->s20023->s20123->s20013->s20004o当用户认为配置参数中的值有效,即CVflag=0x5A5A或者CVf lag=0xA5A5,且需要从第三分区启动(此时CVflag=0x5A5A)或者从第四分区启动(此时CVflag=0xA5A5)系统代码,然而系统并未正常启动,则我们认为更新软件过程中非易失数据程序存储模块中系统程序更新烧写过程意外,未能正常完成系统更新。此时,需要用户设置离散量输入单元的输入电平为低电平,重新启动最小系统进入程序任务处理过程进行系统升级。按照图4中本发明软件系统启动过程实施例流程示意图,执行步骤为s20001->s20002->s20003->s20013->s20004。在上电引导程序引导执行最小系统运行的时候,如果系统需要升级DSP系统软件,最小系统升级任务会提示用户选择确认升级的新系统存放在如图2所示的第三分区还是第四分区,如果存放在第三分区,则最小系统更新DSP系统软件过程中会设定更新后的配置参数CVflag=0x5A5A,否则用户只能选择新升级的系统存放在第四分区,最小系统设定更新后的配置参数CVflag=0xA5A5。这样在更新完成并设置离散量输入单元为高电平的情况下,下次上电启动时引导程序会自动选择最新升级的系统代码执行。如果当前执行的是第三分区中系统代码的任务,用户需要进行系统升级,则可以肯定当前配置参数CVflag=0x5A5A,根据本发明软件安全升级实施例流程图所示,系统通过串口网络通信单元接受新升级系统的缓存代码,校验并烧写第四分区,覆盖第四分区中原有的系统代码,并且更新配置参数的值,使得CVflag=0xA5A5,确保下次上电的时候引导代码自动引导执行第四分区中的新系统。此升级流程执行步骤为sl0001->sl0002->sl0003->sl0013->sl0113->sllll3->sl2113->sl3113->sl0005。如若在上面第一段内容(“如果当前执行的是第三分区中系统代码的任务…S10005”)的实现升级过程中发生断电、死机等异常,并且在步骤S10113中烧写失败,第四分区中原有代码遭受破坏,此时重新启动系统时引导代码还是会自动选择第三分区中的系统代码执行,因为配置参数的值是0x5A5A,并未发生更新。如果在上面第一段内容的升级过程中断电、死机等异常发生在步骤S12113中,此时配置参数的值遭到破坏,重新启动系统时引导代码会引导最小系统启动,用户可以参照上面第二段内容(“在上电引导程序…系统代码执行”)中的描述进行系统软件的升级。如果当前执行的是第四分区中系统代码的任务,用户需要进行系统升级,则可以肯定当前配置参数CVflag=0xA5A5,正常升级流程执行步骤为sl0001->sl0002->sl0003->sl0013->sl0213->sll213->sl2213->sl3213->sl0005。
如若在上面第一段内容(“如果当前执行的是第四分区中系统代码的任务…S10005”)的实现升级过程中发生断电、死机等异常,并且在步骤S10213中烧写失败,第三分区中原有代码遭受破坏,此时重新启动系统时引导代码还是会自动选择第四分区中的系统代码执行,因为配置参数的值是0xA5A5,并未发生更新。如果在上面第一段内容的升级过程中断电、死机等异常发生在步骤S12213中,此时配置参数的值遭到破坏,重新启动系统时引导代码会引导最小系统启动,用户可以参照上面第四段内容(“在上电引导程序…系统代码执行”)中的描述进行系统软件的升级。综上所述,在系统升级过程中,无论任何阶段发生升级故障,系统都能在重新上电之后再次进行正常升级,直到升级完成。而且更新的系统软件是自动覆盖上一版本的系统软件,而非当前正在运行版本的系统软件。本领域的技术人员可以对本发明进行各种改型和改变。因此,本发明覆盖了落入所附的权利要求书及其等同物的范围内的各`种改型和改变。
权利要求
1.一种脱离仿真器支持环境的DSP软件升级系统,其特征在于,其包括运算处理模块和非易失数据程序存储模块,运算处理模块包括运算处理单元、程序数据内存单元、串口网络通信单元、离散量输入单元、数据加载缓存单元,程序数据内存单元、串口网络通信单元、离散量输入单元、数据加载缓存单元都与运算处理单元连接;非易失数据程序存储模块包括上电引导代码驻留单元、配置参数驻留单元、最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元,上电引导代码驻留单元通过配置参数驻留单元与最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元连接; 运算处理单元作负责整个软硬件的正常运行; 程序数据内存单元用于支持运算处理单元对指令代码的读取、数据访问; 串口网络通信单元接收并反馈更新操作指令及状态信息,传送升级数据包内容至数据加载缓存单元; 离散量输入单元结合配置参数驻留单元,用于辅助判断运算处理模块在上电复位时选非易失数据程序存储模块中所包含的最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元之中一个单元进行引导启动; 数据加载缓存单元用于缓存串口网络通信单元传送过来的新版DSP系统软件代码;上电引导代码驻留单元用于系统上电复位完成时刻运算处理单元自引导运行上电引导代码; 配置参数驻留单元存放着当前起作用的版本的标志位CVflag和其他参数信息,CVflag用于运算处理模块执行上电引导代码时判断并加载启动指定版本的软件运行; 最小系统驻留单兀存放具有驱动串口网络通/[目单兀以及可执行FLASH读与的基本DSP软件; 第一版本系统程序驻留单元用于存放第一版本系统程序代码; 第二版本系统程序驻留单元用于存放第二版本系统程序代码。
2.按权利要求1所述的脱离仿真器支持环境的DSP软件升级系统,其特征在于,所述非易失数据程序存储模块用一个闪存来存放各个驻留单元内容,闪存具有存储区,存储区可分为第一分区、第二分区、第三分区、第四分区、第五分区。
3.一种脱离仿真器支持环境的DSP软件升级系统的升级方法,其特征在于,该升级方法采用如权利要求2所述的脱离仿真器支持环境的DSP软件升级系统,该升级方法包括以下步骤: 步骤SlOOOl,通过串口网络通信单元从用户输入获取升级指令,进入升级流程; 步骤S10002,通过串口网络通信单元获取上位机传送过来的升级代码,也即新一版的软件,暂存到数据加载缓存单元,同时获取该代码文件的二进制CRC校验和,用于升级包完整性检验; 步骤S10003,用CRC校验方法校验数据加载缓存单元中的升级代码,对比上位机传输过来的二进制CRC校验和,确认升级包传输的完整性; 通过S10003中的CRC校验,如果出现校验和错误,则程序将跳转到步骤S1004,提示相应错误信息,终止升级流程,等待用户处理;如果校验和正确,则转至升级流程中的下一步S10013 ; 步骤S10013,判断配置参数的值,从配置参数驻留单元中读出标志位CVflag的值,与0x5A5A进行比较,如果数值相等,则流程跳转到步骤SlOl 13,否则,标志位CVflag等于其他任何值都跳转到步骤S10213执行处理; 步骤S10113,执行升 级代码在非易失数据程序存储模块对应第四分区的固化烧写,这样更新过程会覆盖该分区中原有的老版本软件,当上电引导代码引导该分区的系统软件启动时将启动最新更新的系统; 步骤S11113,对烧写完成的代码进行CRC校验,保证更新代码的完整性和可用性;如果CRC校验出错,则流程跳转至S10004,终止升级程序,提示错误信息,等待用户处理,否则进入步骤S12113 ; 步骤S12113,更新配置参数驻留单元中的标志位CVflag值,使其等于0xA5A5 ;更新的作用是保证当下一次系统进行上电启动时上电引导程序能正确选择第四分区中更新的系统运行; 步骤S13113,校验配置参数,也即读出配置参数驻留单元中的标志位CVflag值,与0xA5A5进行匹配,如果相等则表明步骤S12113中的更新操作是成功的,此时程序转到步骤S10005,完成软件的安全升级,否则是不成功的,流程跳转到S10004,提示相应错误,等待用户处理; 在步骤sl0013中,如果判断当前CVflag的值不等于0x5A5A,则升级流程会进入步骤S10213,选择更新软件到所示的第三分区; 步骤S10213,与步骤S10113相似的,执行升级代码在非易失数据程序存储模块对应第三分区的固化烧写,这样更新过程会覆盖该分区中原有的老版本软件,当上电引导代码引导该分区的系统软件启动时将启动第三分区中最新更新的系统; 步骤S11213,同步骤S11113,校验第三分区中更新的代码;如果校验出错,流程跳转至S10004,提示错误信息并终止升级流程,否则校验成功,进入步骤S12213 ; 步骤S12213,同步骤S12113,执行配置参数驻留单元中的标志位CVflag值的更新操作,对标志位CVflag写入0x5A5A,确保下一次系统进行上电启动时上电引导程序能正确选择第三分区中更新的系统运行; 步骤S13213,与步骤S13113相同。
全文摘要
本发明公开了一种脱离仿真器支持环境的DSP软件升级系统及其升级方法,该升级系统包括运算处理模块和非易失数据程序存储模块,运算处理模块包括运算处理单元等单元,程序数据内存单元、串口网络通信单元、离散量输入单元、数据加载缓存单元都与运算处理单元连接;非易失数据程序存储模块包括上电引导代码驻留单元、配置参数驻留单元、最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元,上电引导代码驻留单元通过配置参数驻留单元与最小系统驻留单元、第一版本系统程序驻留单元、第二版本系统程序驻留单元连接;本发明运用非易失数据程序存储模块驻留只读引导启动代码,结合外部离散量输入单元及配置参数驻留单元中的一个系统版本标志位做到系统更新过程安全可靠。
文档编号G06F9/445GK103092659SQ20131003773
公开日2013年5月8日 申请日期2013年1月31日 优先权日2013年1月31日
发明者唐盛, 荆晶, 曲国远, 吉沛琦 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1