数字信号处理(DSP )系统测试和调试3

发布者:心灵清澈最新更新时间:2008-07-19 来源: 工业控制关键字:采集  接口  编译  汇编  调试  格式化 手机看文章 扫描二维码
随时随地手机看文章

  仿真的基本原理

  仿真是一种被用在嵌入式系统开发领域的技术。它可以给系统开发者带来集成硬件和软件所需的可控制性和可视性,有效地模仿DSP 处理器的电气特征和性能,同时让工程师更清晰地了解处理器的活动并加以控制。

  仿真器包含了硬件和软件技术。仿真硬件方面由DSP 芯片上的功能构成,它可以采集数据。该数据提供了有关系统活动状态和其它可视性的信息。硬件还需要从DSP 设备上高速获取此类信息,并将数据格式化。仿真器软件则提供了更高级别的控制,以及一个和主机相连的接口- 一般是一个调试器。调试器让开发工程师可以轻松地从编辑过程(编译、汇编并为某个应用建立链接)过渡到执行环境。

  它从编辑过程中输出数据,并将图象导入到目标系统中。接下来,工程师可以通过调试器和仿真器互动,来控制并执行应用,同时找到并解决问题。这些问题可能是硬件问题,也可能会是软件上的问题。仿真器被设计成一个完整的集成和测试环境。

仿真器系统组件
所有的仿真器系统都是由以下三个部分构成的:
片上调试装置
仿真控制器
运行在主机上的调试器应用程序

                  图7:一个基本的仿真系统

图7 展示了这三部分的连接。其中主机和一个仿真控制器相连,仿真控制器也连接到目标系统。用户通过IDE 中的调试器来控制目标应用。

  从处理器、仿真器到主机平台的整个开发环境,都会使用DSP 仿真技术。

  在DSP 设备本身,要实现更高的时钟率,就要求仿真逻辑必须是在芯片上,这样它才能够全速运行,并跟上处理器的速率。集成度更高的芯片,总线会被隐藏起来,让工程师无法通过管脚看到。这也使得仿真逻辑必须在芯片上,这样才能接入到系统总线。为此,DSP 厂商都一直在积极地将高端仿真功能集成到它们的DSP产品上。

  下一个组件是仿真器,它用来将目标板连接到主机平台上,并在主机和目标处理器之间传输数据。

  第三个组件也是最后一个组件是调试器和仿真软件。该软件可以自动配置以匹配DSP 设备,并作为用户接口,让片上系统(SoC)设备的调试变得尽可能简单。

  这些IDE 还支持“插入式”应用的开发,此类应用不仅能控制处理器,还能通过一个高速数据接口显示来自处理器的仿真数据。

  调试器运行的主机可以是一台电脑,也可以是一个工作站。该主机可以通过各种方式来和仿真器相连,包括以太网、通用串行总线(USB)、Firewire (IEEE 1394)和并行接口等。

  主机可以决定设备到主机之间的数据带宽。主机和仿真器之间的通信决定着数据传输协议的最大持续数据带宽。比如,在某些仿真应用下,仿真器清空接收数据缓冲器的速度必须和这些缓冲器被装满数据的速度一样快。第二,产生数据的主机和接收数据的客户端必须拥有足够的MIP 和/或磁盘带宽,来准备、传输、处理和/或存储来自DSP 的数据。此处必须注意的一点是,一个功能强大的电脑或者一个工作站会对整个仿真系统的性能产生影响。

  仿真器的物理特征

  大多数仿真控制器都位于主机外部。仿真器分为通信和仿真两个部分。通信部分负责和主机通信,而仿真部分则和目标连接,控制目标调试功能和设备调试端口。

  仿真器/目标通信

  仿真控制器通过连接线和目标相连。调试、跟踪、触发和实时传输可以通过同一根目标连接线来完成,有时也可以采用同样的设备管脚。当一根连接线无法满足目标系统的跟踪带宽时,就需要多根连接线。所有跟踪、实时数据传输和调试通信可以通过这个链路来完成。仿真器允许目标和仿真器之间可以至少分开2 英尺,以方便DSP 开发者能在各种环境下应用。

  片上仿真

  由于当前精密的DSP 处理器的可视性日益下降,调试功能也被集成到了芯片上-即我们常说的片上调试。片上调试实际上硬件和软件的结合。位于DSP 上的功能是硬件实现资源。这些资源包括终端用户代码可利用的功能,例如断点寄存器和其它专用硬件。要在芯片和调试器之间进行通信,DSP 上必须有额外的管脚。这些管脚可以是JTAG 接口管脚,也可以是一些专门用于控制或数据的额外管脚。要进行片上调试,还要求主系统必须和调试部分以及数据抽取通信并对之加以控制。主软件运行调试器软件,并通过专用接口头信息与片上调试寄存器连接。主调试器以图画形式显示源代码、处理器资源、存储器位置和外围设备状态等。

  片上调试的一些主要功能包括:

