掌桥专利:专业的专利平台
掌桥专利
首页

SoC程序执行的显示定位方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 10:08:35


SoC程序执行的显示定位方法、装置、计算机设备及存储介质

技术领域

本发明涉及芯片验证技术领域,特别是涉及一种SoC程序执行的显示定位方法、装置、计算机设备及存储介质。

背景技术

SoC(System on Chip,芯片级系统)是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。凡是SoC芯片都离不开CPU的执行,而在CPU的执行过程涉及指针的移动。

通常在SoC的验证中,通过CPU给功能模块进行操作,这些操作都是通过软件语言编写出程序,再通过汇编、链接等过程转换成二进制文件供CPU执行。比如使用ARM类型处理器,使用C语言进行程序编写,使用ARM开发套件进行编译,链接等过程,最终转换成二进制文件加载到CPU执行。而CPU在执行程序的过程中,由于各种原因,往往使得CPU执行的过程和预期不一致。比如程序代码写的有问题,或者SoC芯片本身存在bug使得功能出现问题等。而CPU由于执行程序出错后,造成结果不可预期的时候,就需要SoC验证工程师去查找和定位CPU的执行过程。

传统的定位方法是直接拿到CPU的指针,然后看指针执行的地址,通过将这个地址和程序编译后的某个类型文件A(这个类型文件往往含有程序地址和对应程序源码的关系)进行比对,从而定位出CPU执行的代码位置。这种方法需要人工取出指针,并在文件A中查找确认,所以人工参与较多。并且由于定位的时候,往往只定位出程序执行的代码位置,但对整个代码执行的过程了解却不直观,无法一眼就看到整个程序执行的过程。显然,传统的定位方法需要人工不断干预,反复查找指针和文件关系,才能确认程序执行的过程关系,不仅给人定位程序执行位置带来效率问题,而且程序执行的过程也不直观。

发明内容

基于此,有必要针对上述技术问题,提供一种SoC程序执行的显示定位方法、装置、计算机设备及存储介质。

一种SoC程序执行的显示定位方法,所述方法包括:

通过运行脚本程序对Elf文件进行解析,得到程序源文件和指针地址的对应关系;

根据所述程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件;

将所述符号文件及地址文件加载到SoC验证环境中;

根据所述符号文件及地址文件的字符和地址关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示;

当验证程序由一个地址区间跳转到另一个地址区间时,通过所述字符变量信号动态显示跳转过程。

在其中一个实施例中,所述当验证程序由一个地址区间跳转到另一个地址区间时,通过所述字符变量信号动态显示跳转过程的步骤还包括:

将所述字符变量加载到仿真波形中,以波形的方式显示所述程序源码和指针地址的对应关系。

在其中一个实施例中,所述根据所述程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件的步骤还包括:

将程序源文件的名字以字符形式用符号文件进行保存,同时将所述程序源文件的名字对应的指针地址用地址文件进行保存,且所述程序源文件同一位置的关系是一一对应。

在其中一个实施例中,所述Elf文件包含有字符表,在所述字符表里包含有程序源文件位置和指针地址之间的对应关系。

一种SoC程序执行的显示定位装置,所述装置包括:

脚本解析模块,所述脚本解析模块用于通过运行脚本程序对Elf文件进行解析,得到程序源文件和指针地址的对应关系;

文件生成模块,所述文件生成模块用于根据所述程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件;

文件加载模块,所述文件加载模块用于将所述符号文件及地址文件加载到SoC验证环境中;

变量加载模块,所述变量加载模块用于根据所述符号文件及地址文件的字符和地址关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示;

显示模块,所述显示模块用于当验证程序由一个地址区间跳转到另一个地址区间时,通过所述字符变量信号动态显示跳转过程。

在其中一个实施例中,所述显示模块还用于:

将所述字符变量加载到仿真波形中,以波形的方式显示所述程序源码和指针地址的对应关系。

在其中一个实施例中,文件生成模块还用于:

将程序源文件的名字以字符形式用符号文件进行保存,同时将所述程序源文件的名字对应的指针地址用地址文件进行保存,且所述程序源文件同一位置的关系是一一对应。

在其中一个实施例中,所述Elf文件包含有字符表,在所述字符表里包含有程序源文件位置和指针地址之间的对应关系。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

