有关DSP程序编写和调试

来源:本站
导读:目前正在解读《有关DSP程序编写和调试》的相关信息,《有关DSP程序编写和调试》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《有关DSP程序编写和调试》的详细说明。
简介:文章简单介绍了关于DSP程序的编写和调试过程

DSP仿真器为什么必须连接目标系统(Target)?

DSP的仿真器同单片机的不同,仿真器中没有DSP,提供IEEE标准的JTAG口对DSP进行仿真调试,所以仿真器必须有仿真对象,及目标系统。目标系统就是你的产品,上面必须有DSP。仿真器提供JTAG同目标系统的DSP相接,通过DSP实现对整个目标系统的调试。

仿真工作正常对于DSP的基本要求

1)DSP电源和地连接正确。

2)DSP时钟正确

3)DSP的控制信号RS和HOLD信号接高电平

4)C2000的watchdog关掉。

5)不可屏蔽中断NMI上拉高电平。

CCS或Emurst运行时提示“Can't Initialize Target DSP”

1)仿真器连接是否正常?

2)仿真器的I/O设置是否正确?

3)XDSPP仿真器的电源是否正确?

4)目标系统是否正确?

5)仿真器是否正常?建议使用目标板测试。

DSP的C语言同主机C语言的主要区别?

1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如键盘输入、屏幕显示等。但在CCS中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。

2)DSP的C语言的编译过程为,C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化。

3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位。

4)DSP的C的效率较高,非常适合于嵌入系统。

Link的cmd文件的作用是什么?

Link的cmd文件用于DSP代码的定位。由于DSP的编译器的编译结果是未定位的,DSP没有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。以C5000为例,基本格式为: -o sample.out -m sample.map -stack 100 sample.obj meminit.obj -l rts.lib MEMORY { PAGE 0: VECT: origin = 0xff80, length 0x80 PAGE 0: PROG: origin = 0x2000, length 0x400 PAGE 1: DATA: origin = 0x800, length 0x400 } SECTIONS { .vectors : {} >PROG PAGE 0 .text : {} >PROG PAGE 0 .data : {} >PROG PAGE 0 .cinit : {} >PROG PAGE 0 .bss : {} >DATA PAGE 1

}

如何将OUT文件转换为可以烧写ROM的文件格式?

DSP的开发软件集成了一个程序,可以从执行文件OUT转换到编程器可以接受的格式,使得编程器可以用次文件烧写EPROM或Flash。对于C2000的程序为DSPHEX;对于C3x程序为HEX30;对于C54x程序为HEX500;对于C55x程序为HEX55;对于C6x程序为Hex6x。以C32为例,基本格式为: sample.out -x -memwidth 8 -bootorg 900000h -iostrb 0h -strb0 03f0000h -strb1 01f0000h -o sample.hex ROMS { EPROM: org = 0x900000,len=0x02000,romwidth=8 } SECTIONS { .text: paddr=boot .data: paddr=boot }

在CCS下,OUT文件加载时提示“Data verification failed...”的原因?

Link的CMD文件分配的地址同GEL或设置的有效地址空间不符。中断向量定位处或其它代码、数据段定位处,没有RAM,无法加载OUT文件。解决方法:

1)调整Link的CMD文件,使得定位段处有RAM。

2)调整存储器设置,使得RAM区有效。

TI DSP的C语言的特点,如何使我编写的C更高效?

TI DSP的C语言是标准的ANSI的C,是一个专门优化的C。对于C3x/C5000/C6000的用户,C对于ASM的效率可以达近1:1。 TI的DSP,每个系列有每个的特点。要编制高效的C程序,建议:

1)根据DSP的特点,调整程序编写的流程,任务的分配。

2)数据尽量放在片内。

3)对于要求高的子程序,用人工优化或ASM编写。

为什么要使用BIOS?

1)BIOS是Basic I/O System的简称,是基本的输入、输出管理。

2)用于管理任务的调度,程序实时分析,中断管理,跟踪管理和实时数据交换。

3)BIOS是基本的实时系统,使用BIOS可以方便地实现多任务、多进程的时间管理。

4)BIOS是eXpress DSP的标准平台,要使用eXpress DSP技术,必须使用BIOS。

如何从老的编译工具升级到CCS?

1)在Project菜单下,创建project。

2)将源文件(C和ASM文件),加入project中。

3)将Link的CMD加入project中,并将CMD中的库文件设置去除。

4)将include文件和库文件加入project中

5)设置编译的选项。

软件等待的如何使用?

DSP的指令周期较快,访问慢速存储器或外设时需加入等待。等待分硬件等待和软件等待,每一个系列的等待不完全相同。

1)对于C2000系列: 硬件等待信号为READY,高电平时不等待。软件等待由WSGR寄存器决定,可以加入最多7个等待。其中程序存储器和数据存储器及I/O可以分别设置。

2)对于C3x系列: 硬件等待信号为/RDY,低电平是不等待。软件等待由总线控制寄存器中的SWW和WTCNY决定,可以加入最多7个等待,但等待是不分段的,除了片内之外全空间有效。

3)对于C5000系列: 硬件等待信号为READY,高电平时不等待。软件等待由SWWCR和SWWSR寄存器决定,可以加入最多14个等待。其中程序存储器、控制程序存储器和数据存储器及I/O可以分别设置。

4)对于C6000系列(只限于非同步存储器或外设): 硬件等待信号为ARDY,高电平时不等待。 软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时序可以设置,可以方便的同异步的存储器或外设接口

中断向量为什么要重定位?

为了方便DSP存储器的配置,一般DSP的中断向量可以重新定位,即可以通过设置寄存器放在存储器空间的任何地方。注意:C2000的中断向量不能重定位。

什么是boot loader?

DSP的速度尽快,EPROM或flash的速度较慢,而DSP片内的RAM很快,片外的RAM也较快。为了使DSP充分发挥它的能力,必须将程序代码放在RAM中运行。为了方便的将代码从ROM中搬到RAM中,在不带flash的DSP中,TI在出厂时固化了一段程序,在上电后完成从ROM或外设将代码搬到用户指定的RAM中。此段程序称为“boot loader”。

Boot有问题如何解决?

1)仔细检查boot的控制字是否正确。

2)仔细检查外部管脚设置是否正确。

3)仔细检查hex文件是否转换正确。

4)用仿真器跟踪boot过程,分析错误原因。

提醒:《有关DSP程序编写和调试》最后刷新时间 2024-03-14 01:10:37,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《有关DSP程序编写和调试》该内容的真实性请自行鉴别。