-中断或插入程序和/或数据存储地址上的调试模式
-中断或插入外围设备上的调试模式
-通过1 个DSP 微处理器指令进入调试模式
-读/写DSP 内核寄存器
-读/写外围存储器映射的寄存器
-读/写程序或数据存储器
-执行1 个或多个指令
-跟踪1 个或多个指令
-读实时指令跟踪缓冲器


        图8:DSP 上的仿真逻辑可以实现有效系统集成所需的可视性

  图8 展示了一个高性能DSP 上的仿真硬件。该逻辑位于DSP 上,可以执行以下功
能:

观测-采用总线事件探测器来观测系统中的事件。用户可以通过调试器界面编程选择需要观测的特定事件或情况。
保存-采用计数器和状态机来保存系统中发生的事件。
导向和控制-采用触发器来发送计数器和状态机获取的有用数据。
导出-采用导出功能从系统导出数据。例如,以跟踪逻辑来导出原始程序寄存器和数据跟踪信息。
加速-采用本地振荡器来提高以高时钟速率运行的设备的数据传输率。
导入-以导入逻辑来从主机导入数据,让开发者可以输入用来调试和集成系统的数据文件。

  这个仿真系统里还包括一个主通信控制器(host communications controller)。
 
  它可以连接到控制整个过程的主调试器。调试器可以位于电脑上或者工作站中,也可以集成到一个集成度更高的开发环境中,或者独立运行。电脑或工作站中构建的代码通过一个通信链路导入到目标中。

  仿真控制器(以及调试器)是一种带有两组不同功能特征的调试工具。其中的一组特征可以提供简单的运行控制,让DSP 开发者能控制DSP 处理器的运行。运行控制的例子有启动、暂停、步进和运行至断点。

  另一组特征则用来捕捉和记录DSP 处理器的活动,正如处理器总线所显示的那样。开发者可以通过一个触发系统来限定控制捕捉这一跟踪信息的条件。该跟踪系统将DSP 处理器总线的活动记录在系统内部或外部的高速RAM 中。

  调试器是在主系统上执行的一个软件组件。它可以监控和控制整个仿真过程,有以下一些常见功能:
