一种多CPU架构下的CPU运行状态调试方法和系统与流程

文档序号:12463958阅读:193来源:国知局
一种多CPU架构下的CPU运行状态调试方法和系统与流程

本发明涉及集成电路技术领域,更为具体地说,涉及一种多CPU架构下的CPU运行状态调试方法和系统。



背景技术:

SOC芯片(System-on-a-Chip,系统级芯片)是信息系统核心的芯片集成,能够将系统关键部件集成在一块芯片上。通常情况下SOC芯片包含有多个CPU(Central Processing Unit,中央处理器),其架构模式为多CPU架构。

随着信息技术的发展,SOC芯片的任务越来越复杂、运算速度越来越快且响应时间越来越短,导致SOC芯片的集成度越来越高。SOC芯片集成度的提高会导致芯片的面积越来越大,管脚数目越来越多且成本越来越高。为了解决上述问题,现有的SOC芯片通常会在集成的部分CPU中裁剪掉部分用于调试运行状态的调试接口,以缩减管脚数目、减小芯片面积和降低研发成本。

由于SOC芯片的集成度高且应用等级高,SOC芯片中的CPU一旦出现故障,将会对所应用的系统带来巨大的损失,因此针对SOC芯片中CPU运行状态的调试是必需的。然而SOC芯片中部分CPU中已裁剪掉部分用于调试运行状态的调试接口,导致SOC芯片中部分CPU难以被正常调试,而CPU的运行状态一旦出现问题,将会严重损害SOC芯片的功能,甚至会给所应用的系统带来巨大损失。



技术实现要素:

本发明的目的是提供一种多CPU架构下的CPU运行状态调试的技术方案,以解决背景技术中所介绍的现有技术中SOC芯片中部分被裁剪掉调试接口的CPU难以被正常调试的问题。

为了解决上述技术问题,本发明提供如下技术方案:

根据本发明的第一方面,提供了一种多CPU架构下的CPU运行状态调试方法,所述多CPU架构包括第一CPU、第二CPU和共享存储器,其中,所述第一CPU存在调试接口,所述第二CPU无调试接口;所述CPU运行状态调试方法包括:

通过第一CPU的调试接口启动所述第一CPU,通过所述第一CPU设置所述共享存储器内的调试结果共享地址;

通过所述调试接口控制第一CPU向所述共享存储器的第二CPU跳转指令存放地址中写入第二CPU跳转指令,其中,所述第二CPU跳转指令用于控制所述第二CPU跳转至所述共享存储器中的调试指令存放地址;

通过所述调试接口控制第一CPU向所述调试指令存放地址中写入运行调试指令,其中,所述运行调试指令用于调试所述第二CPU的运行状态;

控制第二CPU根据所述第二CPU跳转指令,从所述调试指令存放地址中读取所述运行调试指令,根据所述运行调试指令调试所述第二CPU的运行状态,将产生的运行状态调试结果写入所述调试结果共享地址中;

通过所述调试接口控制第一CPU从所述调试结果共享地址中读取所述运行状态调试结果。

优选地,所述通过所述调试接口控制第一CPU从所述调试结果共享地址中读取所述运行状态调试结果,包括:

控制第二CPU向共享存储器内通信标识存放地址中写入第一通信标识,所述第一通信标识包括调试结果生成确认信息以及调试结果共享地址和存放长度;

通过所述调试接口控制第一CPU从所述通信标识存放地址中读取所述第一通信标识;

根据所述第一通信标识中的调试结果共享地址和存放长度,通过所述调试接口控制所述第一CPU读取所述运行状态调试结果;

通过所述调试接口控制第一CPU向共享存储器的通信标识存放地址中写入第二通信标识,所述第二通信标识用于确认运行状态调试结果读取完毕;

根据所述第二通信标识,控制所述共享存储器释放所述调试结果共享地址中的运行状态调试结果。

优选地,所述CPU运行状态调试方法,还包括:

