System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 固件补丁加载方法、芯片及电子设备技术_技高网

固件补丁加载方法、芯片及电子设备技术

技术编号:40805323 阅读:5 留言:0更新日期:2024-03-28 19:29
本申请提供一种固件补丁加载方法、芯片及电子设备。所述加载方法包括:获取芯片存储器中二进制形式的补丁函数,所述二进制形式的补丁函数为编译器从补丁函数及其关联的链接脚本中提取出的二进制代码,所述链接脚本用于将所述补丁函数段中的虚拟内存地址指向一内存特定区域;将所述二进制形式的补丁函数搬运至所述内存特定区域;根据所述固件中的补丁钩子函数,在所述二进制形式的补丁函数中加载所述补丁钩子函数关联的固件补丁。所述加载方法无需对芯片进行重新流片,即可有效修复固件中的缺陷。

【技术实现步骤摘要】

本申请属于芯片领域,涉及一种固件补丁加载方法,特别是涉及一种固件补丁加载方法、芯片及电子设备


技术介绍

1、asic(application specific integrated circuit,专用集成电路)是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路,当前复杂的asic设计除了包含专有的硬件电路,还可能集成了一个或多个嵌入式mcu(microcontroller unit,微控制器),以及rom(read-only memory,只读存储器)、ram(random access memory,随机存取存储器)、eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)、flash等存储单元和其他外设模块,固件就是固化在mcu内部的软件,它承担着芯片最基础、最底层的工作,是芯片在上电复位时执行的第一个代码,包含了部分硬件初始化的工作以及引导用户程序的加载,是芯片设计时候的一个重点环节,由于是固化在芯片内部,一旦流片出来有问题,无法再修改,只能重新流片,这必然造成经济和时间上的损失,因此目前存在着当固件在芯片流片后出现缺陷时,无法在不重新流片的基础上有效修复固件缺陷的问题。


技术实现思路

1、本申请的目的在于提供一种固件补丁加载方法、芯片及电子设备,用于解决目前当固件在芯片流片后出现缺陷时,无法在不重新流片的基础上有效修复固件缺陷的问题。

2、第一方面,本申请提供一种固件补丁加载方法,应用于芯片的微控制器,所述加载方法包括:获取芯片存储器中二进制形式的补丁函数,所述二进制形式的补丁函数为编译器从补丁函数及其关联的链接脚本中提取出的二进制代码,所述链接脚本用于将所述补丁函数段中的虚拟内存地址指向一内存特定区域;将所述二进制形式的补丁函数搬运至所述内存特定区域;根据所述固件中的补丁钩子函数,在所述二进制形式的补丁函数中加载所述补丁钩子函数关联的固件补丁。

3、在所述加载方法中,通过在芯片流片后出现缺陷时,在所述固件中加载补丁钩子函数加载其关联的固件补丁即可有效修复固件中的缺陷,无需对芯片进行重新流片,能够有效降低损失。

4、于本申请的一实施例中,所述内存特定区域为内存空间中针对所述二进制形式的补丁函数开辟的内存区域,所述内存空间还包括:栈空间、堆空间、已初始化的全局变量空间和未初始化的全局变量空间,所述栈空间用于存放局部变量,所述堆空间用于存放程序动态分配的内存。

5、于本申请的一实施例中,所述内存特定区域为覆盖区。

6、于本申请的一实施例中,所述补丁钩子函数包含所述二进制形式的补丁函数中固件补丁的索引,所述索引用于使所述二进制形式的补丁函数运行与该索引关联的固件补丁。

7、于本申请的一实施例中,所述固件包括若干工作块,所述工作块关联的补丁钩子函数在所述工作块之前运行,所述工作块是否实际运行由所述工作块关联的是否运行标记决定。

8、于本申请的一实施例中,获取芯片存储器中二进制形式的补丁函数的实现方法包括:读取所述芯片存储器,若所述二进制形式的补丁函数中存在固件补丁,则将补丁标记设为存在固件补丁,并获取芯片存储器中二进制形式的补丁函数。

9、于本申请的一实施例中,根据所述固件中的补丁钩子函数,在所述二进制形式的补丁函数中加载所述补丁钩子函数关联的固件补丁的实现方法包括:在所述工作块运行之前,若所述补丁标记为存在固件补丁,则根据所述工作块关联的补丁钩子函数,在所述二进制形式的补丁函数中加载该补丁钩子函数关联的固件补丁。

