本发明专利技术公开了一种ROM代码修复方法、装置、设备及存储介质,该方法包括:将ROM代码划分为第一代码和第二代码,第二代码用于实现ROM主要驱动功能;将第二代码从ROM拷贝到RAM中;从有限编程次数可编程存储器中读取补丁信息;根据补丁信息修改RAM中的第二代码,获得新的第二代码;通过第一代码控制运行RAM中新的第二代码。由于本发明专利技术通过将RO M代码分为两部分,并将用于实现所述ROM中主要驱动功能的那一部分代码拷贝到RAM中执行,然后通过从有限编程次数可编程存储器中读取补丁信息修改从ROM拷贝到RAM中的代码,再控制运行RAM中的代码,相比于现有技术,解决了ROM代码中需要预埋代码补丁使能位的限制,实现通过有限编程次数可编程存储器中补丁信息直接修改代码指令。程存储器中补丁信息直接修改代码指令。程存储器中补丁信息直接修改代码指令。
【技术实现步骤摘要】
ROM代码修复方法、装置、设备及存储介质
[0001]本专利技术涉及计算机
,尤其涉及一种ROM代码修复方法、装置、设备及存储介质。
技术介绍
[0002]只读存储器(Read
‑
Only Memory,ROM)以非破坏性读出方式工作,只能读出信息,但是无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存取存储器(Random Access Memory,RAM),是与CPU直接交换数据的内部存储器,能快速方便地改写存储内容。ROM代码(code)是存储在中央处理器(central processing unit,CPU)片上ROM中的程序,用于实现CPU内核初始化、引导程序存储设备接口初始化、载入二级程序加载器(Secondary Program Loader,SPL)或文件下载加载器(File download loader,FDL)等功能。
[0003]由于ROM代码是存放在芯片上的ROM中,所以在芯片封测之后,理论上就难以再对其进行修改。但是,由于制作ROM时可能存在错漏,或者厂商为满足不断变化的市场需求而有意修改ROM代码等原因,所以需要方法对ROM代码进行修复,通常称为ROM代码补丁。然而现有的ROM代码修复方法是在ROM代码里面预埋代码补丁使能位,然后运行时读取有限编程次数可编程存储器中的信息,确定能否使用对应的补丁数据,这种方法受预埋代码补丁使能位的局限,修改ROM代码不够便捷。
[0004]亟需一种ROM代码修复方法,解决ROM代码中需要预埋代码补丁使能位的限制,实现通过有限编程次数可编程存储器中补丁信息直接修改代码指令。
技术实现思路
[0005]本专利技术的主要目的在于提供了一种ROM代码修复方法、装置、设备及存储介质,旨在解决现有技术中ROM代码中需要预埋代码补丁使能位的限制,修改ROM代码不够便捷的技术问题。
[0006]为实现上述目的,本专利技术提供了一种ROM代码修复方法,所述方法包括以下步骤:
[0007]将ROM代码划分为第一代码和第二代码,所述第二代码用于实现所述ROM中主要驱动功能;
[0008]将所述第二代码从所述ROM拷贝到RAM中;
[0009]从有限编程次数可编程存储器中读取补丁信息;
[0010]根据所述补丁信息修改所述RAM中的所述第二代码,获得新的第二代码;
[0011]通过所述第一代码控制运行所述RAM中所述新的第二代码。
[0012]可选地,所述第一代码至少具有将所述第二代码从所述ROM拷贝到RAM中的功能、从有限编程次数可编程存储器中读取补丁信息的功能和将CPU跳转至所述RAM中执行所述新的第二代码的功能。
[0013]可选地,所述将ROM代码划分为第一代码和第二代码的步骤之后,还包括:
[0014]运行ROM代码,并判断是否运行发生错误;
[0015]若运行发生错误,则获取错误信息;
[0016]根据所述错误信息,将补丁信息植入有限编程次数可编程存储器。
[0017]可选地,所述补丁信息包括补丁数据和补丁地址信息。
[0018]可选地,所述通过所述第一代码控制运行所述RAM中所述新的第二代码的步骤,具体包括:
[0019]当所述ROM代码运行至第二代码时,跳转至所述RAM中运行所述RAM中所述新的第二代码。
[0020]可选地,所述补丁数据为与所述错误信息对应的修改后的数据,所述补丁地址信息为所述错误信息对应的存储地址。
[0021]可选地,所述运行ROM代码,并判断是否运行发生错误的步骤之后,还包括:
[0022]若运行未发生错误,则控制所述ROM选择运行所述ROM代码。
[0023]此外,为实现上述目的,本专利技术还提出一种ROM代码修复装置,所述装置包括:
[0024]划分模块,用于将ROM代码划分为第一代码和第二代码,所述第二代码用于实现所述ROM中主要驱动功能;
[0025]拷贝模块,用于将所述第二代码从所述ROM拷贝到RAM中;
[0026]读取模块,用于从有限编程次数可编程存储器中读取补丁信息;
[0027]修改模块,用于根据所述补丁信息修改所述RAM中的所述第二代码,获得新的第二代码;
[0028]执行模块,用于通过所述第一代码控制运行所述RAM中所述新的第二代码。
[0029]此外,为实现上述目的,本专利技术还提出一种ROM代码修复设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的ROM代码修复程序,所述ROM代码修复程序配置为实现如上文所述的ROM代码修复方法的步骤。
[0030]此外,为实现上述目的,本专利技术还提出一种存储介质,所述存储介质上存储有ROM代码修复程序,所述ROM代码修复程序被处理器执行时实现如上文所述的ROM代码修复方法的步骤。
[0031]本专利技术通过将ROM代码划分为第一代码和第二代码,其中,第二代码用于实现所述ROM中主要驱动功能;然后将第二代码从ROM拷贝到RAM中;从有限编程次数可编程存储器中读取补丁信息;再根据补丁信息修改RAM中的所述第二代码,获得新的第二代码;最后通过第一代码控制运行RAM中新的第二代码。由于本专利技术是通过将ROM代码分为两部分,并将用于实现所述ROM中主要驱动功能的那一部分代码拷贝到RAM中执行,然后通过从有限编程次数可编程存储器中读取补丁信息修改从ROM拷贝到RAM中的代码,再控制运行RAM中的代码,相比于现有技术,本专利技术解决了ROM代码中需要预埋代码补丁使能位的限制,实现通过有限编程次数可编程存储器中补丁信息直接修改代码指令。
附图说明
[0032]图1是本专利技术实施例方案涉及的硬件运行环境的ROM代码修复设备的结构示意图;
[0033]图2为本专利技术ROM代码修复方法第一实施例的流程示意图;
[0034]图3为本专利技术ROM代码修复方法第二实施例的流程示意图;
[0035]图4为本专利技术ROM代码修复方法的工作场景示意图;
[0036]图5为本专利技术ROM代码修复装置第一实施例的结构框图。
[0037]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0038]应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0039]参照图1,图1是本专利技术实施例方案涉及的硬件运行环境的ROM代码修复设备的结构示意图;
[0040]如图1所示,该ROM代码修复设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Disp本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种ROM代码修复方法,其特征在于,所述方法包括以下步骤:将ROM代码划分为第一代码和第二代码,所述第二代码用于实现所述ROM中主要驱动功能;将所述第二代码从所述ROM拷贝到RAM中;从有限编程次数可编程存储器中读取补丁信息;根据所述补丁信息修改所述RAM中的所述第二代码,获得新的第二代码;通过所述第一代码控制运行所述RAM中所述新的第二代码。2.如权利要求1所述的方法,其特征在于,所述第一代码至少具有将所述第二代码从所述ROM拷贝到RAM中的功能、从有限编程次数可编程存储器中读取补丁信息的功能和将CPU跳转至所述RAM中执行所述新的第二代码的功能。3.如权利要求1所述的方法,其特征在于,所述将ROM代码划分为第一代码和第二代码的步骤之后,还包括:运行ROM代码,并判断是否运行发生错误;若运行发生错误,则获取错误信息;根据所述错误信息,将补丁信息植入有限编程次数可编程存储器。4.如权利要求2所述的方法,其特征在于,所述补丁信息包括补丁数据和补丁地址信息。5.如权利要求1所述的方法,其特征在于,所述通过所述第一代码控制运行所述RAM中所述新的第二代码的步骤,具体包括:当所述ROM代码运行至第二代码时,跳转至所述RAM中运行所述RAM中所述新的第二代码。6.如权利要求4所...
【专利技术属性】
技术研发人员:陈振宇,颜益,卢杨,
申请(专利权)人:杭州鸿钧微电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。