CN101685421B - 一种dsp内存的获取方法和装置 - Google Patents
一种dsp内存的获取方法和装置 Download PDFInfo
- Publication number
- CN101685421B CN101685421B CN2008102228962A CN200810222896A CN101685421B CN 101685421 B CN101685421 B CN 101685421B CN 2008102228962 A CN2008102228962 A CN 2008102228962A CN 200810222896 A CN200810222896 A CN 200810222896A CN 101685421 B CN101685421 B CN 101685421B
- Authority
- CN
- China
- Prior art keywords
- internal memory
- dsp
- module
- memory
- capturing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种DSP内存的获取方法,包括:当满足内存抓取条件时,主控处理器上的内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间;所述内存抓取预处理模块、命令解析模块和内存上传模块抓取所述DSP的内存,并所述将内存的内容上传至所述主控处理器上的内存上传接收模块。本发明还公开了一种DSP内存的获取装置。本发明可以实现在系统正常和异常情况下进行内存获取,可以实现不带直接内存访问端口外设的新型DSP芯片的相关调测分析,提高测试阶段的问题分析定位效率。
Description
技术领域
本发明涉及数字信号处理技术领域,特别是涉及一种DSP内存的获取方法和装置。
背景技术
近年来,随着通信技术的不断发展,尤其是3G技术和IP技术的广泛应用,相应的DSP(Digital Singnal Processor,数字信号处理)系统的复杂度也在不断提高,支持更多的通用外设端口,如ETH(Ethernet,以太网端口),SRIO(Serial Rapid I/O,串行快速输入输出端口)等。与此同时,一些传统意义上的端口也逐渐被不少芯片厂商舍弃,如HPI(Host-Port Interface,主机接口),DSI(Display SerialInterface Specification,显示器串行接口)等,这些端口在DSP处理方案设计中作为主机接口,因为其特殊的直接访问方式,因此可以在主机侧直接查询DSP内存信息,往往作为DSP内存分析查询的一个重要通道应用在方案设计中。一旦舍弃这些端口,那么对内存的查询及获取方式需要采用新的端口方式,需要新的设计方案就成了新型处理器的一种选择。
而DSP处理器的特点,例如内存空间较小,启动过程比较简单,外设单一,处理器上支持的OS(Operating System,操作系统)比较简单等,这些决定了DSP不能象其他通用处理器一样,可以支持复杂的调测功能,尤其是在脱离开发调测环境情况下。传统的设计方案中,因为通过主机口可以直接访问内存,因此多采用该端口作为调测的通道,其通常方案如下:
首先,在主处理器上执行一个调测模块,该模块接收调测命令,然后按照主机口访问方式去将有效的DSP内存或外存读取出来;内存读上来后,调测模块将其存成二进制文件,然后上传到服务器上进行分析;对于二进制文件的分析,成熟的方案中有内存分析工具,结合map文件配套使用,可以将内存的具体含义予以分析。所述map文件用于描述目标板的可访问存储区,根据map文件可获知哪些内存地址是合法的,哪些区域可以读,哪些可以写。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1.需依赖主机接口,只有存在主机接口的芯片上才能使用,而目前许多芯片为了降低成本和功耗,已经舍弃了主机接口,因此该方案将不适用于新的处理器芯片,大大限制了DSP芯片的选型范围。
2.由于主机口的局限性,大多采用DMA(DMA-Direct MemoryAccess,直接存储器存取)的方式,只能访问外设寄存器,不能访问内核相关的一些以寄存器,而且部分芯片采用滑动窗的方式进行访问,访问空间有限,因此不能获取全部的DSP空间内容,有些内核以及外设寄存器等信息将不能获取。
3.由于该方案仅依靠主机侧软件进行内存获取,对于DSP侧打开Cache(高速缓冲存储器)操作这种情况,其获取的内容有时是不准确的,会影响相关分析的正确性。
4.该方案在程序正常运行的情况下,将会出现内存的前后不一致性,影响分析的正确性。
5.该方案获取内存的后处理单独提供分析工具,比较复杂。
发明内容
本发明实施例要解决的问题是提供一种DSP内存的获取方法和装置,以克服现有技术中必须通过DSP的主机接口来获取DSP的内存的缺陷。
为达到上述目的,本发明实施例的技术方案提供一种DSP内存的获取方法,所述方法包括以下步骤:
S1.当满足内存抓取条件时,HCP(Host Control Processer,主控处理器)上的内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间;
S2.所述内存抓取预处理模块、命令解析模块和内存上传模块抓取所述DSP的内存,并将所述内存的内容上传至所述主控处理器上的内存上传接收模块,本步骤具体包括:
S21.所述内存抓取预处理模块对DSP当前现场进行保存;
S22.所述命令解析模块对命令的参数进行解析;
S23.所述内存上传模块根据所述参数将对应空间内容上传至所述内存上传接收模块。
其中,在步骤S1之前,还包括:下载内存调测调度模块和内存上传接收模块到主控处理器上。
其中,步骤S1中所述的内存抓取条件为DSP进入异常或主控处理器上人为触发。
其中,所述的主控处理器上人为触发具体为:接收通过PC控制台输入的DSP内存抓取命令,所述命令中包括需要抓取的DSP的信息和/或抓取的空间位置信息。
其中,步骤S1中,所述主控处理器上的内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间具体包括:
S11.将所述内存抓取预处理模块、命令解析模块和内存上传模块形成一个最小系统包;
S12.利用正常的DSP加载流程将所述最小系统包加载到DSP上的保留空间。
其中,在步骤S22中,所述参数包括指定内存抓取的DSP编号、获取的空间起始地址和获取的空间长度。
其中,在步骤S23中,还包括采用应答方式进行数据的可靠传输,所述应答方式为查询等待的方式。
其中,在步骤S2之后,还包括:
S3.所述内存上传接收模块对所述空间内容进行校验处理,并生成原始二进制文件的格式数据,将所述数据传送到内存调测转换后处理模块。
其中,在步骤S3中,所述内存上传接收模块对所述空间内容进行校验处理的步骤,具体包括:
S31.所述内存上传接收模块根据待获取的空间数量、对应位置和长度,以及报文的大小,获取待接收的数据报文的段数和长度信息;
S32.接收到数据报文时,对所述内存上传模块在所述数据报文上打上的序列号、所述数据报文的段数和长度进行检查。
其中,在步骤S3之后还包括:
S4.所述内存调测转换后处理模块根据所述数据生成.data文件,并将所述.data文件与.out文件一起加载到工具平台上。
本发明实施例的技术方案还提供一种DSP内存的获取装置,所述装置包括:
内存调测调度模块,用于当满足内存抓取条件时,将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间;
内存抓取预处理模块,用于对DSP当前现场进行保存;
命令解析模块,用于对命令的参数进行解析;
内存上传模块,用于根据所述参数将对应空间内容上传至内存上传接收模块;
内存上传接收模块,用于对所述空间内容进行校验处理,并生成原始二进制文件的格式数据,将所述数据传送到内存调测转换后处理模块。
其中,其中所述的内存调测转换后处理模块,包括:
文件生成子模块,用于根据接收到数据生成.data文件;
文件传输子模块,用于将所述.data文件与.out文件一起加载到工具平台上。
与现有技术相比,本发明的技术方案具有如下优点:
1.突破了DSP外设端口的使用限制,可以不依赖于传统的主机口,大大丰富了芯片的选型;
2.解决了传统方式内存获取一致性不能完全保证的问题;
3.简化了内存分析,提高了DSP上问题分析定位的效率
4.可以实现所有DSP资源信息的获取,克服了传统方式内存获取的局限性。
附图说明
图1是本发明实施例的一种DSP内存的获取方法的流程图;
图2是本发明实施例的一种可靠传输的数据格式示意图;
图3是本发明实施例的一种实现DSP内存获取的结构的示意图;
图4是本发明实施例的一种内存抓取的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明实施例的一种DSP内存的获取方法如图1所示,包括以下步骤:
步骤s101,从PC上下载内存调测调度模块和内存上传接收模块到HCP上,该HCP在硬件平台架构中作为通用主控单元,承担对DSP等辅助单元的配置、控制、信息中转等角色,在本装置中,HCP通过标准的外设接口(ETH等)与DSP和PC连接。
步骤s102,当满足内存抓取条件时,所述内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间。所述的内存抓取条件为DSP进入异常或HCP上人为触发,人为触发的一般流程为:通过PC控制台输入DSP内存抓取命令,指明需要抓取的DSP,必要情况下可以指定抓取的空间位置,由于该命令实际上是HCP上对应的一个函数处理,因此直接触发HCP上该命令的执行,然后进行下面所述的处理。其中所述的内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间的步骤,具体为:将所述内存抓取预处理模块、命令解析模块和内存上传模块形成一个最小系统包;利用正常的DSP加载流程,将所述最小系统包加载到DSP上的保留空间。正常DSP加载流程主要是:软复位指定DSP,DSP本身固化的Boot单元发出启动报文,HCP收到后开始将该最小系统包以数据流的方式发到DSP上,DSP上Boot单元接收数据流并按照格式加载到指定位置,然后跳转到程序入口进行执行。
步骤s103,所述内存抓取预处理模块对DSP当前现场进行保存。
步骤s104,所述命令解析模块对命令的参数进行解析,主要的参数如下:
Dspid,指定内存抓取的dsp编号;
DumpAddS[],获取的空间起始地址,可以多个;
DumpLen[],获取的空间长度,可以多个,和DumpAddS一一对应。
步骤s105,所述内存上传模块根据所述参数将对应空间内容上传至所述内存上传接收模块,该空间内容的获取是程序依据地址直接读取到的。同时采用应答方式进行数据的可靠传输,其中采用查询等待的方式实现所述应答。所述可靠传输的数据格式如图2所示,其中a为发送数据报文格式,b为回应数据报文格式。
步骤s106,所述内存上传接收模块对所述空间内容进行校验处理。该校验流程是:发送模块按照配置的参数将指定空间内容发送上去,对每个数据报文,均打上一个序列号,该序号依次增加,接收模块在HCP下发抓取命令时已经知道待获取的空间数量,对应位置及长度,依此,按照报文的大小可以算出上传数据报文的段数、长度等信息,然后每收到一个报文,首先检查和上个数据报文是否是顺序递增,其次检查是否收完正确的数据段数,其每段长度是否符合预期。校验处理完后生成原始二进制文件的格式数据,将所述数据传送到内存调测转换后处理模块。
步骤s107,所述内存调测转换后处理模块根据所述数据生成.data文件,并将所述文件与.out文件,一起加载到工具平台CCS上。其中,.data文件为数据文件,用于存取程序相关的数据;.out文件为开发阶段编译器编写正式代码时生成的目标文件,是在正式DSP运行中所用到的一种可执行文件;CCS为Ti推出的一种DSP开发工具,全称为Code Composer Studio,主要是在开发调试阶段进行DSP软件编辑、编译、加载、调试、分析等,需要依赖于Jtag仿真器进行,不利于远程调试。
本发明实施例的一种实现DSP内存获取的结构如图3所示,包括DSP、HCP和PC,其中DSP的保留空间上包括内存抓取预处理模块D1、命令解析模块D2和内存上传模块D3;HCP包括内存调测调度模块H1、内存上传接收模块H2;PC包括内存调测转换后处理模块P1。
内存抓取预处理模块D1用于对DSP当前现场进行保存;命令解析模块D2用于对命令的参数进行解析;内存上传模块D3用于根据所述参数将对应空间内容上传至内存上传接收模块;内存调测调度模块H1用于当满足内存抓取条件时,将内存抓取预处理模块D1、命令解析模块D2和内存上传模块D3加载到DSP上的保留空间;内存上传接收模块H2用于对所述空间内容进行校验处理,并生成原始二进制文件的格式数据,将所述数据传送到内存调测转换后处理模块P1;内存调测转换后处理模块还可以包括文件生成子模块和文件传输子模块,文件生成子模块用于根据接收到数据生成.data文件,文件传输子模块用于将所述.data文件与.out文件一起加载到CCS上。
当采用图3所示的结构时,以ETH端口作为内存数据的传输通道为例,本发明实施例的一种内存抓取的流程如图4所示,具体为:
首先从PC上下载调测模块(包括内存调测调度模块H1和内存上传接收模块H2)到HCP上,然后H1模块等待内存抓取条件:DSP进入异常;HCP上人为触发。条件满足后,通过执行调度模块中的命令C1,即HCP上的程序加载函数,将DSP上D1~D3模块加载到DSP上的保留空间,然后执行命令C2,即执行DSPNMI(NonMaskableInterrupt,不可屏蔽中断)操作函数,触发DSP上对应模块接管DSP,然后首先执行D1模块,对DSP当前现场予以保存;然后跳入并执行D2模块,对命令C1及C2的参数予以解析,最后依据参数将对应空间内容上传至H2,H2经过校验处理后生成原始二进制文件的格式传给PC上的软件模块P1,P1处理结束后,生成CCS可识别的.data文件,该文件会同.out文件一起加载到CCS上,可实现在CCS上的后处理分析。
对于H1模块的C1命令,采用将D1~D3形成一个最小系统包,利用用正常的DSP加载流程(如ETH加载等)实现该最小系统包的加载;
对于H1模块的C2命令,采用DSP外部NMI的方式,来实现对系统所有状态的及时打断,从而使D1模块实时的激活,进行后续的内存处理,该命令等效于一个全天候的后门命令,可以使系统无论什么状态下均可陷入内存获取状态。
对于D3->H2数据上传,为了保证数据的无误,采用了应答方式来实现传输的可靠,同时为了保证系统的最小,采用查询等待的方式来实现应答;
对于P1模块实现的后处理,它借用CCS的内存分析方式,将获取的二进制内存转换为CCS特定数据格式,从而实现远端处理器内存的本地虚拟分析。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种DSP内存的获取方法,其特征在于,所述方法包括以下步骤:
S1.当满足内存抓取条件时,主控处理器上的内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间;
S2.所述内存抓取预处理模块、命令解析模块和内存上传模块抓取所述DSP的内存,并将所述内存的内容上传至所述主控处理器上的内存上传接收模块,本步骤具体包括:
S21.所述内存抓取预处理模块对DSP当前现场进行保存;
S22.所述命令解析模块对命令的参数进行解析;
S23.所述内存上传模块根据所述参数将对应空间内容上传至所述内存上传接收模块。
2.如权利要求1所述DSP内存的获取方法,其特征在于,在步骤S1之前,还包括:下载内存调测调度模块和内存上传接收模块到主控处理器上。
3.如权利要求1所述DSP内存的获取方法,其特征在于,步骤S1中所述的内存抓取条件为DSP进入异常或主控处理器上人为触发。
4.如权利要求3所述DSP内存的获取方法,其特征在于,其中所述的主控处理器上人为触发具体为:
接收通过PC控制台输入的DSP内存抓取命令,所述命令中包括需要抓取的DSP的信息和/或抓取的空间位置信息。
5.如权利要求1所述DSP内存的获取方法,其特征在于,步骤S1中,所述主控处理器上的内存调测调度模块将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间具体包括:
S11.将所述内存抓取预处理模块、命令解析模块和内存上传模块形成一个最小系统包;
S12.利用正常的DSP加载流程将所述最小系统包加载到DSP上的保留空间。
6.如权利要求1所述DSP内存的获取方法,其特征在于,在步骤S22中,所述参数包括指定内存抓取的DSP编号、获取的空间起始地址和获取的空间长度。
7.如权利要求1所述DSP内存的获取方法,其特征在于,在步骤S23中,还包括采用应答方式进行数据的可靠传输,所述应答方式为查询等待的方式。
8.如权利要求1所述DSP内存的获取方法,其特征在于,在步骤S2之后,还包括:
S3.所述内存上传接收模块对所述空间内容进行校验处理,并生成原始二进制文件的格式数据,将所述数据传送到内存调测转换后处理模块。
9.如权利要求8所述DSP内存的获取方法,其特征在于,在步骤S3中,所述内存上传接收模块对所述空间内容进行校验处理的步骤,具体包括:
S31.所述内存上传接收模块根据待获取的空间数量、对应位置和长度,以及报文的大小,获取待接收的数据报文的段数和长度信息;
S32.接收到数据报文时,对所述内存上传模块在所述数据报文上打上的序列号、所述数据报文的段数和长度进行检查。
10.如权利要求8所述DSP内存的获取方法,其特征在于,在步骤S3之后还包括:
S4.所述内存调测转换后处理模块根据所述数据生成.data文件,并将所述.data文件与.out文件一起加载到工具平台上。
11.一种DSP内存的获取装置,其特征在于,所述装置包括:
内存调测调度模块,用于当满足内存抓取条件时,将内存抓取预处理模块、命令解析模块和内存上传模块加载到DSP上的保留空间;
内存抓取预处理模块,用于对DSP当前现场进行保存;
命令解析模块,用于对命令的参数进行解析;
内存上传模块,用于根据所述参数将对应空间内容上传至内存上传接收模块;
内存上传接收模块,用于对所述空间内容进行校验处理,并生成原始二进制文件的格式数据,将所述数据传送到内存调测转换后处理模块。
12.如权利要求11所述DSP内存的获取装置,其特征在于,其中所述的内存调测转换后处理模块,包括:
文件生成子模块,用于根据接收到数据生成.data文件;
文件传输子模块,用于将所述.data文件与.out文件一起加载到工具平台上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102228962A CN101685421B (zh) | 2008-09-24 | 2008-09-24 | 一种dsp内存的获取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102228962A CN101685421B (zh) | 2008-09-24 | 2008-09-24 | 一种dsp内存的获取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101685421A CN101685421A (zh) | 2010-03-31 |
CN101685421B true CN101685421B (zh) | 2011-11-23 |
Family
ID=42048587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102228962A Active CN101685421B (zh) | 2008-09-24 | 2008-09-24 | 一种dsp内存的获取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101685421B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1584845A (zh) * | 2004-05-28 | 2005-02-23 | 中兴通讯股份有限公司 | 一种数字信号处理通讯应用系统内存保护方法 |
CN1629805A (zh) * | 2003-12-18 | 2005-06-22 | 中国电子科技集团公司第三十研究所 | 运用于dsp的动态加载方法 |
CN101067789A (zh) * | 2007-06-05 | 2007-11-07 | 上海微电子装备有限公司 | 程序动态加载方法 |
-
2008
- 2008-09-24 CN CN2008102228962A patent/CN101685421B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1629805A (zh) * | 2003-12-18 | 2005-06-22 | 中国电子科技集团公司第三十研究所 | 运用于dsp的动态加载方法 |
CN1584845A (zh) * | 2004-05-28 | 2005-02-23 | 中兴通讯股份有限公司 | 一种数字信号处理通讯应用系统内存保护方法 |
CN101067789A (zh) * | 2007-06-05 | 2007-11-07 | 上海微电子装备有限公司 | 程序动态加载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101685421A (zh) | 2010-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007592B2 (en) | Debugging non-deterministic embedded systems | |
CN101937392B (zh) | 一种嵌入式软件动态缺陷检测系统 | |
CN106575249A (zh) | 针对片上系统(soc)和系统的低功率调试架构 | |
CN1248116C (zh) | 一种基于主机平台的嵌入式模块和子系统的通用测试装置 | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
CN102508781A (zh) | 多核架构中的调试 | |
CN101630285A (zh) | 一种应用于嵌入式系统的软件性能测试方法 | |
CN102722440A (zh) | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 | |
US8819496B2 (en) | Apparatus for collecting trace information and processing trace information, and method for collecting and processing trace information | |
CN107870855A (zh) | 基于天熠嵌入式操作系统的调试系统 | |
CN102063368B (zh) | 基于命名变量的全景数据在线实时调试方法 | |
US20090313460A1 (en) | Trace compression method for debug and trace interface of microprocessor | |
US20120084538A1 (en) | Methodology and Framework for Run-Time Coverage Measurement of Architectural Events of a Microprocessor | |
CN103049377B (zh) | 基于路径簇归约的并行符号执行方法 | |
Tancreti et al. | Tardis: software-only system-level record and replay in wireless sensor networks | |
US8301936B2 (en) | Apparatus and method for performing a screening test of semiconductor integrated circuits | |
CN101593218B (zh) | 芯片维护方法 | |
Amirtharaj et al. | Profiling and improving the duty-cycling performance of Linux-based IoT devices | |
CN115576649A (zh) | 一种基于行为监控的容器运行时安全检测方法 | |
CN101169758A (zh) | 一种Linux操作系统进程调度信息的监测方法 | |
EP2972880B1 (en) | Kernel functionality checker | |
CN101685421B (zh) | 一种dsp内存的获取方法和装置 | |
WO2020073200A1 (zh) | 调试程序的方法和系统 | |
CN1932774A (zh) | 一种基于多串口资源的嵌入式系统软件快速测试系统和方法 | |
CN111737155B (zh) | 一种芯片调试系统、方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |