一种替换ROM中函数的方法及装置制造方法及图纸

技术编号:23212613 阅读:37 留言:0更新日期:2020-01-31 21:48
本发明专利技术涉及计算机技术,特别涉及一种替换ROM中函数的方法及装置,用以降低函数替换过程中的代码开销,以及降低实现复杂度。该方法为:在ROM中查找到待修复函数的组编号对应的函数表,并将该函数表复制为新函数表后,在新函数表中将待修复函数的访问地址更新为设置的新函数的访问地址,最后,再将对应组编号设置的指针,指向新函数表。这样,在进行函数修复时,只会影响到待修复函数所归属的函数组中的各个函数,修改影响范围小,从而减小了修复过程中RAM的资源开销,同时,在修复过程中,只需要对待修复函数所归属的函数组对应的指针进行重新定位即可完成修复,从而有效降低了代码改动开销,以及有效降低了实现复杂度。

A method and device for replacing functions in ROM

【技术实现步骤摘要】
一种替换ROM中函数的方法及装置
本专利技术涉及计算机技术,特别涉及一种替换ROM中函数的方法及装置。
技术介绍
在计算机系统中,只读存储器(Read-OnlyMemory,ROM)是必不可少的组成部分。通常情况下,ROM设置在片上系统(SystemOnChip,SOC)内部,用于存储数据和代码,并且在SOC流片完成(即生产完成)后,ROM中存储的数据和代码就不能再做修改。一旦发现ROM中存储的数据或代码存在隐患,需要对其做修改时,必须对SOC重新流片,代价和成本都比较高昂。针对上述情况,为了在不重新流片情况下,仍能够修复代码和数据的隐患,已有技术下提供了以下解决方案:参阅图1所示,为ROM中记录的每个可能存在风险的函数,定义每个函数的访问地址,以函数表(functiontable)的形式存储,所述functiontable定义在随机存取存储器(Random-accessmemory,RAM)。而其他函数调用ROM中记录的可能存在风险的函数时,并不是直接调用,而是通过指针调用。例如:假设存在三个函数,分别为函数1(function1),函数2(function2)和函数3(function3),当function1、function2和function3需要调用ROM中的函数A时,并不是直接调用A,而是先从functiontable中,获取函数A的访问地址A,再根据访问地址A跳转至ROM中读取A中运行。那么,当函数A的代码存在隐患,需要针对函数A进行修复时,需要设计一个新的函数A1,再将functiontable中函数A的访问地址A修改为访问地址A1,令指针重新指向函数A1的调用接口,而函数A则丢弃不再使用。这样无需对ROM中的代码进行修改,即可将调用函数A变为调用函数A1,即完成了ROM中函数的修复需求。然而,上述解决方案却存在以下缺陷:需要为ROM中的每一个待修复的函数,实现一个新的指针调用接口,用以替换原有接口,从而增加了实现复杂度。另一方面,在在ROM代码开发阶段,当需要将ROM代码中普通函数,变更为待修复函数时,需要:定义新的函数指针、并将所有调用到该待修复函数的代码,修改为调用函数指针;例如,针对函数A定义了新的函数指针,称为指针A1,那么,假设function1、function2和function3需要调用函数A,则需要将function1、function2和function3中调用函数A的代码,修改为调用指针A1。这种修改称为“侵入式修改”,会增加了代码开销,同时也增加了实现复杂度。
技术实现思路
本专利技术实施例提供一种替换ROM中函数的方法及装置,用以降低函数替换过程中的代码开销,以及降低实现复杂度。本专利技术实施例提供的具体技术方案如下:一种替换只读存储器ROM中函数的方法,包括:确定待修复函数的函数索引,所述函数索引至少用于指示待修复函数的组编号;基本所述组编号在ROM中查找到所述待修复函数对应的函数表,所述函数表中记录有所述待修复函数归属的函数组中各个待修复函数的访问地址;将所述函数表复制至指定存储位置,生成相应的新函数表,并在所述新函数表中,将所述待修复函数的访问地址更新为设置的新函数的访问地址,所述新函数用于替代所述待修复函数执行相应功能;在RAM中获取对应所述组编号设置的指针,将所述指针指向所述新函数表。可选的,在预处理阶段,进一步包括:确定将写入ROM的所有的函数;基于预设规则将ROM中指定的各个函数划分为若干组;分别对应每一个函数组,在ROM中设置相应的函数表;对应每一个函数表设置相应的组编号。可选的,进一步包括:对应所述指定的各个函数分别设置相应的接口函数,其中,其他函数在调用一个函数时,通过所述一个函数对应的接口函数,对所述一个函数进行间接调用。可选的,基于预设规则将ROM中指定的各个函数划分为若干组,包括:将风险等级之间的差值低于第一设定门限值的函数划分为一组;或者,将修复难度等级之间的差值低于第二设定门限值的函数划分为一组;或者,将函数运行过程中的实时性需求的差值低于第三设定门限值的函数划分为一组。可选的,进一步包括:在RAM中设置RAM指针表,所述RAM指针表中记录的每一个指针分别指向所述每一个函数表;对应每一个指针指向的函数表,设置相应指针的组编号。可选的,确定待修复函数的函数索引,包括:根据指示,调用对应所述待修复函数设置的接口函数;基于所述接口函数,确定所述待修复函数的函数索引。可选的,在RAM中获取对应所述组编号设置的指针,包括:基于所述接口函数,采用直接跳转方式或异常跳转方式,跳转至预设的分发函数;通过所述分发函数,基于所述函数索引包含的组编号,在RAM中查找到相应的指针。可选的,所述分发函数是统一设置的,或者,所述分发函数是对应所述待修复函数所归属的函数组设置的,或者,所述分发函数是对应所述待修复函数设置的。可选的,将所述函数表复制至指定存储位置,生成相应的新函数表,并在所述新函数表中,将所述待修复函数的访问地址更新为设置的新函数的访问地址,包括:将所述函数表复制至RAM中,生成相应的新函数表;确定生成的用于替换待修复函数的新函数;将所述待修复函数的组编号赋予所述新函数;基于所述函数索引进一步包含的所述待修复函数的组内编号,在所述新函数表内查到所述待修复函数的访问地址,并将待修复函数的访问地址替换为新函数的访问地址。一种替换ROM中函数的装置,至少包括:确定单元,用于确定待修复函数的函数索引,所述函数索引至少用于指示待修复函数的组编号;第一处理单元,用于基于所述组编号在ROM中查找到所述待修复函数对应的函数表,所述函数表中记录有所述待修复函数归属的函数组中各个待修复函数的访问地址;第二处理单元,用于将所述函数表复制至指定存储位置,生成相应的新函数表,并在所述新函数表中,将所述待修复函数的访问地址更新为设置的新函数的访问地址,所述新函数用于替代所述待修复函数执行相应功能;第三处理单元,用于在RAM中获取对应所述组编号设置的指针,将所述指针指向所述新函数表。可选的,进一步包括:预处理单元,用于在预处理阶段,执行以下操作:确定将写入ROM的所有的函数;基于预设规则将ROM中指定的各个函数划分为若干组;分别对应每一个函数组,在ROM中设置相应的函数表;对应每一个函数表设置相应的组编号。可选的,所述预处理单元进一步用于:对应所述指定的各个函数分别设置相应的接口函数,其中,其他函数在调用一个函数时,通过所述一个函数对应的接口函数,对所述一个函数进行间接调用。基于预设规则将ROM中指定的各个函数划分为若干组时,所述预处理单元用于:将风险等级之间的差值低于第一设定本文档来自技高网
...

【技术保护点】
1.一种替换只读存储器ROM中函数的方法,其特征在于,包括:/n确定待修复函数的函数索引,所述函数索引至少用于指示待修复函数的组编号;/n基于所述组编号在ROM中查找到所述待修复函数对应的函数表,所述函数表中记录有所述待修复函数归属的函数组中各个待修复函数的访问地址;/n将所述函数表复制至指定存储位置,生成相应的新函数表,并在所述新函数表中,将所述待修复函数的访问地址更新为设置的新函数的访问地址,所述新函数用于替代所述待修复函数执行相应功能;/n在RAM中获取对应所述组编号设置的指针,将所述指针指向所述新函数表。/n

【技术特征摘要】
1.一种替换只读存储器ROM中函数的方法,其特征在于,包括:
确定待修复函数的函数索引,所述函数索引至少用于指示待修复函数的组编号;
基于所述组编号在ROM中查找到所述待修复函数对应的函数表,所述函数表中记录有所述待修复函数归属的函数组中各个待修复函数的访问地址;
将所述函数表复制至指定存储位置,生成相应的新函数表,并在所述新函数表中,将所述待修复函数的访问地址更新为设置的新函数的访问地址,所述新函数用于替代所述待修复函数执行相应功能;
在RAM中获取对应所述组编号设置的指针,将所述指针指向所述新函数表。


2.如权利要求1所述的方法,其特征在于,在预处理阶段,进一步包括:
确定将写入ROM的所有的函数;
基于预设规则将ROM中指定的各个函数划分为若干组;
分别对应每一个函数组,在ROM中设置相应的函数表;
对应每一个函数表设置相应的组编号。


3.如权利要求2所述的方法,其特征在于,进一步包括:
对应所述指定的各个函数分别设置相应的接口函数,其中,其他函数在调用一个函数时,通过所述一个函数对应的接口函数,对所述一个函数进行间接调用。


4.如权利要求2所述的方法,其特征在于,基于预设规则将ROM中指定的各个函数划分为若干组,包括:
将风险等级之间的差值低于第一设定门限值的函数划分为一组;或者,
将修复难度等级之间的差值低于第二设定门限值的函数划分为一组;或者,
将函数运行过程中的实时性需求的差值低于第三设定门限值的函数划分为一组。


5.如权利要求2所述的方法,其特征在于,进一步包括:
在RAM中设置RAM指针表,所述RAM指针表中记录的每一个指针分别指向所述每一个函数表;
对应每一个指针指向的函数表,设置相应指针的组编号。


6.如权利要求1-5任一项所述的方法,其特征在于,确定待修复函数的函数索引,包括:
根据指示,调用对应所述待修复函数设置的接口函数;
基于所述接口函数,确定所述待修复函数的函数索引。


7.如权利要求6所述的方法,其特征在于,在RAM中获取对应所述组编号设置的指针,包括:
基于所述接口函数,采用直接跳转方式或异常跳转方式,跳转至预设的分发函数;
通过所述分发函数,基于所述函数索引包含的组编号,在RAM中查找到相应的指针。


8.如...

【专利技术属性】
技术研发人员:周晓磊
申请(专利权)人:炬新珠海微电子有限公司
类型:发明
国别省市:广东;44

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

1