通过所述调试接口向所述第一CPU发送脚本触发指令,其中,所述脚本触发指令用于从所述第一CPU中导出包含有所述运行状态调试结果的数据文件;

显示所述包含有运行状态调试结果的数据文件。

优选地,在通过所述调试接口控制第一CPU向所述调试指令存放地址中写入运行调试指令之前,所述方法还包括:

控制第二CPU从所述第二CPU跳转指令存放地址中读取所述第二CPU跳转指令;

控制所述第二CPU向所述共享存储器中写入跳转指令读取确认信号,其中,所述跳转指令读取确认信号包括所述第二CPU已读取所述第二CPU跳转指令的确认信息;

控制所述第一CPU从所述共享存储器中读取所述跳转指令读取确认信号。

优选地,所述控制第二CPU根据所述第二CPU跳转指令,从所述调试指令存放地址中读取所述运行调试指令,包括:

控制所述第一CPU向共享存储器内的通信标识存放地址中写入第三通信标识,所述第三通信标识用于通知所述调试指令存放地址中已写入运行调试指令;

控制所述第二CPU从所述通信标识存放地址中读取所述第三通信标识后,根据所述第二CPU跳转指令从所述调试指令存放地址中读取所述运行调试指令。

根据本发明的第二方面,还提供了一种多CPU架构下的CPU运行状态调试系统,所述多CPU架构包括第一CPU、第二CPU和共享存储器,其中,所述第一CPU存在调试接口,所述第二CPU无调试接口;所述CPU运行状态调试系统包括:

第一启动模块,用于通过所述第一CPU的调试接口启动所述第一CPU,通过所述第一CPU设置所述共享存储器内的调试结果共享地址;

第一写入模块,用于通过所述调试接口控制第一CPU向共享存储器的第二CPU跳转指令存放地址中写入第二CPU跳转指令,其中,所述第二CPU跳转指令用于控制所述第二CPU跳转至所述共享存储器中的调试指令存放地址;

第二写入模块,用于通过所述调试接口控制第一CPU向共享存储器的调试指令存放地址中写入运行调试指令,其中,所述运行调试指令用于调试所述第二CPU的运行状态;

第一读取模块,用于控制第二CPU根据所述第二CPU跳转指令,从所述调试指令存放地址中读取所述运行调试指令;

调试控制模块,用于控制所述第二CPU根据所述运行调试指令调试所述第二CPU的运行状态;

第三写入模块,用于控制所述第二CPU将产生的运行状态调试结果写入所述共享存储器的调试结果共享地址中;

第二读取模块,用于通过所述调试接口控制第一CPU从所述调试结果共享地址中读取所述运行状态调试结果。

优选地,所述第二读取模块,包括:

第一写入子模块,用于控制第二CPU向共享存储器内的通信标识存放地址中写入第一通信标识,所述第一通信标识包括调试结果生成确认信息以及调试结果共享地址和存放长度;

第一读取子模块,用于通过所述调试接口控制第一CPU从所述通信标识存放地址中读取所述第一通信标识;

第二读取子模块,用于根据所述第一通信标识中的调试结果共享地址和存放长度,通过所述调试接口控制所述第一CPU读取所述运行状态调试结果;

第二写入子模块,用于通过所述调试接口控制第一CPU向共享存储器的通信标识存放地址中写入第二通信标识,所述第二通信标识用于确认运行状态调试结果读取完毕;

释放子模块,用于根据所述第二通信标识,控制所述共享存储器释放所述调试结果共享地址中的运行状态调试结果。

优选地,所述CPU运行状态调试系统,还包括:

指令发送模块,用于通过所述调试接口向所述第一CPU发送脚本触发指令,其中,所述脚本触发指令用于从所述第一CPU中导出包含有所述运行状态调试结果的数据文件;

显示模块,用于显示所述包含有运行状态调试结果的数据文件。

优选地,所述CPU运行状态调试系统,还包括:

