CN119149062A 补丁修复方法、补丁制作方法、相关设备及系统 (华为技术有限公司).pdfVIP

  • 2
  • 0
  • 约3.48万字
  • 约 31页
  • 2026-02-02 发布于重庆
  • 举报

CN119149062A 补丁修复方法、补丁制作方法、相关设备及系统 (华为技术有限公司).pdf

(19)国家知识产权局

(12)发明专利申请

(10)申请公布号CN119149062A

(43)申请公布日2024.12.17

(21)申请号202310710052.7

(22)申请日2023.06.14

(71)申请人华为技术有限公司

地址518129广东省深圳市龙岗区坂田华

为总部办公楼

(72)发明人尹永宏丁磊李亚磊杨程

王桢

(74)专利代理机构广州三环专利商标代理有限

公司44202

专利代理师陈聪

(51)Int.Cl.

G06F8/65(2018.01)

权利要求书3页说明书17页附图10页

(54)发明名称

补丁修复方法、补丁制作方法、相关设备及

系统

(57)摘要

本申请实施例提供了一种补丁修复方法,终

端设备在下载补丁文件(通过静态链接生成)后

将补丁函数的二进制代码搬移到MCU上的补丁

区,并基于补丁文件中记录的原函数、补丁函数

的运行地址映射关系合成跳转指令,然后在已存

放于MCU上系统镜像(静态链接成的)中原函数处

插入该跳转指令,使其指向补丁区的补丁函数,

以此修复MCU内核问题。其中,补丁区是提前分配

的一段运行地址,它与MCU上已有的系统镜像(静

态链接成的)占用的运行地址不冲突。这样,解决

了补丁与静态链接工程的兼容问题,实现了全静

A态链接工程的函数级补丁修复方案,可以支持宏

2内核架构的MCU平台在不重新烧录整个系统镜像

6

0

9的前提下实现函数级更新。

4

1

9

1

1

N

C

CN119149062A权利要求书1/3页

1.一种补丁修复方法,应用于终端设备,其特征在于,所述终端设备上运行着第一镜

像,所述第一镜像是第一软件工程的源代码经历编译、静态链接得到的,所述方法包括:

所述终端设备从服务器下载所述第一软件工程的补丁文件,所述补丁文件包括协议

头、函数描述表和补丁函数的二进制数据;所述函数描述表包括:所述补丁函数的运行地

址、所述补丁函数要修复的原函数的运行地址,以及N个字节的机器码;所述补丁函数的二

进制数据包括所述补丁函数引用的变量,以及指示程序计数器PC指针跳转到所述补丁函数

所依赖的函数的运行地址的指令;

所述终端设备将所述补丁函数的二进制数据搬移到补丁区,所述补丁区是一段运行地

址空间,与存放所述第一镜像的运行地址空间不冲突;

所述终端设备基于所述补丁函数的运行地址合成跳转指令,所述跳转指令用于指令PC

指针跳转到所述补丁函数的运行地址;

所述终端设备将所述跳转指令插入到所述原函数的运行地址处;

其中,N是正整数,N等于跳转指令的字节长度。

2.如权利要求1所述的方法,其特征在于,在所述终端设备基于所述补丁函数的运行地

址合成跳转指令之前,还包括:

校验并确定所述函数描述表中包括的所述N个字节的机器码与从所述原函数的运行地

址处读取出N个字节的机器码相同。

3.如权利要求1或2所述的方法,其特征在于,如权利要求1所述的方法,其特征在于,所

述跳转指令包括连续存放的预留位、跳转位和地址位,其中,所述地址位在所述跳转位之

后,所述地址位用于存放所述补丁函数的运行地址,所述跳转位用于存放第一指令集下的

第二指令,所述第二指令用于将所述地址位中存放的数据读取到程序计数器PC寄存器中。

4.如权利要求3所述的方法,其特征在于,所述地址位、所述跳转位的字节长度都同于

PC指针最小移动字节长度。

5.如权利要求3或4所述的方法,其特征在于,所述第一指令集是thumb指令集。

6.如权利要求2‑5中任一项所述的方法,其特征在于,所述第二指令是加载寄存器LDR

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档