上述SoC程序执行的显示定位方法、装置、计算机设备及存储介质通过运行脚本程序对Elf文件进行解析,得到程序源文件和指针地址的对应关系;根据所述程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件;将所述符号文件及地址文件加载到SoC验证环境中;根据所述符号文件及地址文件的字符和地址关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示;当验证程序由一个地址区间跳转到另一个地址区间时,通过所述字符变量信号动态显示跳转过程。本发明可以将指针和源文件的关系自动匹配好,并通过诸如信号变量的方式在诸如波形的界面进行显示,能直观看到当前程序执行的位置,同时也能直观看到程序执行的整个过程,对于所有程序执行的过程都能很好的进行动态显示。

附图说明

图1为传统技术中SoC程序执行的显示定位方法的构思示意图;

图2为本发明中SoC程序执行的显示定位方法的构思示意图;

图3为一个实施例中SoC程序执行的显示定位方法的流程示意图;

图4为一个实施例中SoC程序执行的显示定位装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

目前,如图1所示为传统技术中SoC程序执行的显示定位方法的构思示意图。具体地,在波形界面显示的是指针信号,这个指针信号里就是指针地址,通过这个指针地址,到Elf文件中进行查询,就能定位该地址对应的源码文件位置。如果需要知道程序执行的整个过程,则需要对指针地址进行多次查询,由人工统计出程序执行的过程。这种需要人工不断干预,反复查找指针和文件关系,才能确认程序执行的过程关系,不仅给人定位程序执行位置带来效率问题,而且程序执行的过程也不直观。

基于此,本发明提供了一种SoC程序执行的显示定位方法,通过该方法可以将这种指针和源文件的关系自动匹配好,并通过诸如信号变量的方式在诸如波形的界面进行显示,该方法的发明构思如图2所示。具体地,相比于图1的人工被动查询改为脚本主动处理成符合文件和地址文件,这两个文件中的字符和地址是一一对应关系。通过将这两个文件加载到验证环境中,再根据两个字符区间的地址范围属于第一个字符显示的原则抽取出变量逻辑,并将这个变量加载到波形,以符合变量的形式进行显示。

在一个实施例中,如图3所示,提供了一种SoC程序执行的显示定位方法,该方法包括:

步骤302,通过运行脚本程序对Elf文件进行解析,得到程序源文件和指针地址的对应关系;

步骤304,根据程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件;

步骤306,将符号文件及地址文件加载到SoC验证环境中;

步骤308,根据符号文件及地址文件的字符和地址关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示;

步骤310,当验证程序由一个地址区间跳转到另一个地址区间时,通过字符变量信号动态显示跳转过程。

在本实施例中,提供了一种SoC程序执行的显示定位方法,该方法可以应用于如图2所示的应用环境中,将指针和源文件的关系自动匹配好,并通过诸如信号变量的方式在诸如波形的界面进行显示,具体的实现过程如下:

首先,在方案提出的技术是将程序执行的指针和源文件的关系用脚本进行解析,并将这种关系以变量方式加入验证环境中进行显示。具体地,以某SoC芯片中采用ARM处理器为例,源码文件采用C语言进行编写,编写好的C语言程序经过ARM开发套件编译,链接并转换成二进制文件,同时,ARM套件中含有一种工具,可以将C源文件和编译后的二进制文件关系进行关联,这个文件就是Elf文件。通过将这些二进制文件导入到验证环境中,导入到ARM执行程序的位置。在上电后,ARM处理器会执行这些二进制文件,当出现源码编写逻辑错误或者是SoC的功能模块功能不正确等原因造成ARM执行程序过程和预期不相符。此时,就需要验证工程师对程序执行的位置进行定位。传统定位方式是将程序指针信号加入到波形中,然后根据指针上显示的地址去Elf文件中查找,找到对应的程序位置。如果需要知道程序为何执行到当前的位置,则需要根据波形上的指针信号,往回查找指针地址,通过多次将指针地址和elf文件对比,从而定位出程序执行的动态过程。整个过程需要验证人员反复查找定位指针地址和Elf文件中源文件的关系,并且整个程序执行的过程需要验证人员根据往回推测确定,也不直观。

而在本实施例中,为了解决以上问题,该Elf文件包含有字符表,在字符表里包含有程序源文件位置和指针地址之间的对应关系。具体地,在这个Elf文件里,有字符表的概念,在这个字符表里含有程序源文件位置和形成的指针地址对应关系。