10、于本申请的一实施例中,所述二进制形式的补丁函数为根据所述编译器的目标文件复制命令或目标文件查看命令从补丁函数及其关联的链接脚本中提取出的二进制代码。

11、第二方面,本申请提供一种芯片,所述芯片包括:存储器,存储有一计算机程序;微控制器,与所述存储器通信相连,调用所述计算机程序时执行第一方面任一项所述加载方法。

12、第三方面,本申请提供一种电子设备,所述电子设备包括:存储器,存储有一计算机程序;处理器,与所述存储器通信相连,调用所述计算机程序时执行第一方面任一项所述加载方法。

13、如上所述,本申请所述固件补丁加载方法、芯片及电子设备,具有以下有效有益效果:

14、在所述加载方法中,通过在芯片流片后出现缺陷时,在所述固件中加载补丁钩子函数加载其关联的固件补丁即可有效修复固件中的缺陷,无需对芯片进行重新流片,能够有效降低损失。

本文档来自技高网...

【技术保护点】

1.一种固件补丁加载方法,其特征在于,应用于芯片的微控制器,所述加载方法包括:

2.根据权利要求1所述的加载方法,其特征在于,所述内存特定区域为内存空间中针对所述二进制形式的补丁函数开辟的内存区域,所述内存空间还包括:栈空间、堆空间、已初始化的全局变量空间和未初始化的全局变量空间,所述栈空间用于存放局部变量,所述堆空间用于存放程序动态分配的内存。

3.根据权利要求2所述的加载方法,其特征在于,所述内存特定区域为覆盖区。

4.根据权利要求1所述的加载方法,其特征在于,所述补丁钩子函数包含所述二进制形式的补丁函数中固件补丁的索引,所述索引用于使所述二进制形式的补丁函数运行与该索引关联的固件补丁。

5.根据权利要求1所述的加载方法,其特征在于,所述固件包括若干工作块,所述工作块关联的补丁钩子函数在所述工作块之前运行,所述工作块是否实际运行由所述工作块关联的是否运行标记决定。

6.根据权利要求4所述的加载方法,其特征在于,获取芯片存储器中二进制形式的补丁函数的实现方法包括:读取所述芯片存储器,若所述二进制形式的补丁函数中存在固件补丁,则将补丁标记设为存在固件补丁,并获取芯片存储器中二进制形式的补丁函数。

7.根据权利要求5所述的加载方法,其特征在于,根据所述固件中的补丁钩子函数,在所述二进制形式的补丁函数中加载所述补丁钩子函数关联的固件补丁的实现方法包括:在所述工作块运行之前,若所述补丁标记为存在固件补丁,则根据所述工作块关联的补丁钩子函数,在所述二进制形式的补丁函数中加载该补丁钩子函数关联的固件补丁。

8.根据权利要求1所述的加载方法,其特征在于,所述二进制形式的补丁函数为根据所述编译器的目标文件复制命令或目标文件查看命令从补丁函数及其关联的链接脚本中提取出的二进制代码。

9.一种芯片,其特征在于,所述芯片包括:

10.一种电子设备,其特征在于,包括:

...

【技术特征摘要】

1.一种固件补丁加载方法,其特征在于,应用于芯片的微控制器,所述加载方法包括:

2.根据权利要求1所述的加载方法,其特征在于,所述内存特定区域为内存空间中针对所述二进制形式的补丁函数开辟的内存区域,所述内存空间还包括:栈空间、堆空间、已初始化的全局变量空间和未初始化的全局变量空间,所述栈空间用于存放局部变量,所述堆空间用于存放程序动态分配的内存。

3.根据权利要求2所述的加载方法,其特征在于,所述内存特定区域为覆盖区。

4.根据权利要求1所述的加载方法,其特征在于,所述补丁钩子函数包含所述二进制形式的补丁函数中固件补丁的索引,所述索引用于使所述二进制形式的补丁函数运行与该索引关联的固件补丁。

5.根据权利要求1所述的加载方法,其特征在于,所述固件包括若干工作块,所述工作块关联的补丁钩子函数在所述工作块之前运行,所述工作块是否实际运行由所述工作块关联的是否运行标记决定。

...

【专利技术属性】
技术研发人员:金超陈小刚阮召崧
申请(专利权)人:南京金阵微电子技术有限公司
类型:发明
国别省市:

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

1