【技术实现步骤摘要】
一种基于STM32F746处理器的远程升级方法
本专利技术涉及电数字数据处理领域,尤其涉及一种基于STM32F746处理器的远程升级方法。
技术介绍
STM32F7系列产品由于其低功耗、低成本、高性能、易于使用、可扩展性强等优点被广泛使用于工业控制领域,通常用户在使用过程中,由于系统软件本身bug、客户需求变更等原因,不可避免需要对目标板应用程序进行更新,因此,需要一种更方便、快速、安全有效的软件远程加载机制来提高软件升级的效率。目前STM32F7系列产品在远程升级过程中通常采用IAP技术对应用程序进行更新。IAP的原理是将程序存储器划分为两个区域,区域1使用专用程序下载器烧录特定的bootloader程序,完成应用程序数据的接收和存储功能;区域2存放真正的项目代码userapplication,区域2的代码通过区域1进行更改。该方法的缺点为当远程升级过程中由于非正常或人为原因引发设备掉电或通信中断时,应用程序的接收和存储过程被打断,下次上电后应用程序无法退回到升级前的状态启动运行,只能依靠再次远程升级或返厂维修的方 ...
【技术保护点】
1.一种基于STM32F746处理器的远程升级方法,其特征在于,包括:/n程序存储器重新分区:将程序存储器划分为4个区域,分别为引导区、运行区、备份区和系统变量区,所述引导区用于存放bootloader程序,完成应用程序的搬移和启动引导;所述运行区用于存放真正运行的user application程序,完成远程升级文件传输和处理,并将所述远程升级文件存储到所述备份区;所述备份区用于存放远程升级传输的新版本userapplication程序;所述系统变量区用于存放系统变量;/n应用程序远程升级:在应用程序进行远程升级时,只有当远程传输成功且数据存储到所述备份区后,在下次上电后 ...
【技术特征摘要】
1.一种基于STM32F746处理器的远程升级方法,其特征在于,包括:
程序存储器重新分区:将程序存储器划分为4个区域,分别为引导区、运行区、备份区和系统变量区,所述引导区用于存放bootloader程序,完成应用程序的搬移和启动引导;所述运行区用于存放真正运行的userapplication程序,完成远程升级文件传输和处理,并将所述远程升级文件存储到所述备份区;所述备份区用于存放远程升级传输的新版本userapplication程序;所述系统变量区用于存放系统变量;
应用程序远程升级:在应用程序进行远程升级时,只有当远程传输成功且数据存储到所述备份区后,在下次上电后才会通过bootloader程序的搬移和启动引导处理完成应用程序的升级,否则下次上电后依然会运行升级前的应用程序。
2.根据权利要求1所述的一种基于STM32F746处理器的远程升级方法,其特征在于,所述系统变量包括软件更新标识、版本号和文件总大小。
3.根据权利要求1所述的一种基于STM32F746处理器的远程升级方法,其特征在于,STM32F746处理器的运行流程包括以下步骤:
S11.STM32F746处理器启动后,首先从0x80000004处获取复位中断向量的地址并跳转到复位中断服务程序,执行完复位中断服务程序后跳转至main函数处开始执行;
S12.在main函数中根据软件更新标识是否有效执行应用程序目标文件的搬移,处理完成后根据userapplication程序偏移量跳转到userapplication程序的复位向量表;
S13.取出userapplication程序的复位中断地址,跳转至新的复位中断服务程序,执行完成后跳转至userapplication的main函数;
S14.在userapplication的main函数的运行过程中,如果接收到任一中断请求,PC指针仍强制跳转到0x80000004处,然后再根据预先设置的userapplication程序偏移量跳转到相应中断源的中断服务程序执行;
S15.执行完相应中断服务程序后,返回到userapplication的main函数处继续运行。
4.根据权利要求1所述的一种基于STM32F746处理器的远程升级方法,其特征在于,每个数据包在传输过程中采用CRC8完成数据校验,整个远程升级文件在传输过程中采用CRC16完成文件校验。
5.根据权利要求1所述的一种基于STM32F746处理器的远程升级方法,其特征在于,远程升级文件传输过程中采用连续循环滚动序号的方式进行发送:首次发起文件传输请求时,序号为0,userapplication接收到文件传输请求后回复序号为0的应答,开始文件传输;文件传输过程中,序号依次从1到255循环递增,userapplication接收端按预计序号从1~255递增的方式进行同步识别和接收,当接收到得序号与预期序号不一致时,回复文件传输错误应答;当接收到得序号与预期序号一致,回复文件传输正确应答。
6.根据权利要求2所述的一种基于STM32F746处理器的远程升级方法,其特征在于,bootloader程序的运行流程包括以下步骤:
S21.系统时钟和GPIO初始化;
S22.读取所述系统变量区中软件更新标识检查是否需要对userapplication进行更新;
S23.不需要更新则跳转到步骤S26;
S24.需要更新,擦除所述运行区中扇区1、2和3的内容,读取所述系统变量区软件总大小,并将所述备份区中目标程序文件根据文件总大小按字节依次搬移到所述运行区;
S25.所述系统变量区中软件更新标识置为无效;
S26.跳转到所述运行区执行userapplication应用程序。
7.根据权利要求1所述的一种基于STM32F746处理器的远程升级方法,其特征在于,userapplication程序启动后,主要完成初始化、工作模式状态切换、网络数据接收、应用程...
【专利技术属性】
技术研发人员:卢晓霞,吴俊,邓玉龙,
申请(专利权)人:四川九洲空管科技有限责任公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。