本发明专利技术公开了一种地址空洞屏蔽方法及装置,属于软件技术领域。所述方法包括:检测CPU是否进入调试异常状态;在所述CPU进入调试异常状态后,获取系统总线上每一个地址空洞的地址信息;基于所述地址信息,为所述每一个地址空洞设置数据断点。在CPU进入调试异常状态后,通过为每一个地址空洞设置数据断点的方式来屏蔽地址空洞,由于具有猜测执行功能的CPU不会对设置有数据断点的总线地址采取猜测执行措施,因此CPU的猜测执行行为不会落到地址空洞上,避免了由CPU的猜测执行行为引起的系统死机问题;此外,在CPU进入调试异常状态后已完成芯片的全部设计,因此系统总线上出现的地址空洞均可获知,所以可屏蔽全部地址空洞,进一步降低了系统死机的概率。
【技术实现步骤摘要】
本专利技术涉及软件
,特别涉及一种地址空洞屏蔽方法及装置。
技术介绍
对于电视机来讲,CPU(Central Processing Unit,中央处理单元)实质上是一块大规模集成的电视机处理芯片。目前电视机处理芯片在实际应用到整机项目中时,降低系统功耗和生产成本一直是大家关注的一个焦点。时下,通常采取下述两种措施来达到上述目的。第一种,由于不同整机机型在使用同一款电视机处理芯片进行设计时,可使用到的功能模块一般不同,因此将该机型用不到的一些功能模块的时钟关闭,以此来降低系统功耗。第二种,在满足系统需求的前提下,尽量减少DDR(Double Data Rate,双倍速率同步动态随机存储器)的空间大小,以此来降低生产成本。然而,无论采取上述哪一种措施均会引发地址空洞的问题。即,关闭掉时钟的功能模块对应的地址空间和剪裁掉那一部分DDR对应的地址空间由于不可进行数据读写,因此上述地址空间均会在系统总线上成为一个地址空洞。CPU在访问到地址空洞时,系统总线是无法对其进行数据响应的。而CPU访问系统总线是一个需要握手的操作,如果系统总线一直没有进行数据响应,那么CPU则一直处于等待响应状态,从而导致宏观上的CPU死机,引起严重的产品问题。为了避免这种问题的出现,如何屏蔽上述地址空洞,使得CPU在访问系统总线时对其进行规避,成为了一个亟待解决的问题。相关技术在进行地址空洞屏蔽时,通常采取下述方式实现。一方面,芯片设计人员在设计电视机处理芯片时,对已经确定的地址空洞在系统总线上进行屏蔽。比如,寄存地址空间和NORFlash(非易失闪存)地址空间都是常见的地址空洞,因此在系统总线上以加补丁的方式将上述已经确定的地址空洞进行屏蔽。另一方面,软件开发人员在编写软件时通过编写程序代码去控制CPU不要访问系统总线上的地址空洞。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:对于一些地址空洞有时在芯片设计阶段是预想不到的,因此在芯片设计阶段并不能预先屏蔽系统总线上的所有地址空洞,所以依然存在造成系统死机的隐患;此外,对于具有猜测执行功能的CPU,即可提前猜测并执行可能需要程序指令的CPU来说,由于猜测执行功能是芯片设计人员按照特定算法设计的硬件功能,其对软件开发人员来说是不可控的,因此当CPU的猜测执行路径恰好落在会引起系统死机的地址空洞范围内时,同样会造成系统死机。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种地址空洞屏蔽方法及装置。所述技术方案如下:第一方面,提供了一种地址空洞屏蔽方法,所述方法包括:检测CPU是否进入调试异常状态;在所述CPU进入调试异常状态后,获取系统总线上每一个地址空洞的地址信息;基于所述地址信息,为所述每一个地址空洞设置数据断点。在另一个实施例中,所述方法还包括:在所述CPU进入调试异常状态后,获取异常处理向量地址;访问所述异常处理向量地址指示的地址空间,所述地址空间存储了数据断点设置指令;执行所述数据断点设置指令,完成所述获取系统总线上每一个地址空洞的地址信息,基于所述地址信息为所述每一个地址空洞设置数据断点的操作。在另一个实施例中,所述基于所述地址信息,为所述每一个地址空洞设置数据断点,包括:对于每一个地址空洞,调用调试寄存器将所述地址空洞的起始地址写入断点地址寄存器,将所述地址空洞的地址掩码写入地址掩码寄存器;将所述起始地址和所述地址掩码进行或运算得到所述地址空洞对应的地址区间,完成在所述地址区间上设置数据断点的操作。在另一个实施例中,所述获取异常处理向量地址之前,所述方法还包括:在汇编文件中指定位置添加调试指令,所述指定汇编文件为所述CPU首个执行的文件;所述检测CPU是否进入调试异常状态,包括:在检测到所述CPU执行所述调试指令后,确定所述CPU进入所述调试异常状态。在另一个实施例中,所述方法还包括:在所述CPU进入调试异常状态后,对当前正在使用的至少一个寄存器执行寄存器现场保护处理;在为所述每一个地址空洞设置数据断点后,执行寄存器现场恢复处理。第二方面,提供了一种地址空洞屏蔽装置,所述装置包括:检测模块,用于检测CPU是否进入调试异常状态;第一获取模块,用于在所述CPU进入调试异常状态后,获取系统总线上每一个地址空洞的地址信息;执行模块,用于基于所述地址信息,为所述每一个地址空洞设置数据断点。在另一个实施例中,所述装置还包括:第二获取模块,用于在所述CPU进入调试异常状态后,获取异常处理向量地址;访问模块,用于访问所述异常处理向量地址指示的地址空间,所述地址空间存储了数据断点设置指令;所述执行模块,用于执行所述数据断点设置指令,完成所述获取系统总线上每一个地址空洞的地址信息,基于所述地址信息为所述每一个地址空洞设置数据断点的操作。在另一个实施例中,所述执行模块,用于对于每一个地址空洞,调用调试寄存器将所述地址空洞的起始地址写入断点地址寄存器,将所述地址空洞的地址掩码写入地址掩码寄存器;将所述起始地址和所述地址掩码进行或运算得到所述地址空洞对应的地址区间,完成在所述地址区间上设置数据断点的操作。在另一个实施例中,所述装置还包括:添加模块,用于在汇编文件中指定位置添加调试指令,所述指定汇编文件为所述CPU首个执行的文件;所述检测模块,用于在检测到所述CPU执行所述调试指令后,确定所述CPU进入所述调试异常状态。在另一个实施例中,所述执行模块,还用于在所述CPU进入调试异常状态后,对当前正在使用的至少一个寄存器执行寄存器现场保护处理;在为所述每一个地址空洞设置数据断点后,执行寄存器现场恢复处理。本专利技术实施例提供的技术方案带来的有益效果是:在CPU进入调试异常状态后,通过为系统总线上每一个地址空洞设置数据断点的方式来屏蔽地址空洞,由于具有猜测执行功能的CPU不会对设置有数据断点的总线地址采取猜测执行措施,因此CPU的猜测执行行为不会落到地址空洞上,从而避免了由CPU的猜测执行行为引起的系统死机问题;此外,由于在CPU进入调试异常状态后已完成了芯片的全部设计过程,因此系统总线上出现的地址空洞均可获知,所以可屏蔽系统总线上的全部地址空洞,进一步降低了系统死机的概率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种地址空洞屏蔽方法的流程图;图2是本专利技术实施例提供的一种地址空洞屏蔽方法的流程图;图3是本专利技术实施例提供的一种地址空洞屏蔽装置的结构示意图;图4是本专利技术实施例提供的一种智能设备400的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。在对本专利技术实施例进行详细的解释说明之前,先对本专利技术实施例的应用场景予以介绍。本专利技术实施例提供的方法应用于电视机。示例的,对于一个机型的电视机来说,在将电视机处理芯片上该机型用不到的功能模块的时钟关闭,或者将DDR的地址空间剪掉一部分,进而在系统总线上形成地址空洞后,为了防止具有猜测执行功能的CPU执行的猜测行为落到上述地址空洞上,本专利技术实施例本文档来自技高网...

