一种两级引导加载控制器程序启动和刷写方法技术

技术编号:38772534 阅读:22 留言:0更新日期:2023-09-10 10:45
本发明专利技术公开一种两级引导加载控制器程序启动和刷写方法,涉及物联网技术领域;划分物联网控制器的Flash为BootLoader 0分区、BootLoader 1分区和App分区,进行物联网控制器启动:跳转到BootLoader 0分区的入口地址,验证BootLoader 0分区完整性,验证通过则跳转到BootLoader 1分区的入口地址,验证BootLoader 1分区完整性,验证通过则跳转到App分区的入口地址,验证App分区完整性,验证通过则物联网控制器启动;通过物联网控制器刷写升级应用程序:导入需要刷写的hex文件,读取密钥文件,通过App分区跳转至BootLoader 1分区,进行安全校验,校验通过则在BootLoader 1分区开始刷写,直至BootLoader 1分区刷写应用程序完成。程序完成。程序完成。

【技术实现步骤摘要】
一种两级引导加载控制器程序启动和刷写方法


[0001]本专利技术公开一种方法,涉及物联网
,具体地说是一种两级引导加载控制器程序启动和刷写方法。

技术介绍

[0002]物联网设备现已广泛应用于工业、农业等各个领域,在特定的网络中实现诸如光控、跟踪、数据采集等多功能控制。物联网控制器在整个物联网控制系统中扮演着重要的角色,在物联网网络系统中起承上启下的作用,向上实现与服务器以及云端的数据对接,向下实现对各个端侧节点的数据采集。
[0003]物联网控制器在工业自动化、智能建筑监控、智能制造等场景有广泛的应用。由于物联网控制器的应用场景较复杂且功能升级频率较快,因此控制器的维护、诊断以及升级功能尤为重要。目前物联网控制设备升级的方式有本地刷写、无线OTA空中升级两种技术,本地刷写一般是基于串口或者Modbus等协议实现应用程序的升级,升级维护不方便,而无线OTA空中技术虽然升级比较方便,但是需要控制器具备联网功能并且对控制器的MCU内存要求较高,对推广应用有所限制。

技术实现思路

