[发明专利]一种实现BOOT和应用程序分离的方法、装置及相关组件在审
| 申请号: | 202210363296.8 | 申请日: | 2022-04-07 |
| 公开(公告)号: | CN114780234A | 公开(公告)日: | 2022-07-22 |
| 发明(设计)人: | 陈玮钰;郭云 | 申请(专利权)人: | 深圳市振邦智能科技股份有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/22;G06F8/65;G06F9/4401;G06F9/48 |
| 代理公司: | 深圳市精英专利事务所 44242 | 代理人: | 丁宇龙 |
| 地址: | 518000 广东省深圳市光明新区玉塘*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 boot 应用程序 分离 方法 装置 相关 组件 | ||
1.一种实现BOOT和应用程序分离的方法,其特征在于,包括:
将MCU的Flash存储空间划分成Boot区和App应用区;以及从所述MCU的Ram存储空间中划分出中断函数地址存储区域;
新建BOOT工程,并设置所述BOOT工程在编译时所分配的Flash范围在所述Boot区;
新建应用程序工程,并设置所述应用程序工程在编译时所分配的Flash范围在所述App应用区;
将所述BOOT工程和应用程序工程在执行时的中断函数地址存放至所述中断函数地址存储区域,并将存储于所述Boot区的MCU的硬件绝对中断地址与所述中断函数地址存储区域中的中断函数地址进行映射;
所述MCU通电后,先执行所述BOOT工程,利用所述BOOT工程更新校验,并在更新校验通过后,停止执行所述BOOT工程并跳转至所述应用程序工程,执行应用程序;
当所述应用程序工程接收通信模块发送的更新指令时,对所述MCU进行复位,停止执行所述应用程序工程并跳转执行所述BOOT工程,通过所述BOOT工程对所述应用程序进行更新。
2.根据权利要求1所述的实现BOOT和应用程序分离的方法,其特征在于,还包括:
分别获取所述BOOT工程和应用程序工程编译后生成的文件,并对2个文件进行裁剪和合并处理,得到目标二进制文件。
3.根据权利要求2所述的实现BOOT和应用程序分离的方法,其特征在于,所述分别获取所述BOOT工程和应用程序工程编译后生成的文件,并对2个文件进行裁剪和合并处理,得到目标二进制文件,包括:
获取所述BOOT工程编译后生成的boot.hex文件;
获取所述应用程序工程编译后生成的App.hex文件;
删除所述App.hex文件中所述Boot区中的数据,删除所述boot.hex文件中所述APP应用区中的数据;
将删除处理后的所述App.hex文件和boot.hex文件进行合并,得到PRJ.hex文件。
4.根据权利要求1所述的实现BOOT和应用程序分离的方法,其特征在于,所述通过所述BOOT工程对所述应用程序进行更新,包括:
通过所述通信模块接收更新文件,获取所述更新文件中的版本信息或者标识信息,并根据所述版本信息或者标识信息判断所述更新文件是否是最新版本;
获取所述更新文件中的项目ID号,根据所述项目ID号判断是否符合预设的升级标准;
若符合预设的升级标准且更新文件是最新版本,则对所述Flash存储空间的固件文件进行更新替换。
5.根据权利要求4所述的实现BOOT和应用程序分离的方法,其特征在于,所述对所述Flash存储空间的固件文件进行更新替换,包括:
对所述Flash存储空间中的固件文件进行擦除,并将更新文件写入所述Flash存储空间。
6.根据权利要求1所述的实现BOOT和应用程序分离的方法,其特征在于,还包括:
设置所述BOOT工程和应用程序工程在停止执行时,释放存放于所述中断函数地址存储区域中的中断函数地址。
7.根据权利要求1所述的实现BOOT和应用程序分离的方法,其特征在于,所述将MCU的Flash存储空间划分成Boot区和App应用区,包括:
将所述MCU的Flash存储空间的前段空间设置为Boot区,将所述MCU的Flash存储空间的后段空间设置为App应用区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市振邦智能科技股份有限公司,未经深圳市振邦智能科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210363296.8/1.html,转载请声明来源钻瓜专利网。