【技术保护点】
一种地址空洞屏蔽方法,其特征在于,所述方法包括:检测中央处理单元CPU是否进入调试异常状态;在所述CPU进入调试异常状态后,获取系统总线上每一个地址空洞的地址信息;基于所述地址信息,为所述每一个地址空洞设置数据断点。
【技术特征摘要】
1.一种地址空洞屏蔽方法,其特征在于,所述方法包括:检测中央处理单元CPU是否进入调试异常状态;在所述CPU进入调试异常状态后,获取系统总线上每一个地址空洞的地址信息;基于所述地址信息,为所述每一个地址空洞设置数据断点。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述CPU进入调试异常状态后,获取异常处理向量地址;访问所述异常处理向量地址指示的地址空间,所述地址空间存储了数据断点设置指令;执行所述数据断点设置指令,完成所述获取系统总线上每一个地址空洞的地址信息,基于所述地址信息为所述每一个地址空洞设置数据断点的操作。3.根据权利要求1所述的方法,其特征在于,所述基于所述地址信息,为所述每一个地址空洞设置数据断点,包括:对于每一个地址空洞,调用调试寄存器将所述地址空洞的起始地址写入断点地址寄存器,将所述地址空洞的地址掩码写入地址掩码寄存器;将所述起始地址和所述地址掩码进行或运算得到所述地址空洞对应的地址区间,完成在所述地址区间上设置数据断点的操作。4.根据权利要求2所述的方法,其特征在于,所述获取异常处理向量地址之前,所述方法还包括:在汇编文件中指定位置添加调试指令,所述指定汇编文件为所述CPU首个执行的文件;所述检测中央处理单元CPU是否进入调试异常状态,包括:在检测到所述CPU执行所述调试指令后,确定所述CPU进入所述调试异常状态。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述CPU进入调试异常状态后,对当前正在使用的至少一个寄存器执行寄存器现场保护处理;在为所述每一个地址空洞设置数据断点后,执行寄存器现场恢复处理。6...
【专利技术属性】
技术研发人员:李洋,陈世雷,曾小光,
申请(专利权)人:青岛海信电器股份有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。