一种嵌入式系统软件远程更新方法及系统的制作方法

文档序号:9810324阅读:529来源:国知局
一种嵌入式系统软件远程更新方法及系统的制作方法
【技术领域】
[0001] 本发明属于嵌入式系统技术领域,具体涉及一种嵌入式系统软件远程更新方法及 系统。
【背景技术】
[0002] 引导程序和引导方式是多DSP系统的重要组成部分。只有正确设计和编写引导方 式和引导程序才能使得处理器系统正常进行程序引导加载。内核加载通过ADI公司的DSP开 发软件Visual DSP++的elfloader.exe程序生成,并附加到用户应用代码中,在启动过程中 由处理器执行程序加载的过程。
[0003] 内核加载程序是一个可进行自修改的程序,即处理器进行启动时,首先将内核加 载程序调入内部存储器,然后执行内核加载程序,把用户的程序调入处理器内部存储器,在 用户程序调入完毕后,内核加载程序自动将用户程序替换内核加载程序,然后对处理器进 行复位,以便执行用户程序,因此内核加载程序是一个自动进行程序修改的代码;ADSP TS201 s处理器支持以下4种引导加载方式:
[0004] 1、EPR0M引导方式通过处理器外部总线进行程序引导和加载;
[0005] 2、主机引导方式通过主机或者将其他处理器作为主机,实现处理器的程序引导和 加载;
[0006] 3、链路口引导方式通过处理器的链路口实现程序的引导和加载;
[0007] 4、非引导方式通过外部不同的Strap信号,从内部存储器的不同地址开始执行程 序。
[0008] 在DSP开发初期,一般都使用仿真器,通过JTAG口进行软件编程和在线仿真测试。 软件完成后,利用JTAG 口烧写程序编码到FLASH固定位置。系统重新上电后,DSP把FLASH中 的编码读回内部RAM运行,完成引导加载过程。这种程序烧写的方法有一个缺点:JTAG口要 连接仿真器,这样必须拆卸系统硬件来调试更新程序,十分不便。这一点尤其不利于工作在 无人职守的野外或高低温等复杂条件下的嵌入式系统的程序更新。所以,具有远程烧写程 序的功能就显得尤为重要。
[0009] 基于DSP的远程烧写程序的方法很多,但其安全可靠性都不高,在烧写的时候均要 求系统不能断电,否则将造成整个系统软件崩溃。只能人工通过JTAG口调试烧写才能恢复。 如何有效提高系统维护的安全性、可靠性成为了一个重要而关键的问题。

【发明内容】

[0010] 本发明的目的在于解决上述的技术问题而提供一种高可靠性的嵌入式系统软件 远程更新方法及系统。
[0011] 为实现上述目的,本发明采用如下技术方案:
[0012] -种嵌入式系统软件远程更新方法,包括以下步骤:
[0013] 监控中心按预设内部协议将更新程序文件代码按预设分包规则分包,形成多个代 码包后,响应更新请求根据预设发送规则将所述代码包通过无线网络发送至信号处理机;
[0014] 所述信号处理机接收到所述监控中心发送的所述更新程序文件的代码包并检测 确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从程序代码 区分、位置分开写入非易失性存储器中;
[0015] 所述信号处理机更新程序烧写成功后响应所述监控中心的重启指令信号重启,处 理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代码分别对主处理器 和\或从处理器的对应程序进行更新。
[0016] 所述主程序代码存储在所述非易失性存储器的第一空间地址中,所述从程序代码 存在所述非易失性存储器的第二空间地址中,且所述第一空间地址的起始地址为所述非易 失性存储器0x00地址,所述第二空间地址的起始地址为所述第一空间地址的终止地址后的 第一个地址。
[0017] 所述第一空间地址及第二空间地址分别包括有多个b lock段。
[0018] 重载所述更新程序文件的代码包时,所述非易失性存储器内的所述主程序由所述 主处理器采用外部总线进行引导与加载,所述从程序通过所述主处理器与从处理器间的链 路口引导与加载。
[0019] 所述信号处理机每接收到一个代码包后判断数据是否正确,然后发正确接收或错 误接收回馈信息给所述监控中心,所述监控中心接收到正确接收回馈信息再发下一个新代 码包;如所述监控中心未收到正确接收回馈信息或收到错误接收回馈信息,则在预设时间 间隔后自动重发该错误接收回馈信息或未有正确接收回馈信息对应的代码包;如所述监控 中心重发该代码包的重发次数超过预设代码包重发次数,则放弃本次更新;
[0020] 所述信号处理机接收一个代码包并发送所述回馈信息后,在预设时间段后未收到 代码包时自动重新发送回馈信息,如在预设回馈信息设重发次数内仍未收到代码包,则放 弃此次软件烧写。
[0021] 所述信号处理机接收完全部的代码包后,核对所有代码包的信息、进行数据拼接、 校验,确认无误后通知所述监控中心进入烧写模式;同时所述信号处理机按照非易失性存 储器的读写指令,把RAM存储器中的数据从所述非易失性存储器的预设起始位置开始写入 直到烧写完成;烧写完成后,将烧写成功的信息回馈给所述监控中心;所述监控中心获得烧 写成功消息后,下发信号处理机重启指令,信号处理机重启,实现更新程序文件重新加载, 完成程序更新。
[0022] 如果所述监控中心自所述信号处理机收到烧写失败的反馈消息,或者等待预设时 间还没有收到烧写成功与否的反馈信息,则所述监控中心重新下发更新指令重新对所述信 号处理机的处理器的软件进行更新,直至所述信号处理机的处理器软件更新成功。
[0023] 所述更新程序文件的代码包的每一个包的信息均包括有报头、报文长度、形成的 代码包的总包数、本代码包的包号、本代码包包含的需要更新的编码数据和校验位信息;其 中,所述报文长度包括所述报头,所述校验位信息包括奇偶校验位与CRC校验位。
[0024]所述奇偶校验位为1个字节,所述CRC校验位为2个字节。
[0025] 本发明的目的还在于提供一种嵌入式系统软件远程更新系统,包括:
[0026] 监控中心,用于按预设内部协议将更新程序文件代码按预设分包规则分包,形成 多个代码包后,根据预设发送规则将所述代码包通过无线网络发送至信号处理机进行烧 写,并在所述代码包烧写成功后下发重启指令给所述信号处理机重启;
[0027] 所述信号处理机,用于接收到所述监控中心发送的所述更新程序文件的所有代码 包并检测确认无误后,通过自身烧写功能将所述更新程序文件的代码包的主程序代码与从 程序代码区分、位置分开写入非易失性存储器中,然后发送烧写成功回馈信息给所述监控 中心;
[0028] 所述信号处理机,还用于在更新程序烧写成功后,响应所述监控中心的重启指令 信号重启后,通过处理器重载所述更新程序文件的代码包,利用所述主程序代码、从程序代 码分别对主处理器和\或从处理器的对应程序进行更新。
[0029] 本发明通过控中心按预设内部协议将更新程序文件代码按预设分包规则分包,形 成多个代码包后,响应更新请求根据预设发送规则将代码包通过无线网络发送至信号处理 机;信号处理机接收到代码包并检测确认无误后,通过自身烧写功能将更新程序文件的代 码包的主程序代码与从程序代码区分、位置分开写入非易失性存储器中;然后响应所述监 控中心的重启指令信号重启,处理器重载更新程序文件的代码包,利用主程序代码、从程序 代码分别对主处理器和\或从处理器的对应程序进行更新,实现更新程序文件按主程序与 从程序的数据分段、位置分开、分片写入非易失性存储器中后,重载对主处理器和\或从处 理器的程序进行更新,相比现有技术而说,更新方法更为稳定,从程序更新不受主程序的影 响,可独立进行,因此烧写可靠性高,更新更为可靠。
【附图说明】
[0030] 图1为本发明实施例提供的一种嵌入式系统软件远程更新方法的流程图;
[0031] 图2为本发明实施
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1