启动/运行(Go/Run)- 这个命令将启动目标CPU 的执行。执行是从当前程序计数器的位置和寄存器数值开始的。
停止/暂停(Stop/Halt)- 这一命令用来通知仿真器停止目标CPU 并暂停执行。当执行这一命令时,目标CPU 和寄存器的当前上下文会被保存,以便当处理器再次开始运行时,执行可以继续从原停止点处继续进行。
单步执行(Single-Step)- 这一命令是启动或运行指令的一个特殊形式,但在下一个指令处有一个断点组。它让用户可以连续步进。在每一步,用户都可以观察寄存器、执行堆栈和其它关于系统状态的重要信息。这可能是寻找软件或固件模块的问题时应用最为普遍的命令。
步过/步进(Step-Over/Step Through)- 这个命令和单步执行很相似,但有一个很大的不同。当步过一个子程序调用时,该命令会执行子程序但不会进入子程序。而当采用单步执行命令时,调试器会进入子程序并以一次一条指令的方式执行子程序。如果用户不需要看到子程序或库函数中的每条指令,这一命令可以让用户绕过。
运行至(Run To)- 这个命令可以在程序某个被认为有用的地方设置一个断点,然后运行直到达到该断点。它可以让用户不必多次单步执行便可达到同样的位置。

  DSP 仿真器可以提供DSP 处理器、寄存器和应用软件的可视性,让软件工程师可以了解到应用执行中处理器内部发生的变化。软件工程师可以基于应用内部的硬件信号值和软件位置在应用中设置断点。在这些断点上,用户可以了解到处理器和数据的状态,并确定其应用是否仍在正常运行,还可以在仿真器上执行应用软件的基准化(时序分析)和绘制概图(CPU 加载)。多处理器调试可以让用户同时在多个处理器上调试软件,并依照设置在某个处理器中的条件停止一个或多个处理器,让用户能够在有疑问时捕捉到整个系统的状态。DSP 调试器中的这些功能可以极大地缩短软件开发周期中的调试时间。

  仿真器是直接和DSP 处理器连接的。电气信号被发送到仿真器,仿真器可以接入到处理器,而标准软件调试器则不能。工程师可以浏览并更改寄存器-这是标准软件调试器所没有的。硬件信号发送还可以带来更好的实时控制。仿真器还能实时记录处理器的活动,如果发生问题,开发者就可以有一个系统活动的历史记录来进行分析。

  仿真器相比于标准软件调试器的另一个优势在于它可以调试系统的启动代码。标准软件调试器一般需要目标操作系统来接入系统和通信接口。在系统初始化过程中,这是不能实现的。而仿真器可以提供自己的通信接口(一般是JTAG),能接入到系统的任何部分,达到和CPU 一样的可视性。

  仿真器的另一个优势是可以调试已经损坏的系统。如果目标系统因为某个原因而被损坏,它的操作系统一般会停止运行。此时软件调试器根本排不上用场。而仿真器则不会受到系统损坏的影响。仿真器可以保留重要的跟踪信息和寄存器数值等DSP 处理器状态信息,并对该数据进行分析,以确定导致系统损坏的原因。

  基本仿真组件

  当采用一个DSP 调试器来在硬件平台上进行软件调试时,必须执行一些设置程序,以确保目标处理器能够和调试器兼容。仿真的设置包含了两个工具:一个是仿真器本身(例如TI XDS510 或XDS560)-它控制到达目标和来自目标的信息流,另一个是调试器-它是这一信息的用户接口。在仿真设置之后是目标处理器。

  大多数DSP 处理器中的仿真逻辑都采用联合测试行动组(JTAG)标准连接方法来从处理器内部获取调试信息。

  硬件的调试是通过停止DSP 内核来进行的,这样才可以使信息通过JTAG 信息头被扫描进设备并从设备中扫描出来。该信息是通过符合IEEE 1149.1 JTAG 规格的JTAG 接口来串行传输的。必须注意的是,这个调试方法接近于实时调试,但它是插入式的,因为它需要停止内核来扫描信息。尽管和JTAG 头之间的连接可能是一样的,但用于仿真的扫描链和用于边界扫描的扫描链是不同的。在处理器内部有多种可以扫描信息进出的串行扫描链。扫描链的选择以及每个扫描链所包含的信息由一个微处理器来控制。这个“扫描管理器”的任务是在信息被扫描进出各种处理器的过程中控制该信息,并将之引导在各个调试器窗口之间。

  仿真器主机可以作为扫描管理器,因为它控制着扫描信息在目标和调试器窗口之间的传输。比如,操作系统可以是一台电脑,而JTAG 连接则通过一张ISA 卡(图7)来完成,其它配置也可以实现。当主CPU 或一个独立的处理器控制JTAG 扫描信息时,主机需要有关扫描链中包含的设备的信息。

关键字:采集  接口  编译  汇编  调试  格式化 引用地址: 数字信号处理(DSP )系统测试和调试3

上一篇:数字信号处理(DSP )系统测试和调试2
下一篇:数字信号处理(DSP )系统测试和调试4

推荐阅读最新更新时间:2024-05-02 20:40

基于GPS/GPRS的车辆移动监控终端的设计与实现
车辆监控系统是融合了全球卫星定位技术、地理信息技术和无线通信技术于一体的综合系统。该系统将移动车辆接收到GPS数据(经纬度、高度、时间、速度等)进行解析,并实时地通过无线通信信道上传至监控中心。监控中心在电子地图上对被监控车辆的参数进行显示监控和查询,同时利用无线通信链路向移动终端发送控制和消息。该系统适用于不同的监控场合,经济效益和社会效益明显,可广泛地应用于客运、银行、公安、物流行业、车辆自动导航、公交智能交通管理等领域。 1 GPS与GPRS 全球定位系统(Global Positioning System,GPS)是美国从上世纪70年代开始研制的具有在海、陆、空全方位实时三维导航与定位能力的新一代卫星导航与定位系统,由
[应用]
针对标志及建筑物装饰照明的智能LED控制及接口
  随着LED在发光性能、成本等几乎各个方面的改进,LED的应用范围越来越广,但在各应用领域渗透的比例高低不一。如可寻址标志和建筑物照明这样的商业应用领域中,LED凭借在色彩、总体拥有成本、工作寿命、可靠性和便利性方面的优势,应用非常广泛。如在建筑物装饰照明应用中,使用LED可在建筑物外墙上营造出丰富的色彩,及更好地彰显建筑物的结构。在移动标志应用中,还可以实时更新交通显示屏、视频图像及广告牌上的信息。   安森美半导体身为应用于高能效电子产品的首要高性能硅方案供应商,针对各种LED应用提供宽范围的LED驱动器方案,其中就包括用于可寻址标志和建筑物装饰照明两类常见应用的系列线性驱动器(详见下表)。这些驱动器能够精确地稳定LED