在一个实施例中,根据程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件的步骤还包括:将程序源文件的名字以字符形式用符号文件进行保存,同时将程序源文件的名字对应的指针地址用地址文件进行保存,且所述程序源文件同一位置的关系是一一对应。具体地,这些源文件位置能细化到每个程序调用的function或task的名字。所以将这些名字以字符形式用一个文件进行保存,同时,将这些名字一一对应的指针地址用另一个文件进行保存。如此,形成了两份文件,并且文件同一位置的关系是一一对应的。

接着,将这两份文件加载到验证环境中,并且根据地址和字符关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示,这样,程序由一个地址区间跳转到另一个地址区间的时候,这个字符变量信号就能动态显示这个跳转的过程。如此,程序执行的地址落在源文件哪个位置,以及如何会运行到这个位置的整个过程都能很直观的通过字符变量在波形上显示出来。同时,因为脚本一旦写好,就不用更改,所以也非常具备实用性。

在上述实施例中,通过运行脚本程序对Elf文件进行解析,得到程序源文件和指针地址的对应关系;根据所述程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件;将所述符号文件及地址文件加载到SoC验证环境中;根据所述符号文件及地址文件的字符和地址关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示;当验证程序由一个地址区间跳转到另一个地址区间时,通过所述字符变量信号动态显示跳转过程。本方案可以将指针和源文件的关系自动匹配好,并通过诸如信号变量的方式在诸如波形的界面进行显示,能直观看到当前程序执行的位置,同时也能直观看到程序执行的整个过程,对于所有程序执行的过程都能很好的进行动态显示。

在一个实施例中,当验证程序由一个地址区间跳转到另一个地址区间时,通过字符变量信号动态显示跳转过程的步骤还包括:

将字符变量加载到仿真波形中,以波形的方式显示程序源码和指针地址的对应关系。

具体地,针对程序执行定位能直观显示,并能直观动态显示整个程序执行的过程而设计了本方案。在本实施例中需要一个脚本对Elf文件中的关系进行处理,并且该脚本一旦写好则可以适用于所有ARM平台,方便复用。并且通过以符合变量的方式在波形中显示,能直观看到当前程序执行的位置,同时也能直观看到程序执行的整个过程。

在本实施例中,通过使用脚本分析出程序源码和指针地址的关系,并将这种关系以变量的形式,加入仿真波形并显示出来。此外,使用脚本分析程序源码和指针地址关系包括各种类型和存在的脚本,只要具备找出程序源码和指针地址关系,都属于本发明专利的保护范围。可以理解的是,程序源码和指针地址关系,不局限于以波形方式显示,任何具备描述出这种关系并进行显示的也都属于本发明权利保护的范围。

此外,虽然本实施例描述以ARM处理器平台为例,但本技术领域就普通技术人员应该认识到,以上只是用例说明本方案,在没有脱离本发明精神的情况下,可以做出各种等效变化。因此,只要在本发明实质精神范围内对上述采用的变化、变型都将落在本发明权利要求书范围内。

在一个实施例中,如图4所示,提供了一种SoC程序执行的显示定位装置400,该装置包括:

脚本解析模块401,用于通过运行脚本程序对Elf文件进行解析,得到程序源文件和指针地址的对应关系;

文件生成模块402,用于根据所述程序源文件和指针地址的对应关系,生成对应的符号文件及地址文件;

文件加载模块403,用于将所述符号文件及地址文件加载到SoC验证环境中;

变量加载模块404,用于根据所述符号文件及地址文件的字符和地址关系形成一个字符变量信号,将属于两个字符中间的地址区间用第一个字符进行显示;

显示模块405,用于当验证程序由一个地址区间跳转到另一个地址区间时,通过所述字符变量信号动态显示跳转过程。

在一个实施例中,显示模块405还用于:

将所述字符变量加载到仿真波形中,以波形的方式显示所述程序源码和指针地址的对应关系。

在一个实施例中,文件生成模块402还用于:

将程序源文件的名字以字符形式用符号文件进行保存,同时将所述程序源文件的名字对应的指针地址用地址文件进行保存,且所述程序源文件同一位置的关系是一一对应。

在一个实施例中,所述Elf文件包含有字符表,在所述字符表里包含有程序源文件位置和指针地址之间的对应关系。

关于SoC程序执行的显示定位装置的具体限定可以参见上文中对于SoC程序执行的显示定位方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图5所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种SoC程序执行的显示定位方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • SoC程序执行的显示定位方法、装置、计算机设备及存储介质
  • 显示设备的定位方法、装置、显示设备及计算机存储介质
技术分类

06120112437958