一种基于DSP的FLASH程序自更新方法与流程

文档序号:14571726发布日期:2018-06-01 22:34阅读:来源:国知局
一种基于DSP的FLASH程序自更新方法与流程

技术特征:

1.一种基于DSP的FLASH程序自更新方法,其特征在于该方法的具体步骤为:

第一步 搭建基于DSP的FLASH程序自更新系统

基于DSP的FLASH程序自更新系统,包括:程序转换模块(1)、程序发送模块(2)、程序接收模块(3)、程序校验模块(4)和程序更新模块(5);

程序转换模块(1)的功能是:将源文件编译生成的COFF格式的.out文件转换为16进制机器语言的.bin的文件;

程序发送模块(2)的功能是:将.bin文件分割打包后通过串口或网口按照相应协议发送数据包以及接收程序校验模块(4)的校验结果,并根据校验结果来决定是否重发当前数据包或者继续发送后续数据包;

程序接收模块(3)的功能是:按照相应协议接收数据包;

程序校验模块(4)的功能是:对接收到的数据包进行校验,将校验结果返回程序发送模块(2),并将校验通过的数据包拆包后放到相应的存储地址空间;

程序更新模块(5)的功能是:等到数据包接收完成后,进行FLASH存储空间的擦除和烧写操作,完成FLASH存储空间的程序更新;

第二步 程序转换模块(1)将源文件编译生成的.out文件转换为16进制机器语言的.bin文件

源文件经过编译器编译后生成.out文件,文件格式为COFF格式;DSP系统的FLASH不能识别COFF格式,只能识别l6进制机器语言格式;程序转换模块(1)将.out文件解析并提取出程序部分,保存为后缀为.bin的16进制格式文件;

第三步 程序发送模块(2)将.bin文件分割打包后发送

16进制的.bin文件的大小随源文件的大小而变化,并且受到物理接口传输速率限制,无法一次完成发送,而是分割为多个数据块发送;程序发送模块(2)首先根据物理接口传输速率大小将.bin文件分割成多个数据块,然后依次将各个数据块打包成数据包以确保数据传输的可靠性,最后开始发送数据包;

程序发送模块(2)每发送一个数据包后会等待程序校验模块(4)反馈的校验结果,当校验失败则重新发送当前数据包,当校验成功则继续后续数据包的发送;发送的第一个数据包不包含任何数据块,数据块长度为0,而包含.bin文件分割的数据块数、程序更新开始标志、数据块校验、数据包计数、数据包校验、数据包头和数据包尾;发送的最后一个数据包也不包含任何数据块,数据块长度为0,而包含.bin文件分割的数据块数、程序更新结束标志、数据块校验、数据包计数、数据包校验、数据包头和数据包尾;发送的其余数据包包含数据块、程序更新标志、数据块校验、数据包计数、数据包校验、数据包头和数据包尾,程序更新标志为程序更新取消时取消程序更新,程序更新标志为程序更新继续时继续数据包发送;

第四步 程序接收模块(3)按照相应协议接收数据包

程序接收模块(3)根据物理接口协议接收数据包;

第五步 程序校验模块(4)对接收到的数据包进行校验

程序校验模块(4)对接收到的数据包进行校验,校验包含:数据包头尾的正确性判断、数据包校验和数据块校验,任何一个条件不满足则认为校验失败;程序校验模块(4)将校验结果返回给程序发送模块(2);当校验通过时,程序校验模块(4)判断程序更新标志,程序更新标志有开始、结束、取消和继续四种情况;程序更新标志为继续时,根据当前数据块号确定数据块数据的临时存储程序空间,取出数据块数据放入其中;程序更新标志为结束时,程序校验模块(4)启动程序更新模块(5);

第六步 程序更新模块(5)完成FLASH存储空间的程序更新

程序更新模块(5)首先对FLASH存储空间进行擦除,然后将临时存储程序空间中的数据烧写到FLASH中,烧写完成后,自动进行逐字节校验,确保烧写内容完全正确;DSP系统重新加电,运行更新后的程序;

至此,完成基于DSP的FLASH程序自更新。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1