[电源管理]
HI3531ARM调试printf的实现
void UART_Putc(char c) { if (c == 'n') *(unsigned int *)(UART0_ADDR + 0X00) = 'r'; delay_x(0x800); *(unsigned int *)(UART0_ADDR + 0X00) = c; } unsigned int val_i=0; void UART_Print(const char *str,...) { va_list unnamed_p; char *sval; unsigned int tmp=0; va_start( unnamed_p, str); whil
[单片机]
介绍一种关于STM32 ADC 多通道16路电压采集技术
下面介绍一种利用STM32单片机制作的16路多通道ADC采集电路图和源程序。采用USB接口与电脑连接,实则USB转串口方式,所以上位机可以用串口作为接口。电路图中利用LM324作为电压跟随器,起到保护单片机引脚的作用。直接在电脑USB取点,省去外接电源麻烦,实测耗电电流不到20ma. 1.主控电路图: 2. USB转串口电路图 3.LM324电压跟随器电路图 4.滤波电路图 5.16路接口电路图 6.电源电路图 7.16路ADC初始化程序: voidAdc_Init(void) { //先初始化IO口 RCC-》APB2ENR|=0X7《《2;//使能PORTAPORABPORTC口时钟 GPIOA-》CR
[单片机]
介绍一种关于STM32 ADC 多通道16路电压<font color='red'>采集</font>技术
嵌入式系统学习笔记(6)——MCS51汇编语言程序设计
有汇编程序和反汇编程序,可以由机器语言得到汇编语言 不是所有都会默认从0000H开始,保险起见,还是要在开头用ORG 0000H,然后加一条跳转指令到程序存放起始地址 交叉汇编,在一台电脑上汇编,在另一台电脑上运行 注意,除了51单片机之外,其它单片机上电后PC值并不一定是0000H,所以需要根据实际情况放第一条指令的位置。此外,0003H到0023H是中断入口,所以第一条指令只能是0000H到0002H一共三个字节,LJMP指令恰好就是3个字节。跳转后的两个NOP是为了等外接芯片复位,因为外接芯片可能复位比51的CPU慢,这段时
[单片机]
嵌入式系统学习笔记(6)——MCS51<font color='red'>汇编</font>语言程序设计
s3c2410开发板的VGA调试
光买开发板没有LCD,穷啊,只能用VGA的显示器代替。带的资料也没说怎么就支持VGA,只好上网查,还好解决了,虽然不知道linux驱动的原理,但改改寄存器还是会的。下面说说整个过程。 VGA的接口定义如图所示: 板子上的AD芯片是TI的TL5632,该芯片的三个输出引脚与VGA的RED GREEN BLUE相连,它的24个输入引脚与2410的vd 相连,2410的VSYNC和HSYNC直接连到VGA的对应引脚,其他的该接地接地, MONITOR ID这三个编码引脚用不上。 上面是分辨率为640×480、刷新频率为60 Hz、16位彩色显示模式的VGA接口时序图,LCD寄存器中的一些值就由它们决定: *LCDCON1寄存
[单片机]
s3c2410开发板的VGA<font color='red'>调试</font>
(C与汇编语言)ARM9之LPC2132控制LCD1602显示字符串
GPADIR EQU 0xE0028008 GPASET EQU 0xE0028004 GPACLR EQU 0xE002800C EXPORT xmain AREA Init,CODE,READONLY ENTRY xmain ldr r0,=GPADIR ldr r1,=0x3ff str r1, ;A=out ;===========init1602=================
[单片机]
(C与<font color='red'>汇编</font>语言)ARM9之LPC2132控制LCD1602显示字符串
使用STM32调试FMSDR模块及解调FM电台(4)
5. 更换频点使用MSI001解调电台 更换MSI001频点为已知电台的频点 本实验是在配置MSI001的频点为101.7Mhz已知交通广播电台,观察喇叭是否能听到交通广播声音,再调整MSI001的输出幅度。 添加101.7M频点程序 在前面经过FIR滤波后的程序基础上,修改msi001.c文件,增加一个Msi001_FM101_7M_Init函数,初始化msi001的寄存器为接收101.7MHz: 在main.c文件的while循环前,初始化频点到101.7M频点。添加代码如下: 收听广播声音 将编译好的程序下载到开发板,连接喇叭,能听到交通广播声音。 用示波器测量开发板PA5管脚波形, 1ms档位波形 200
[单片机]
使用STM32<font color='red'>调试</font>FMSDR模块及解调FM电台(4)
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved