一种芯片启动代码修复方法和修复系统技术方案

技术编号:39720109 阅读:8 留言:0更新日期:2023-12-17 23:26
本申请提供了一种芯片启动代码修复方法和修复系统,当检测到芯片启动异常时,基于启动代码的异常位置,将启动代码和

【技术实现步骤摘要】
一种芯片启动代码修复方法和修复系统


[0001]本申请涉及芯片
,具体涉及一种芯片启动代码修复方法和修复系统


技术介绍

[0002]一般情况下,
SoC
芯片内部都集成了一块只读的
ROM
存储器(一般称之为
BootROM

BROM)
,用于存放芯片上电时默认运行的初始化代码,这段初始化代码用于处理固件升级以及从不同的存储设备(比如
Nandflash, eMMC, SDCARD
等)启动系统

需要注意的是,
BROM
中的初始化代码要在芯片投片前确定,且代码不可更改,或更改成本极大

在实际生产中,有不少芯片公司由于
BROM
代码设计存在缺陷,导致整个芯片报废

当前系统级芯片的设计越来越复杂,投一次片的费用也异常高昂,如果由于
BROM
代码设计缺陷导致芯片不可用,会给芯片公司带来极大的损失和浪费


技术实现思路

[0003]本申请提供了一种芯片启动代码修复方法和修复系统,具体技术方案如下:一种芯片启动代码修复方法,所述修复方法包括如下步骤:步骤
S1
,当芯片上电后运行启动代码,然后检测芯片是否启动异常,若否,则继续运行启动代码使芯片正常启动,若是,则进入步骤
S2
;步骤
S2
,基于启动代码的异常位置,将启动代码和
/<br/>或非易失性存储器中储存的修复代码复制到随机存取存储器中以对启动代码的异常部分进行修复

[0004]进一步地,所述步骤
S1
中,检测芯片是否启动异常的方法包括:在启动代码正常运行前,看门狗每隔预设时间间隔记录一次当前启动所耗费的时间,然后跟预设启动超时时间进行比较,如果当前启动所耗费的时间大于等于预设启动超时时间,则芯片启动异常,如果当前启动所耗费的时间小于预设启动超时时间,则芯片没有启动异常

[0005]进一步地,所述步骤
S2
中,非易失性存储器采用
EPROM
,所述
EPROM
外挂在芯片上,通过
I2C
跟芯片进行通信

[0006]进一步地,所述步骤
S2
中,基于启动代码的异常位置,将启动代码和
/
或非易失性存储器中储存的修复代码复制到随机存取存储器中以对启动代码的异常部分进行修复的方法包括:基于启动代码的异常位置,在非易失性存储器中储存的修复代码对应位置处作修复标记,当启动代码非全部异常时,将启动代码中的非异常部分以及非易失性存储器中作有修复标记的修复代码复制到随机存取存储器中以修复启动代码的异常部分

[0007]进一步地,所述步骤
S2
中,基于启动代码的异常位置,将启动代码和
/
或非易失性存储器中储存的修复代码复制到随机存取存储器中以对启动代码的异常部分进行修复的方法包括:基于启动代码的异常位置,在非易失性存储器中储存的修复代码对应位置处作修复标记,当启动代码全部异常时,将非易失性存储器中储存的修复代码全部复制到随机存取存储器中以修复启动代码

[0008]进一步地,当对启动代码的异常部分进行修复后,运行随机存取存储器中修复后的启动代码使芯片正常启动

[0009]一种芯片启动代码修复系统,所述修复系统用于实现所述芯片启动代码修复方法,所述修复系统包括:非易失性存储器,用于储存修复代码;芯片,所述芯片包括只读存储器

异常检测模块

代码修复模块和随机存取存储器;其中,所述只读存储器用于储存启动代码;所述异常检测模块用于检测芯片是否启动异常;所述代码修复模块用于在芯片启动异常时,基于启动代码的异常位置,将启动代码和
/
或修复代码复制到所述随机存取存储器中以对启动代码的异常部分进行修复

[0010]进一步地,非易失性存储器采用
EPROM
,所述
EPROM
外挂在芯片上,通过
I2C
跟芯片进行通信

[0011]进一步地,所述芯片还包括标记模块,所述标记模块用于在芯片启动异常时,基于启动代码的异常位置,在非易失性存储器中储存的修复代码对应位置处作修复标记

[0012]本申请所述的芯片启动代码修复方法,当检测到芯片启动异常时,基于启动代码的异常位置,将启动代码和
/
或非易失性存储器中储存的修复代码复制到随机存取存储器中以对启动代码的异常部分进行修复,所述方法简单易行且成本低,可以规避启动代码设计缺陷导致芯片不可用的问题,大大降低了投片风险

附图说明
[0013]图1为本申请一种实施例所述芯片启动代码修复方法的流程示意图

[0014]图2为本申请一种实施例所述芯片启动代码修复系统的示意图

实施方式
[0015]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构

技术之类的具体细节,以便透彻理解本申请实施例

然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请

在其它情况中,省略对众所周知的系统

装置

电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述

[0016]应当理解,当在本申请中使用时,术语“包括”指示所描述特征

整体

步骤

操作

元素和
/
或组件的存在,但并不排除一个或多个其它特征

整体

步骤

操作

元素

组件和
/
或其集合的存在或添加
。 还应当理解,在本申请中使用的术语“和
/
或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合

[0017]如在本申请中所使用的那样,术语“如果”可以依据上下文被解释为“当

时”或“一旦”或“响应于确定”或“响应于检测到”。
类似地,短语“如果确定”或“如果检测到
[
所描述条件或事件
]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到
[
所描述条件或事件
]”或“响应于检测到
[
所描述条件或事件
]”。
[0018]另外,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种芯片启动代码修复方法,其特征在于,所述修复方法包括如下步骤:步骤
S1
,当芯片上电后运行启动代码,然后检测芯片是否启动异常,若否,则继续运行启动代码使芯片正常启动,若是,则进入步骤
S2
;步骤
S2
,基于启动代码的异常位置,将启动代码和
/
或非易失性存储器中储存的修复代码复制到随机存取存储器中以对启动代码的异常部分进行修复
。2.
根据权利要求1所述的一种芯片启动代码修复方法,其特征在于,所述步骤
S1
中,检测芯片是否启动异常的方法包括:在启动代码正常运行前,看门狗每隔预设时间间隔记录一次当前启动所耗费的时间,然后跟预设启动超时时间进行比较,如果当前启动所耗费的时间大于等于预设启动超时时间,则芯片启动异常,如果当前启动所耗费的时间小于预设启动超时时间,则芯片没有启动异常
。3.
根据权利要求1所述的一种芯片启动代码修复方法,其特征在于,所述步骤
S2
中,非易失性存储器采用
EPROM
,所述
EPROM
外挂在芯片上,通过
I2C
跟芯片进行通信
。4.
根据权利要求1所述的一种芯片启动代码修复方法,其特征在于,所述步骤
S2
中,基于启动代码的异常位置,将启动代码和
/
或非易失性存储器中储存的修复代码复制到随机存取存储器中以对启动代码的异常部分进行修复的方法包括:基于启动代码的异常位置,在非易失性存储器中储存的修复代码对应位置处作修复标记,当启动代码非全部异常时,将启动代码中的非异常部分以及非易失性存储器中作有修复标记的修复代码复制到随机存取存储器中以修复启动代码的异常部分
。5.
根据权...

【专利技术属性】
技术研发人员:黄祖奔
申请(专利权)人:珠海一微半导体股份有限公司
类型:发明
国别省市:

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

1