第三读取模块,用于控制第二CPU从所述第二CPU跳转指令存放地址中读取所述第二CPU跳转指令;

第四写入模块,用于控制所述第二CPU向所述共享存储器写入跳转指令读取确认信号,其中,所述跳转指令读取确认信号包括所述第二CPU已读取所述第二CPU跳转指令的确认信息;

第四读取模块,用于控制所述第一CPU从所述共享存储器中读取所述跳转指令读取确认信号。

优选地,所述共享存储器为同步动态随机存取存储器。

优选地,所述第一读取模块,包括:

第三写入子模块,用于控制所述第一CPU向共享存储器内的通信标识存放地址中写入第三通信标识,所述第三通信标识用于通知所述调试指令存放地址中已写入运行调试指令;

第三读取子模块,用于控制所述第二CPU从所述通信标识存放地址中读取所述第三通信标识后,根据所述第二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是本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试方法的流程图;

图3是图2所示实施例示出的一种运行状态调试结果的读取方法的流程图;

图4是本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试方法的流程图;

图5是图2所示实施例示出的一种第二CPU启动确认方法的流程图;

图6是图2所示实施例示出的一种运行调试指令读取方法的流程图;

图7是本发明一示例性实施例示出的一种运行状态调试结果的读取方法的流程图;

图8是本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试系统的结构图;

图9是图8所示实施例示出的一种第二读取模块的结构图;

图10是本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试系统的结构图;

图11是本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试系统的结构图。

具体实施方式

本发明实施例提供的多CPU架构下的CPU运行状态调试方案,解决了背景技术中所介绍的多CPU架构下SOC芯片中部分被裁掉调试接口的CPU难以被正常调试的问题。

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中的技术方案作进一步详细的说明。

请参考附图1,图1为本发明一示例性实施例示出的一种应用场景示意图。如图1所示,该应用场景包括上位机2、多CPU架构下的SOC芯片1以及共享存储器3,该SOC芯片1包括第一CPU11和第二CPU12;其中,第一CPU11存在调试接口,而第二CPU无调试接口。

本发明下述实施例提供的CPU运行状态调试方法,通过SOC芯片1的第一CPU11的调试接口能够获取第二CPU12的运行状态调试结果,然后上位机2向第一CPU11发送读取信号,通过第一CPU11的调试接口读取将该运行状态调试结果。由于第一CPU11存在调试接口,因此上位机1可通过相应地调试工具以查看该调试接口,其中,调试工具包括与能够为SOC芯片连接的调试转接设备,负责上位机2与SOC芯片1之间的连接,如通过通用数据线SUB和SOC芯片的DEBUG端口之间进行连接;还负责通用数据线USB和DEBUG端口之间的数据传输和转换。并通过该调试接口将相应的调试指令输入至第一CPU11,并控制第一CPU11向共享存储器中写入该调试指令;由于共享存储器3中的信息第一CPU11和第二CPU12均可共享,因此,第二CPU12能够接收到该调试指令,并根据该调试指令产生相应的运行状态调试结果,通过第二CPU12将该运行状态调试结果发送至共享存储器3中,第一CPU11能够从共享存储器3中获取该运行状态调试结果,并通过调试接口发送至上位机,从而达到调试第二CPU12的目的。具体请参见本发明下述各实施例的内容,其中下述实施例的CPU运行状态调试方法,可运行于所述上位机内。

请参考附图2,图2是本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试方法的流程示意图。如图2所示,CPU运行状态调试方法包括:

S110:通过第一CPU的调试接口启动第一CPU,通过所述第一CPU设置所述共享存储器内的调试结果共享地址。

调试接口能够用于调试CPU的运行状态,如对指定的CPU运行区域进行枚举,与指定的该CPU运行区域进行交互,通过调试接口获取指定CPU运行区域的调试结果,与目标公共语言运行库CLR进行交互等。通过调试接口能够向第一CPU发送触发信号,以触发该第一CPU的启动。例如:通过调试接口向共享存储器的低位启动地址中写入启动信号,并通过该共享存储器将启动信号发送至第一CPU,从而触发第一CPU启动,在第一CPU启动后,通过第一CPU设置共享存储器内的调试结果共享地址,从而将第二CPU的运行调试结果存放至该调试结果共享地址中,能够通过第一CPU直接从该共享地址中读取第二CPU的运行调试结果,提高读取效率。

S120:通过调试接口控制第一CPU向共享存储器的第二CPU跳转指令存放地址中写入第二CPU跳转指令,其中,所述第二CPU跳转指令用于控制所述第二CPU在所述共享存储器的调试指令存放地址中写入运行调试指令后,跳转至所述共享存储器中的调试指令存放地址。

由于第一CPU和第二CPU均可访问共享存储器,因此通过调试接口控制第一CPU向共享存储器的调试指令存放地址中写入第二CPU跳转指令,能够在第一CPU控制第二CPU启动后,控制第二CPU读取该调试指令存放地址中的第二CPU跳转指令,从而控制第二CPU在一定条件下跳转至调试指令存放地址,如在确定共享存储器的调试指令存放地址中写入运行调试指令后,跳转至调试指令存放地址,从而读取该调试指令存放地址中的运行调试指令,其中,第二CPU首先跳转至调试指令存放地址中的初始地址。

其中,第二CPU与第一CPU的启动地址位不同,优选地,第一CPU的启动方式为低位启动,第二CPU的启动方式为高位启动,例如第一CPU的启动地址位为0,而第二CPU的启动地址位为0XFFFF0000,从而实现第一CPU和第二CPU的先后启动。当第二CPU存在多个时,需要在SOC芯片上的并发总线SBUS上进行高位启动地址的地址偏移,由第一CPU按照预定顺序控制多个第二CPU的启动。

另外,在控制第二CPU启动之前,还需要配置第二CPU与共享存储器之间的通信连接,如异步收发传输器UART模块的配置等。

S130:通过调试接口控制第一CPU向共享存储器的调试指令存放地址中写入运行调试指令,其中,运行调试指令用于调试第二CPU的运行状态。

S140:控制第二CPU根据第二CPU跳转指令,从调试指令存放地址中读取运行调试指令,根据运行调试指令调试第二CPU的运行状态,将产生的运行状态调试结果写入调试结果共享地址中。

由于第一CPU与第二CPU均与共享存储器连接,并且第一CPU存在调试接口,因此通过调试接口控制第一CPU向共享存储器的调试指令存放地址中写入运行调试指令,能够通过第二CPU访问该共享存储器,读取该运行调试指令,以调试自身的运行状态。由于第二CPU跳转指令具有控制第二CPU在共享存储器的调试指令存放地址中写入运行调试指令后,跳转至调试指令存放地址的功能;因此,通过第二CPU执行第二CPU跳转指令的内容,能够从调试指令存放地址中读取运行调试指令。

通过上述方法解决了背景技术中提到的CPU没有调试接口而难以被正常调试的问题。其中,由于本发明实施例中,涉及多CPU之间访问共享存储器,因此,共享存储器可优选为同步动态随机存取存储器,如双倍速率同步动态随机存储器DDR,以保证数据的传输的同步性。

S150:通过调试接口控制第一CPU从调试结果共享地址中读取运行状态调试结果。

