控制芯片运行的方法、装置及芯片的制作方法
【专利摘要】本发明公开了一种控制芯片运行的方法、装置及芯片。其中,芯片包括存储器,存储器包括第一存储区和第二存储区,第一存储区用于存储第一程序代码,第二存储区用于存储第二程序代码,该方法包括:在芯片上电后,检测第一程序代码是否存在异常;在检测出第一程序代码不存在异常时,控制芯片执行第一程序代码;以及在检测出第一程序代码存在异常时,控制芯片执行第二程序代码。本发明解决了由于程序烧写或者升级等过程出现问题导致芯片无法工作的技术问题。
【专利说明】
控制巧片运行的方法、装置及巧片
技术领域
[0001] 本发明设及集成电路领域,具体而言,设及一种控制忍片运行的方法、装置及忍 片。
【背景技术】
[0002] 随着忍片集成度越来越高,为了提高忍片的性能和降低成本,越来越多的忍片集 成了片内可编程器件,例如,片内单片机(〇nJ:hip Micro Controller,简称0CM),大大提高 了忍片的灵活性和扩展性。通常情况下,片内可编程器件,例如,0CM,只有一个单独的程序 存储空间,W降低成本,如图1所示。但是运样会引入一个风险,一旦在程序烧写或者升级的 过程中出现问题,会导致忍片完全无法工作,严重的会致使系统无法运行。
[0003] 针对相关技术中在程序烧写或者升级等过程出现问题导致忍片无法工作的问题, 目前尚未提出有效的解决方案。
【发明内容】
[0004] 本发明实施例提供了一种控制忍片运行的方法、装置及忍片,W至少解决由于程 序烧写或者升级等过程出现问题导致忍片无法工作的技术问题。
[0005] 根据本发明实施例的一个方面,提供了一种控制忍片运行的方法,忍片包括存储 器,存储器包括第一存储区和第二存储区,第一存储区用于存储第一程序代码,第二存储区 用于存储第二程序代码,方法包括:在忍片上电后,检测第一程序代码是否存在异常;在检 测出第一程序代码不存在异常时,控制忍片执行第一程序代码;W及在检测出第一程序代 码存在异常时,控制忍片执行第二程序代码。
[0006] 进一步地,检测第一程序代码是否存在异常包括:在忍片上电后,获取第一程序代 码的代码信息;判断第一程序代码的代码信息是否满足预设条件;在判断出第一程序代码 的代码信息满足预设条件时,则确定第一程序代码不存在异常;W及在判断出第一程序代 码的代码信息不满足预设条件时,则确定第一程序代码存在异常。
[0007] 进一步地,代码信息包括代码标识,判断第一程序代码的代码信息是否满足预设 条件包括:判断代码标识是否与第一预设值一致;在判断出代码标识与第一预设值一致时, 则确定第一程序代码的代码信息满足预设条件;W及在判断出代码标识与第一预设值不一 致时,则确定第一程序代码的代码信息不满足预设条件。
[000引进一步地,代码信息包括第一程序代码的校验值,判断第一程序代码的代码信息 是否满足预设条件包括:判断第一程序代码的校验值是否与第一预设校验值一致;在判断 出第一程序代码的校验值与第一预设校验值一致时,则确定第一程序代码的代码信息满足 预设条件;W及在判断出第一程序代码的校验值与第一预设校验值不一致时,则确定第一 程序代码的代码信息不满足预设条件。
[0009]进一步地,判断第一程序代码的代码信息是否满足预设条件包括:判断第一程序 代码的代码标识是否与第二预设值一致;在判断出第一程序代码的代码标识与第二预设值 不一致时,则确定第一程序代码的代码信息不满足预设条件;在判断出第一程序代码的代 码标识与第二预设值一致时,则继续获取第一程序代码的校验值;判断第一程序代码的校 验值与第二预设校验值是否一致;在判断出第一程序代码的校验值与第二预设校验值一致 时,则确定第一程序代码的代码信息满足预设条件;W及在判断出第一程序代码的校验值 与第二预设校验值不一致时,则确定第一程序代码的代码信息不满足预设条件。
[0010] 进一步地,获取第一程序代码的校验值包括:获取第一程序代码的代码长度;W及 根据第一程序代码的代码长度计算第一程序代码的校验值。
[0011] 根据本发明实施例的另一方面,还提供了一种控制忍片运行的装置,忍片包括存 储器,存储器包括第一存储区和第二存储区,第一存储区用于存储第一程序代码,第二存储 区用于存储第二程序代码,装置包括:检测单元,用于在忍片上电后,检测第一程序代码是 否存在异常;第一控制单元,用于在检测出第一程序代码不存在异常时,控制忍片执行第一 程序代码;W及第二控制单元,用于在检测出第一程序代码存在异常时,控制忍片执行第二 程序代码。
[0012] 进一步地,检测单元包括:获取模块,用于在忍片上电后,获取第一程序代码的代 码信息;判断模块,用于判断第一程序代码的代码信息是否满足预设条件;W及确定模块, 用于在判断出第一程序代码的代码信息满足预设条件时,则确定第一程序代码不存在异 常,在判断出第一程序代码的代码信息不满足预设条件时,则确定第一程序代码存在异常。
[0013] 进一步地,代码信息包括代码标识,判断模块包括:第一判断子模块,用于判断代 码标识是否与第一预设值一致;W及第一确定子模块,用于在判断出代码标识与第一预设 值一致时,则确定第一程序代码的代码信息满足预设条件,在判断出代码标识与第一预设 值不一致时,则确定第一程序代码的代码信息不满足预设条件。
[0014] 进一步地,代码信息包括第一程序代码的校验值,判断模块包括:第二判断子模 块,用于判断第一程序代码的校验值是否与第一预设校验值一致;W及第二确定子模块,用 于在判断出第一程序代码的校验值与第一预设校验值一致时,则确定第一程序代码的代码 信息满足预设条件,在判断出第一程序代码的校验值与第一预设校验值不一致时,则确定 第一程序代码的代码信息不满足预设条件。
[0015] 进一步地,判断模块包括:第Ξ判断子模块,用于判断第一程序代码的代码标识是 否与第二预设值一致;第Ξ确定子模块,用于在判断出第一程序代码的代码标识与第二预 设值不一致时,则确定第一程序代码的代码信息不满足预设条件;获取子模块,用于在判断 出第一程序代码的代码标识与第二预设值一致时,则继续获取第一程序代码的校验值;第 四判断子模块,用于判断第一程序代码的校验值与第二预设校验值是否一致;W及第四确 定子模块,用于在判断出第一程序代码的校验值与第二预设校验值一致时,则确定第一程 序代码的代码信息满足预设条件,在判断出第一程序代码的校验值与第二预设校验值不一 致时,则确定第一程序代码的代码信息不满足预设条件。
[0016] 根据本发明实施例的另一方面,还提供了一种忍片,包括上述任一个控制忍片运 行的装置。
[0017] 在本发明实施例中,忍片包括存储器,存储器包括第一存储区和第二存储区,第一 存储区用于存储第一程序代码,第二存储区用于存储第二程序代码,采用在忍片上电后,检 测第一程序代码是否存在异常;在检测出第一程序代码不存在异常时,控制忍片执行第一 程序代码;w及在检测出第一程序代码存在异常时,控制忍片执行第二程序代码的方式,在 检测到第一程序代码的存在异常时控制忍片执行第二程序代码,从而可W避免在第一程序 代码烧写或升级出现异常时导致忍片无法工作的问题,从而实现了提高忍片运行安全性和 稳定性的技术效果,进而解决了由于程序烧写或者升级等过程出现问题导致忍片无法工作 的技术问题。
【附图说明】
[0018] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019] 图1是根据现有技术的一种集成片内单片机的忍片的示意图;
[0020] 图2是根据本发明实施例的控制忍片运行的方法的流程图;
[0021 ]图3是根据本发明实施例的邸PROM分区的示意图;
[0022] 图4是根据本发明实施例的一种可选地控制忍片运行的方法的流程图;W及
[0023] 图5是根据本发明实施例的控制忍片运行的装置的示意图。
【具体实施方式】
[0024] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人 员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0025] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解运样使用 的数据在适当情况下可W互换,W便运里描述的本发明的实施例能够W除了在运里图示或 描述的那些W外的顺序实施。此外,术语"包括"和"具有及他们的任何变形,意图在于覆 盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于 清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于运些过程、方法、产品 或设备固有的其它步骤或单元。
[0026] 根据本发明实施例,提供了一种控制忍片运行的方法实施例,需要说明的是,在附 图的流程图示出的步骤可W在诸如一组计算机可执行指令的计算机系统中执行,并且,虽 然在流程图中示出了逻辑顺序,但是在某些情况下,可不同于此处的顺序执行所示出 或描述的步骤。
[0027] 图2是根据本发明实施例的控制忍片运行的方法的流程图,本发明实施例的忍片 包括存储器,存储器包括第一存储区和第二存储区,第一存储区用于存储第一程序代码,第 二存储区用于存储第二程序代码,如图2所示,该方法包括如下步骤:
[0028] 步骤S102,在忍片上电后,检测第一程序代码是否存在异常。
[0029] 步骤S104,在检测出第一程序代码不存在异常时,控制忍片执行第一程序代码。
[0030] 步骤S106,在检测出第一程序代码存在异常时,控制忍片执行第二程序代码。
[0031] 本发明实施例的第一存储区可W是用户扩展区,用于存储实现忍片全部功能的程 序代码或是用户定制功能的程序代码,第一程序代码可w是实现忍片全部功能的程序代码 或是用户定制功能的程序代码;本发明实施例的第二存储区可W是安全区,用于存储实现 忍片基本功能的程序代码,例如,忍片生产时存储器中存储的初始版本的程序代码,第二程 序代码可W是实现忍片基本功能的程序代码。
[0032] 在本发明实施例中,在忍片使用过程中遇到新需求或需要功能扩展的时候,只需 要在线更新用户扩展区部分;在用户扩展区部分更新不成功,甚至烧录了不相关的程序时, 本发明实施例的忍片也可W运行处于安全区的程序代码,保证忍片基本功能的运行。
[0033] 在本发明实施例中,忍片包括存储器,存储器包括第一存储区和第二存储区,第一 存储区用于存储第一程序代码,第二存储区用于存储第二程序代码,通过在忍片上电后,检 测第一程序代码是否存在异常;在检测出第一程序代码不存在异常时,控制忍片执行第一 程序代码;W及在检测出第一程序代码存在异常时,控制忍片执行第二程序代码的方式,在 检测到第一程序代码的存在异常时控制忍片执行第二程序代码,从而可W避免在第一程序 代码烧写或升级出现异常时导致忍片无法工作的问题,从而实现了提高忍片运行安全性和 稳定性的技术效果,进而解决了由于程序烧写或者升级等过程出现问题导致忍片无法工作 的技术问题。
[0034] 可选地,检测第一程序代码是否存在异常包括:在忍片上电后,获取第一程序代码 的代码信息;判断第一程序代码的代码信息是否满足预设条件;在判断出第一程序代码的 代码信息满足预设条件时,则确定第一程序代码不存在异常;W及在判断出第一程序代码 的代码信息不满足预设条件时,则确定第一程序代码存在异常。
[0035] 本发明实施例的代码信息可W是程序代码的标识符、程序长度、校验码或是预设 位置的代码等中的一个或多个,本发明实施例的预设条件的设置对应于上述代码信息,例 如,取代码信息为程序代码的标识符,则预设条件为预设标识符或预设标识符列表等。
[0036] 可选地,代码信息包括代码标识,判断第一程序代码的代码信息是否满足预设条 件包括:判断代码标识是否与第一预设值一致;在判断出代码标识与第一预设值一致时,贝U 确定第一程序代码的代码信息满足预设条件;W及在判断出代码标识与第一预设值不一致 时,则确定第一程序代码的代码信息不满足预设条件。
[0037] 本发明实施例的代码标识用于标识本发明实施例的程序代码,不同的代码标识可 W对应于不同地程序代码,具体地,可W设置为在第一存储区的指定位置存储第一程序代 码的代码标识,例如,设置第一存储区的前两位存储第一程序代码的代码标识。
[0038] 本发明实施例在获取到第一程序代码的代码标识后,可W将获取到的代码标识与 第一预设值比较,其中,第一预设值可W是一个或多个预设标识,在获取到的代码标识与任 意一个预设标识相同时,则说明代码标识与第一预设值一致,此时,则确定第一程序代码的 代码信息满足预设条件,在获取到的代码标识与任意一个预设标识均不相同时,则说明代 码标识与第一预设值不一致,此时,则确定第一程序代码的代码信息不满足预设条件。
[0039] 可选地,代码信息包括第一程序代码的校验值,判断第一程序代码的代码信息是 否满足预设条件包括:判断第一程序代码的校验值是否与第一预设校验值一致;在判断出 第一程序代码的校验值与第一预设校验值一致时,则确定第一程序代码的代码信息满足预 设条件;W及在判断出第一程序代码的校验值与第一预设校验值不一致时,则确定第一程 序代码的代码信息不满足预设条件。
[0040] 本发明实施例的第一程序代码的校验值可W是根据第一程序代码的长度计算得 到的校验码,或是设置在第一程序代码中指定位置的验证码等,本发明实施例W第一程序 代码的校验值为根据第一程序代码的长度计算得到的校验码为例进行说明。
[0041] 具体地,可W预先设置在第一存储区的某个指定位置存储第一程序代码的长度, 例如,第一存储区的第Ξ位和第四位用于存储第一程序代码的长度,在获取到第一程序代 码的长度后,按照预设运算规则计算第一程序代码的校验值,例如,将第一程序代码的长度 的各个数据位相加得到的结果作为第一程序代码的校验值,并将该校验值与第一预设校验 值比较,其中,第一预设校验值可W预先存储于第一存储区,在第一程序代码的校验值与第 一预设校验值相同时,则说明第一程序代码的代码信息满足预设条件,在第一程序代码的 校验值与第一预设校验值不相同时,则说明第一程序代码的代码信息不满足预设条件。
[0042] 优选地,为了提高代程序代码异常检测结果的准确性,判断第一程序代码的代码 信息是否满足预设条件包括:判断第一程序代码的代码标识是否与第二预设值一致;在判 断出第一程序代码的代码标识与第二预设值不一致时,则确定第一程序代码的代码信息不 满足预设条件;在判断出第一程序代码的代码标识与第二预设值一致时,则继续获取第一 程序代码的校验值;判断第一程序代码的校验值与第二预设校验值是否一致;在判断出第 一程序代码的校验值与第二预设校验值一致时,则确定第一程序代码的代码信息满足预设 条件;W及在判断出第一程序代码的校验值与第二预设校验值不一致时,则确定第一程序 代码的代码信息不满足预设条件。
[0043] 具体地,本发明实施例在初次判断出第一程序代码的代码标识与第二预设值相同 之后,继续获取第一程序代码的校验值进行再次判断,只有在判断出第一程序代码的校验 值与第二预设校验值一致时,才确定第一程序代码的代码信息满足预设条件,本发明实施 例通过综合第一程序代码的代码标识和校验值来检测第一代码程序是否存在异常,从而可 W提高检测结果的准确性。
[0044] 需要说明的是,本发明实施例可W综合多种代码信息来检测第一代码程序是否异 常,并不限于上述两种,例如,综合Ξ种代码信息执行Ξ次判断来检测代码程序是否异常; 执行多次判断的顺序也不限于上述实施例中的执行顺序,例如,本发明实施例也可W是先 判断第一程序代码的校验值是否与第二预设校验值一致,在判断出第一程序代码的校验值 与第二预设校验值一致时,再进一步判断第一程序代码的代码标识与第二预设值是否一 致。
[0045] 可选地,获取第一程序代码的校验值包括:获取第一程序代码的代码长度;W及根 据第一程序代码的代码长度计算第一程序代码的校验值。
[0046] 具体地,可W预先设置在第一存储区的某个指定位置存储第一程序代码的长度, 例如,第一存储区的第Ξ位和第四位用于存储第一程序代码的长度,在获取到第一程序代 码的长度后,按照预设运算规则计算第一程序代码的校验值,例如,将第一程序代码的长度 的各个数据位相加得到的结果作为第一程序代码的校验值。需要说明的是,预设运算规则 并不限于上述运算规则,例如,也可W是将第一程序代码的校验值进行哈希运算。
[0047] W下结合图3和图4对本发明实施例进行详细说明。
[0048] 如图3所示,将容量为2K的片内单片机内部EEPR0M划分为两个存储区,缺省代码区 (即安全区)和用户代码区(即用户扩展区),其中,安全区(Safe Code)地址区间为:0x000_ 0xl7F;用户扩展区化ser Code)地址区间:0xl80_0巧FF。在每个区的前5位做如下定义,参 见表1和表2:
[0049]表 1
[0054]具体地,与图3所示的存储器结构划分相对应,如图4所示,本发明实施例的控制忍 片运行的方法包括如下步骤:
[0化日]步骤S202,忍片上电。
[0056]步骤 S204,加载邸 PROM。
[0057] 具体地,本发明实施例中,在忍片上电后,片内可编程逻辑器件,例如片内单片机, 可W自动去加载存储器(例如,上述邸PROM)中的程序代码。
[0058] 步骤S206,获取用户代码区中存储的代码标识。
[0化9] 可选地,如图3所示,从邸PR0M[0xl80巧日邸PR0M[0xl81]中读取代码标识。
[0060] 步骤S208,代码标识是否符合预期值。
[0061] 判断读取到的代码标识是否符合预期值(例如,上述第一预设值或上述第二预设 值),如果判断出读取到的代码标识符合预期值,执行步骤S210,如果判断出读取到的代码 标识不符合预期值,执行步骤S220。
[0062] 步骤S210,获取用户代码区中存储的代码长度。
[0063] 可选地,如图3所示,从邸PR0M[0xl82巧日邸PR0M[0xl83]中读取代码长度。
[0064] 步骤S212,计算校验值CRC。
[0065] 可选地,可W是将读取到的代码长度各个数据位相加得到校验值CRC。
[0066] 步骤S214,比较计算得到的CRC和预先存储的校验值。
[0067] 可选地,如图3所示,从邸PR0M[0xl84]中读取预先存储的校验值,并将计算得到的 CRC和预先存储的校验值进行比较。
[0068] 步骤S216,0CM代码的CRC是否有效。
[0069] 本发明实施例的OCM代码即上述用户扩展区的程序代码,具体地,可W是在判断出 计算得到的CRC和预先存储的校验值相同时,则确定0CM代码的CRC有效,执行步骤S218,在 判断出计算得到的CRC和预先存储的校验值不相同时,则确定0CM代码的CRC无效,执行步骤 S220〇
[0070] 步骤S218,执行用户定制代码。
[0071] 本发明实施例的用户定制代码即上述第一程序代码。具体地,执行用户定制代码 包括如下步骤:
[0072] 步骤 S2181,0CM 初始化。
[0073] 步骤S2182,配置完成。
[0074] 步骤S2183,用户定制功能。
[0075] 步骤 S2184,0CM 循环。
[0076] 步骤S220,执行安全模式代码。
[0077] 本发明实施例的安全模式代码可W是0CM通用代码(0CM Generic code),安全模 式代码即上述第二程序代码。具体地,执行安全模式代码包括如下步骤:
[007引步骤S2201,0CM初始化。
[00巧]步骤S2202,配置完成。
[0080] 步骤 S2203,0CM 循环。
[0081] 通过上述步骤,可W保证忍片在只有一个程序存储空间的情况下,能够安全稳定 的运行,避免意外的错误导致系统的异常,避免在用户定制程序代码的烧写或升级出现异 常时导致忍片无法工作的问题,从而实现了提高忍片运行安全性和稳定性的技术效果,进 而解决了由于程序烧写或者升级等过程出现问题导致忍片无法工作的技术问题。
[0082] 根据本发明实施例的另一方面,还提供了一种控制忍片运行的装置,本发明实施 例的忍片包括存储器,存储器包括第一存储区和第二存储区,第一存储区用于存储第一程 序代码,第二存储区用于存储第二程序代码,图5是根据本发明实施例的控制忍片运行的装 置的示意图,如图5所示,该装置包括:
[0083] 检测单元50,用于在忍片上电后,检测第一程序代码是否存在异常。
[0084] 第一控制单元52,用于在检测出第一程序代码不存在异常时,控制忍片执行第一 程序代码。
[0085] 第二控制单元54,用于在检测出第一程序代码存在异常时,控制忍片执行第二程 序代码。
[0086] 可选地,检测单元50包括:获取模块,用于在忍片上电后,获取第一程序代码的代 码信息;判断模块,用于判断第一程序代码的代码信息是否满足预设条件;W及确定模块, 用于在判断出第一程序代码的代码信息满足预设条件时,则确定第一程序代码不存在异 常,在判断出第一程序代码的代码信息不满足预设条件时,则确定第一程序代码存在异常。
[0087] 可选地,代码信息包括代码标识,判断模块包括:第一判断子模块,用于判断代码 标识是否与第一预设值一致;W及第一确定子模块,用于在判断出代码标识与第一预设值 一致时,则确定第一程序代码的代码信息满足预设条件,在判断出代码标识与第一预设值 不一致时,则确定第一程序代码的代码信息不满足预设条件。
[0088] 可选地,代码信息包括第一程序代码的校验值,判断模块包括:第二判断子模块, 用于判断第一程序代码的校验值是否与第一预设校验值一致;w及第二确定子模块,用于 在判断出第一程序代码的校验值与第一预设校验值一致时,则确定第一程序代码的代码信 息满足预设条件,在判断出第一程序代码的校验值与第一预设校验值不一致时,则确定第 一程序代码的代码信息不满足预设条件。
[0089] 可选地,判断模块包括:第Ξ判断子模块,用于判断第一程序代码的代码标识是否 与第二预设值一致;第Ξ确定子模块,用于在判断出第一程序代码的代码标识与第二预设 值不一致时,则确定第一程序代码的代码信息不满足预设条件;获取子模块,用于在判断出 第一程序代码的代码标识与第二预设值一致时,则继续获取第一程序代码的校验值;第四 判断子模块,用于判断第一程序代码的校验值与第二预设校验值是否一致;W及第四确定 子模块,用于在判断出第一程序代码的校验值与第二预设校验值一致时,则确定第一程序 代码的代码信息满足预设条件,在判断出第一程序代码的校验值与第二预设校验值不一致 时,则确定第一程序代码的代码信息不满足预设条件。
[0090] 在本发明实施例中,忍片包括存储器,存储器包括第一存储区和第二存储区,第一 存储区用于存储第一程序代码,第二存储区用于存储第二程序代码,采用包括如下结构的 控制忍片运行的装置:检测单元50,用于在忍片上电后,检测第一程序代码是否存在异常; 第一控制单元52,用于在检测出第一程序代码不存在异常时,控制忍片执行第一程序代码; W及第二控制单元54,用于在检测出第一程序代码存在异常时,控制忍片执行第二程序代 码,在检测到第一程序代码的存在异常时控制忍片执行第二程序代码,从而可W避免在第 一程序代码烧写或升级出现异常时导致忍片无法工作的问题,从而实现了提高忍片运行安 全性和稳定性的技术效果,进而解决了由于程序烧写或者升级等过程出现问题导致忍片无 法工作的技术问题。
[0091] 根据本发明实施例的另一方面,还提供了一种忍片,包括上述任一个控制忍片运 行的装置。
[0092] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0093] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有 详述的部分,可W参见其他实施例的相关描述。
[0094] 在本申请所提供的几个实施例中,应该理解到,所掲露的技术内容,可通过其它的 方式实现。其中,W上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可W为 一种逻辑功能划分,实际实现时可W有另外的划分方式,例如多个单元或组件可W结合或 者可W集成到另一个系统,或一些特征可W忽略,或不执行。另一点,所显示或讨论的相互 之间的禪合或直接禪合或通信连接可W是通过一些接口,单元或模块的间接禪合或通信连 接,可W是电性或其它的形式。
[00M]所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显 示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到多个 单元上。可W根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0096] 另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。上述集成的单 元既可W采用硬件的形式实现,也可W采用软件功能单元的形式实现。
[0097] 所述集成的单元如果W软件功能单元的形式实现并作为独立的产品销售或使用 时,可w存储在一个计算机可读取存储介质中。基于运样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用W使得一台计算机 设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或 部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memo巧)、随机存取存 储器(RAM,Random Access Memo巧)、移动硬盘、磁碟或者光盘等各种可W存储程序代码的 介质。
[0098] W上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,运些改进和润饰也应 视为本发明的保护范围。
【主权项】
1. 一种控制芯片运行的方法,其特征在于,所述芯片包括存储器,所述存储器包括第一 存储区和第二存储区,所述第一存储区用于存储第一程序代码,所述第二存储区用于存储 第二程序代码,所述方法包括: 在所述芯片上电后,检测所述第一程序代码是否存在异常; 在检测出所述第一程序代码不存在异常时,控制所述芯片执行所述第一程序代码;以 及 在检测出所述第一程序代码存在异常时,控制所述芯片执行所述第二程序代码。2. 根据权利要求1所述的方法,其特征在于,检测所述第一程序代码是否存在异常包 括: 在所述芯片上电后,获取所述第一程序代码的代码信息; 判断所述第一程序代码的代码信息是否满足预设条件; 在判断出所述第一程序代码的代码信息满足所述预设条件时,则确定所述第一程序代 码不存在异常;以及 在判断出所述第一程序代码的代码信息不满足所述预设条件时,则确定所述第一程序 代码存在异常。3. 根据权利要求2所述的方法,其特征在于,所述代码信息包括代码标识,判断所述第 一程序代码的代码信息是否满足预设条件包括: 判断所述代码标识是否与第一预设值一致; 在判断出所述代码标识与所述第一预设值一致时,则确定所述第一程序代码的代码信 息满足所述预设条件;以及 在判断出所述代码标识与所述第一预设值不一致时,则确定所述第一程序代码的代码 信息不满足所述预设条件。4. 根据权利要求2所述的方法,其特征在于,所述代码信息包括所述第一程序代码的校 验值,判断所述第一程序代码的代码信息是否满足预设条件包括: 判断所述第一程序代码的校验值是否与第一预设校验值一致; 在判断出所述第一程序代码的校验值与所述第一预设校验值一致时,则确定所述第一 程序代码的代码信息满足所述预设条件;以及 在判断出所述第一程序代码的校验值与所述第一预设校验值不一致时,则确定所述第 一程序代码的代码信息不满足所述预设条件。5. 根据权利要求2所述的方法,其特征在于,判断所述第一程序代码的代码信息是否满 足预设条件包括: 判断所述第一程序代码的代码标识是否与第二预设值一致; 在判断出所述第一程序代码的代码标识与所述第二预设值不一致时,则确定所述第一 程序代码的代码信息不满足所述预设条件; 在判断出所述第一程序代码的代码标识与所述第二预设值一致时,则继续获取所述第 一程序代码的校验值; 判断所述第一程序代码的校验值与第二预设校验值是否一致; 在判断出所述第一程序代码的校验值与所述第二预设校验值一致时,则确定所述第一 程序代码的代码信息满足所述预设条件;以及 在判断出所述第一程序代码的校验值与所述第二预设校验值不一致时,则确定所述第 一程序代码的代码信息不满足所述预设条件。6. 根据权利要求5所述的方法,其特征在于,获取所述第一程序代码的校验值包括: 获取所述第一程序代码的代码长度;以及 根据所述第一程序代码的代码长度计算所述第一程序代码的校验值。7. -种控制芯片运行的装置,其特征在于,所述芯片包括存储器,所述存储器包括第一 存储区和第二存储区,所述第一存储区用于存储第一程序代码,所述第二存储区用于存储 第二程序代码,所述装置包括: 检测单元,用于在所述芯片上电后,检测所述第一程序代码是否存在异常; 第一控制单元,用于在检测出所述第一程序代码不存在异常时,控制所述芯片执行所 述第一程序代码;以及 第二控制单元,用于在检测出所述第一程序代码存在异常时,控制所述芯片执行所述 第二程序代码。8. 根据权利要求7所述的装置,其特征在于,所述检测单元包括: 获取模块,用于在所述芯片上电后,获取所述第一程序代码的代码信息; 判断模块,用于判断所述第一程序代码的代码信息是否满足预设条件;以及 确定模块,用于在判断出所述第一程序代码的代码信息满足所述预设条件时,则确定 所述第一程序代码不存在异常,在判断出所述第一程序代码的代码信息不满足所述预设条 件时,则确定所述第一程序代码存在异常。9. 根据权利要求8所述的装置,其特征在于,所述代码信息包括代码标识,所述判断模 块包括: 第一判断子模块,用于判断所述代码标识是否与第一预设值一致;以及 第一确定子模块,用于在判断出所述代码标识与所述第一预设值一致时,则确定所述 第一程序代码的代码信息满足所述预设条件,在判断出所述代码标识与所述第一预设值不 一致时,则确定所述第一程序代码的代码信息不满足所述预设条件。10. 根据权利要求8所述的装置,其特征在于,所述代码信息包括所述第一程序代码的 校验值,所述判断模块包括: 第二判断子模块,用于判断所述第一程序代码的校验值是否与第一预设校验值一致; 以及 第二确定子模块,用于在判断出所述第一程序代码的校验值与所述第一预设校验值一 致时,则确定所述第一程序代码的代码信息满足所述预设条件,在判断出所述第一程序代 码的校验值与所述第一预设校验值不一致时,则确定所述第一程序代码的代码信息不满足 所述预设条件。11. 根据权利要求8所述的装置,其特征在于,所述判断模块包括: 第三判断子模块,用于判断所述第一程序代码的代码标识是否与第二预设值一致; 第三确定子模块,用于在判断出所述第一程序代码的代码标识与所述第二预设值不一 致时,则确定所述第一程序代码的代码信息不满足所述预设条件; 获取子模块,用于在判断出所述第一程序代码的代码标识与所述第二预设值一致时, 则继续获取所述第一程序代码的校验值; 第四判断子模块,用于判断所述第一程序代码的校验值与第二预设校验值是否一致; 以及 第四确定子模块,用于在判断出所述第一程序代码的校验值与所述第二预设校验值一 致时,则确定所述第一程序代码的代码信息满足所述预设条件,在判断出所述第一程序代 码的校验值与所述第二预设校验值不一致时,则确定所述第一程序代码的代码信息不满足 所述预设条件。12. -种芯片,其特征在于,包括权利要求7至11中任一项所述的控制芯片运行的装置。
【文档编号】G06F9/445GK105824717SQ201610151508
【公开日】2016年8月3日
【申请日】2016年3月16日
【发明人】郭春成, 焦成祥
【申请人】硅谷数模半导体(北京)有限公司, 硅谷数模国际有限公司