[0004]本专利技术针对现有技术的问题,提供一种两级引导加载控制器程序启动和刷写方法,有利于设备的故障诊断和程序版本维护,提高了程序升级的安全性,有效的减小了设备升级的运营成本,在各类物联网设备控制器范畴都具有较高的应用价值。
[0005]本专利技术提出的具体方案是:
[0006]本专利技术提供一种两级引导加载控制器程序启动和刷写方法,划分物联网控制器的Flash为BootLoader 0分区、BootLoader 1分区和App分区,
[0007]进行单独分区管理,通过BootLoader 0分区进行控制器各类外设驱动、通讯协议的初始化和升级BootLoader 1分区,通过BootLoader 1分区进行App分区内程序刷写、故障诊断以及公共RAM的内存管理,将App区作为应用层,进行数据采集与处理,在上行与上位机通讯,在下行对设备进行控制;
[0008]进行物联网控制器启动:跳转到BootLoader 0分区的入口地址,验证BootLoader 0分区完整性,验证通过则跳转到BootLoader 1分区的入口地址,验证BootLoader 1分区完整性,验证通过则跳转到App分区的入口地址,验证App分区完整性,验证通过则物联网控制器启动;
[0009]通过物联网控制器刷写升级应用程序:导入需要刷写的hex文件,读取密钥文件,
[0010]通过App分区跳转至BootLoader 1分区,进行安全校验,校验通过则在BootLoader 1分区开始刷写,直至BootLoader 1分区刷写应用程序完成。
[0011]进一步,所述的一种两级引导加载控制器程序启动和刷写方法中分别将BootLoader 0分区、BootLoader 1分区和App分区内划分块Block,并将每个分区的最后四
个字节用作校验位,
[0012]利用公共RAM在跳转不同分区时提供分区间跳转的数据传递。
[0013]进一步,所述的一种两级引导加载控制器程序启动和刷写方法中对所述完整性进行验证,包括:分别将每个分区最后四个字节作为所在分区的校验值,当进行验证时,获取待验证的分区的起始地址和长度,依次读取待验证的分区Flash中的数据并计算,若计算值和待验证的分区校验值一致,则表示待验证的分区完整,否则表示待验证的分区不完整。
[0014]进一步,所述的一种两级引导加载控制器程序启动和刷写方法中所述通过物联网控制器刷写升级应用程序,针对刷写上位机流程,包括:
[0015]步骤1:导入需要刷写的hex文件,读取hex文件中的数据,所述数据中包含分区地址、长度、以及各个分区的校验值,
[0016]步骤2:读取密钥文件,
[0017]步骤3:发送跳转指令,接收到跳转成功回复后,进入步骤4,
[0018]步骤4:发送安全校验指令,接收到数据回复并校验通过后进入步骤5,
[0019]步骤5:开始发送刷写指令,刷写从块Block1开始,等待物联网控制器回复,若回复刷写成功,则继续刷写块block2,
[0020]循环执行直至所有块Block刷写完成,接收到物联网控制器刷写成功指令后,提示刷写成功。
[0021]进一步,所述的一种两级引导加载控制器程序启动和刷写方法中所述通过物联网控制器刷写升级应用程序,针对BootLoader 1分区刷写过程,包括:
[0022]步骤1:根据跳转指令,从App分区跳转至BootLoader 1分区,
[0023]步骤2:根据安全校验指令,给上位机回复解密密钥,
[0024]步骤3:开辟一段内存将块Block1的数据备份,然后开始擦除块Block1,并写入接收到上位机的数据,直至最后四个字节处,进入步骤4,
[0025]步骤4:BootLoader 1分区读取块Block1的最后四个字节之前所有数据,并计算出校验值a,将a与接收到的上位机的Block1的最后四字节的校验值比较,若一致则回复块Blcok1刷写成功,进入步骤5,否则块Block1刷写失败,则执行擦除块Block1并将步骤3备份的数据重新写入块Block1,
[0026]步骤5:若块Block1刷写成功,则进入步骤3进行循环,直至刷写完App分区的所有块Block,进入步骤6,
[0027]步骤6:所有块Block刷写成功后,执行物联网控制器复位操作。
[0028]本专利技术还提供一种引导加载控制器程序启动和刷写装置,包括分区管理模块,
[0029]分区管理模块划分物联网控制器的Flash为BootLoader 0分区、BootLoader 1分区和App分区,进行单独分区管理,
[0030]分区管理模块通过BootLoader 0分区进行控制器各类外设驱动、通讯协议的初始化和升级BootLoader 1分区,分区管理模块通过BootLoader 1分区进行App分区内程序刷写、故障诊断以及公共RAM的内存管理,App分区管理模块将App区作为应用层,进行数据采集与处理,在上行与上位机通讯,在下行对设备进行控制;
[0031]分区管理模块进行物联网控制器启动:跳转到BootLoader 0分区的入口地址,验证BootLoader 0分区完整性,验证通过则跳转到BootLoader 1分区的入口地址,验证
BootLoader 1分区完整性,验证通过则跳转到App分区的入口地址,验证App分区完整性,验证通过则物联网控制器启动;
[0032]分区管理模块通过物联网控制器刷写升级应用程序:导入需要刷写的hex文件,读取密钥文件,
[0033]通过App分区跳转至BootLoader 1分区,进行安全校验,校验通过则在BootLoader 1分区开始刷写,直至BootLoader 1分区刷写应用程序完成。
[0034]进一步,所述的一种引导加载控制器程序启动和刷写装置中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种两级引导加载控制器程序启动和刷写方法,其特征是划分物联网控制器的Flash为BootLoader 0分区、BootLoader 1分区和App分区,进行单独分区管理,通过BootLoader 0分区进行控制器各类外设驱动、通讯协议的初始化和升级BootLoader 1分区,通过BootLoader 1分区进行App分区内程序刷写、故障诊断以及公共RAM的内存管理,将App区作为应用层,进行数据采集与处理,在上行与上位机通讯,在下行对设备进行控制;进行物联网控制器启动:跳转到BootLoader 0分区的入口地址,验证BootLoader 0分区完整性,验证通过则跳转到BootLoader 1分区的入口地址,验证BootLoader 1分区完整性,验证通过则跳转到App分区的入口地址,验证App分区完整性,验证通过则物联网控制器启动;通过物联网控制器刷写升级应用程序:导入需要刷写的hex文件,读取密钥文件,通过App分区跳转至BootLoader 1分区,进行安全校验,校验通过则在BootLoader 1分区开始刷写,直至BootLoader 1分区刷写应用程序完成。2.根据权利要求1所述的一种两级引导加载控制器程序启动和刷写方法,其特征是分别将BootLoader 0分区、BootLoader 1分区和App分区内划分块Block,并将每个分区的最后四个字节用作校验位,利用公共RAM在跳转不同分区时提供分区间跳转的数据传递。3.根据权利要求1所述的一种两级引导加载控制器程序启动和刷写方法,其特征是对所述完整性进行验证,包括:分别将每个分区最后四个字节作为所在分区的校验值,当进行验证时,获取待验证的分区的起始地址和长度,依次读取待验证的分区Flash中的数据并计算,若计算值和待验证的分区校验值一致,则表示待验证的分区完整,否则表示待验证的分区不完整。4.根据权利要求1所述的一种两级引导加载控制器程序启动和刷写方法,其特征是所述通过物联网控制器刷写升级应用程序,针对刷写上位机流程,包括:步骤1:导入需要刷写的hex文件,读取hex文件中的数据,所述数据中包含分区地址、长度、以及各个分区的校验值,步骤2:读取密钥文件,步骤3:发送跳转指令,接收到跳转成功回复后,进入步骤4,步骤4:发送安全校验指令,接收到数据回复并校验通过后进入步骤5,步骤5:开始发送刷写指令,刷写从块Block1开始,等待物联网控制器回复,若回复刷写成功,则继续刷写块block2,循环执行直至所有块Block刷写完成,接收到物联网控制器刷写成功指令后,提示刷写成功。5.根据权利要求4所述的一种两级引导加载控制器程序启动和刷写方法,其特征是所述通过物联网控制器刷写升级应用程序,针对BootLoader 1分区刷写过程,包括:步骤1:根据跳转指令,从App分区跳转至BootLoader 1分区,步骤2:根据安全校验指令,给上位机回复解密密钥,步骤3:开辟一段内存将块Block1的数据备份,然后开始擦除块Block1,并写入接收到上位机的数据,直至最后四个字节处,进入步骤4,
步骤4:BootLoader 1分区读取块Block1的最后四个字节之前所有数据,并计算出校验值a,将a与接收到的上位机的Block1的最后四字节的校验值比较,若一致则回复块Blcok1刷写成功,进入步骤5,否则块Block1刷写失败,则执行擦除块Block1并将步骤3备份的数据重新写入块Block1,步骤5:若块Block1刷写成功,则进入步骤3进行循环,直至刷写完App分区的所有块Block,进入步骤6,步骤6:所有块Block刷写成功后,执行物联网控制器复位操作。6.一种引导加载控制器程序启动和刷写装置,其特征是包括分区管理模块...

【专利技术属性】
技术研发人员:张永昊金长新李锐魏子重
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1