综上,本发明实施例提供的多CPU架构下的CPU运行状态调试方法,首先通过启动存在调试接口的第一CPU,通过第一CPU控制第二CPU启动,通过该第一CPU的调试接口向共享存储器的第二CPU跳转指令存放地址中写入第二CPU跳转指令,以通过共享存储器中的第二CPU跳转指令控制没有调试接口的第二CPU跳转至共享存储器中的调试指令存放地址,以及向共享存储器中写入运行调试指令,控制第二CPU根据上述第二CPU跳转指令读取该运行调试指令,以调试第二CPU的运行状态,从而能够控制第二CPU向共享存储器中写入运行状态调试结果,通过第一CPU的调试接口控制第一CPU从共享存储器中读取第二CPU的运行状态调试结果。本发明的技术方案能够通过多CPU架构下存在调试接口的CPU,能够通过有调试接口的CPU获取无调试接口的CPU的运行状态调试结果,从而能够对无调试接口的CPU的运行状态进行调试,减少该CPU出现的运行状态故障。

为了准确控制第一CPU和第二CPU访问共享存储器的时序,可通过设置通信标识以控制CPU与共享存储器之间的交互,并在共享存储器中分配对应的通信标识存放地址,以存放上述通信标识,其中可用32位系统中一个字符word中的高30bit位表示内存中的通信标识存放地址。

作为一种优选的实施例,如图3所示,在启动第一CPU时,还需要通过第一CPU定义通信标识在共享存储器内的通信标识存放地址和通信标识在通信标识存放地址中的二进制表示形式。图2中的步骤S150:通过调试接口控制第一CPU从调试结果共享地址中读取运行状态调试结果,包括:

S210:控制第二CPU向共享存储器内的通信标识存放地址中写入第一通信标识,第一通信标识包括调试结果生成确认信息以及调试结果共享地址和存放长度。

S220:通过调试接口控制第一CPU从通信标识存放地址中读取第一通信标识。

通信标识用于控制CPU与共享存储器之间的交互,该通信标识能够表示CPU的运行状态;并且通信标识在共享存储器中占用一定的通信标识存放地址,例如,通信标识可占用32位系统中一个word来表示,其中的低2bit表示通信标识的内容,高30bit表示通信标识在共享存储器中的存放地址。其中,通过第二CPU向共享存储器中的通信标识存放地址中写入第一通信标识,以通过共享存储器告知第一CPU:调试结果已经生成和调试结果的存放地址和存放长度,进而能够使得第一CPU从共享存储器的调试结果共享地址中调取该调试结果,完成第二CPU的调试。

S230:根据第一通信标识中的调试结果共享地址和存放长度,通过调试接口控制第一CPU读取运行状态调试结果。

在第一CPU获取该第一通信标识后,第一CPU能够确知运行状态调试结果的存放地址和存放长度,进而通过调试接口控制第一CPU读取运行状态调试结果,完成对第二CPU的运行状态的调试。

S240:通过调试接口控制第一CPU向共享存储器的通信标识存放地址中写入第二通信标识,第二通信标识用于确认运行状态调试结果读取完毕。

S250:根据第二通信标识,控制共享存储器释放调试结果共享地址中的运行状态调试结果。其中,能够通过第二CPU从通信标识存放地址中读取该第二通信标识,然后第二CPU根据该第二通信标识向共享存储器中发送释放命令,以控制共享存储器释放调试结果共享地址中的运行状态调试结果。

在第一CPU读取共享存储器中运行状态调试结果后,共享存储器的调试结果共享地址中还是存在该运行状态调试结果的;在通过调试接口控制第一CPU向共享存储器中写入第二通信标识后,共享存储器释放该地址中的运行状态调试结果,从而能够节省共享存储器的资源,以方便下次运行状态调试结果的存放。

作为一种优选的实施例,如图7所示,在通讯协议中能够设计四个通信标识:初始化标识Init、发送标识Send、确认标识ACK和结束标识Finish,分别表示第一CPU和第二CPU的初始化、发送、确认和结束四个阶段。在初始化阶段,共享存储器中通信标识存放地址中的通信标识为初始化标识Init,此时,第一CPU和第二CPU进行初始化,共享存储器中的调试结果共享地址处于空闲状态,第一CPU处于等待状态;在发送阶段,共享存储器内通信标识存放地址中的通信标识为发送标识Send,此时,第二CPU向共享存储器发送运行状态调试结果;当第二CPU发送完毕后,进入确认阶段,此时第二CPU向共享存储器中的通信标识存放地址写入通信标识ACK,第一CPU从共享存储器中读取该通信标识,然后从共享存储器中的调试结果共享地址中读取对应的运行状态调试结果;当第一CPU读取完毕后,向共享存储器的通信标识存放地址写入结束标识Finish,此时,共享存储器释放调试结果共享地址中的运行状态调试结果的数据。

另外,通过第一CPU的调试接口,可将运行状态调试结果导出,若该调试结果的信息量较大,可提前将导出文件的指令以脚本的形式保存,如图4所示,图2所示实施例提供的CPU运行状态调试方法,还包括以下步骤:

S310:通过调试接口向第一CPU发送脚本触发指令,其中,脚本触发指令用于从第一CPU中导出包含有运行状态调试结果的数据文件;

S320:显示包含有运行状态调试结果的数据文件。

其中,作为一种较佳的实施例,在第一CPU接收到第一通信标识时,在从共享存储器读取该运行状态调试结果时,即可运行脚本触发指令,导出包含有运行状态调试结果的数据文件;或者在第一CPU从共享存储器中读取完毕后,向第一CPU发送脚本触发指令,从第一CPU导出数据文件。

另外,作为一种优选的实施例,如图5所示,在图2所示实施例中,在步骤S130:通过调试接口控制第一CPU向调试指令存放地址中写入运行调试指令之前,CPU运行状态调试方法还包括以下步骤:

S410:控制第二CPU从第二CPU跳转指令存放地址中读取第二CPU跳转指令。

S420:控制第二CPU向共享存储器中写入跳转指令读取确认信号,其中,跳转指令读取确认信号包括所述第二CPU已读取所述第二CPU跳转指令的确认信息。

S430:控制第一CPU从共享存储器中读取跳转指令读取确认信号,其中,该跳转指令读取确认信号,可以为通信标识。

通过上述方法可知,在第二CPU读取第二CPU跳转指令后,通过第二CPU向共享存储器中写入跳转指令读取确认信号,第一CPU从该共享存储器中读取该跳转指令读取确认信号,能够及时了解到第一CPU已经实现跳转功能,此时,第一CPU向共享存储器中的调试指令存放地址中写入运行调试指令,能够使得第二CPU及时读取该运行调试指令。

另外,在调试指令存放地址中已写入运行调试指令后,如图6所示,图2所示步骤S140:控制第二CPU根据第二CPU跳转指令,从调试指令存放地址中读取运行调试指令的步骤,包括:

S510:控制第一CPU向共享存储器内的通信标识存放地址中写入第三通信标识,所述第三通信标识用于通知所述调试指令存放地址中已写入运行调试指令;

S520:控制所述第二CPU从所述通信标识存放地址中读取第三通信标识后,根据所述第二CPU跳转指令从调试指令存放地址中读取上述运行调试指令。

第二CPU跳转指令虽然能够控制第二CPU跳转至调试指令存放地址,然而第二CPU如果在第一CPU向通信标识存放地址中写入第三通信标识之前就跳转至调试指令存放地址,则第二CPU将读取到错误的调试指令或读取到空值。因此,通过第一CPU向共享存储器内的通信标识存放地址中写入第三通信标识,能够在第二CPU读取该第三通信标识后,触发第二CPU跳转指令,从而控制第二CPU从调试指令存放地址中读取上述运行调试指令,以提高第二CPU对运行调试指令读取的成功率。

基于同一发明构思,本发明实施例还提供了多CPU架构下的CPU运行状态调试系统,由于所述系统对应的方法是本申请实施例中的多CPU架构下的CPU运行状态调试方法,并且该系统解决问题的原理与方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。

请参见附图8,图8为本发明一示例性实施例示出的一种多CPU架构下的CPU运行状态调试系统的结构示意图,本系统适用的多CPU架构包括第一CPU、第二CPU和共享存储器,其中,第一CPU存在调试接口,第二CPU无调试接口;如图8所示,本发明实施例提供的多CPU架构下的CPU运行状态调试系统包括:

第一启动模块801,用于通过第一CPU的调试接口启动第一CPU,建立第一CPU与共享存储器的通信连接;优选地,共享存储器为同步动态随机存取存储器。

第一写入模块802,用于通过调试接口控制第一CPU向共享存储器的调试指令存放地址中写入启动指令,其中,启动指令用于启动第二CPU;

第二写入模块803,用于当第二CPU启动时,通过调试接口控制第一CPU向共享存储器的调试指令存放地址中写入运行调试指令,其中,运行调试指令用于调试第二CPU的运行状态;

第一读取模块804,用于控制第二CPU从调试指令存放地址中读取运行调试指令;

调试控制模块805,用于控制第二CPU根据运行调试指令调试第二CPU的运行状态;

第三写入模块806,用于控制第二CPU将产生的运行状态调试结果写入共享存储器的调试结果共享地址中;

第二读取模块807,用于通过调试接口控制第一CPU从调试结果共享地址中读取运行状态调试结果。

综上,本发明实施例提供的多CPU架构下的CPU运行状态调试系统,首先通过启动存在调试接口的第一CPU,通过第一CPU控制第二CPU启动,通过该第一CPU的调试接口向共享存储器的第二CPU跳转指令存放地址中写入第二CPU跳转指令,以通过共享存储器中的第二CPU跳转指令控制没有调试接口的第二CPU跳转至共享存储器中的调试指令存放地址,以及向共享存储器中写入运行调试指令,控制第二CPU根据上述第二CPU跳转指令读取该运行调试指令,以调试第二CPU的运行状态,从而能够控制第二CPU向共享存储器中写入运行状态调试结果,通过第一CPU的调试接口控制第一CPU从共享存储器中读取第二CPU的运行状态调试结果。本发明的技术方案能够通过多CPU架构下存在调试接口的CPU,能够通过有调试接口的CPU获取无调试接口的CPU的运行状态调试结果,从而能够对无调试接口的CPU的运行状态进行调试,减少该CPU出现的运行状态故障。

作为一种优选的实施例,如图9所示,图8中的第二读取模块807,包括:

第一写入子模块8071,用于控制第二CPU向共享存储器的通信标识存放地址中写入第一通信标识,第一通信标识包括调试结果生成确认信息以及调试结果共享地址和存放长度;

第一读取子模块8072,用于通过调试接口控制第一CPU从通信标识存放地址中读取第一通信标识;

第二读取子模块8073,用于根据第一通信标识中的调试结果共享地址和存放长度,通过调试接口控制第一CPU读取运行状态调试结果;

第二写入子模块8074,用于通过调试接口控制第一CPU向共享存储器的通信标识存放地址中写入第二通信标识,第二通信标识用于确认运行状态调试结果读取完毕;

释放子模块8075,用于控制共享存储器释放调试结果共享地址中的运行状态调试结果。

作为一种优选的实施例,如图10所示,图8所示的CPU运行状态调试系统还包括以下结构:

指令发送模块808,用于通过调试接口向第一CPU发送脚本触发指令,其中,脚本触发指令用于从第一CPU中导出包含有运行状态调试结果的数据文件;

显示模块809,用于显示包含有运行状态调试结果的数据文件。

作为一种优选的实施例,如图11所示,图8所示的CPU运行状态调试系统还包括:

第三读取模块810,用于控制第二CPU从共享存储器的调试指令存放地址中读取启动指令,根据启动指令控制第二CPU自身启动;

第四写入模块811,用于控制第二CPU向共享存储器写入启动确认信号,其中,启动确认信号包括所述第二CPU已启动的确认信息;

第四读取模块812,用于控制第一CPU从共享存储器中读取启动确认信号。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。

以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1