首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DSP 学习资料 十三

DSP 学习资料 十三


二 .主要命令介绍: • dspcl [-可选参数] -g [文件名(可为多个)] [-z [链接时可选的参数]] dspcl是起到编译器和汇编器的作用的命令。 可选参数将影响对输入文件的处理方式。 文件名可以是一个或多个C源文件,也可以汇编语言源文件,还可以是目标文件。 -g是一个可选项,它的作用是使C编译器生成符号调试信息。如果要调试的是C源 文件,则-g是必选项。 -z是能产生链接器作用的可选项。当-z被选定后,才可选择其后的链接参数。 • dspa [输入文件 [目标文件 [列表文件]]] [-可选参数] dspa是能产生汇编器作用的命令。 输入文件是汇编语言源文件,其缺省扩展名为 asm。如果不给出输入文件名,则汇编 器将自动生成一个。 目标文件既汇编器要生成的目标文件,其缺省扩展名为obj。如果不给出目标文件名, 则汇编器就用输入文件名带上. obj扩展名。 列表文件为可由汇编器选择性生成的列表文件,其缺省扩展名为lst。如果不给出列表 文件名,则除非用参数-l,否则汇编器不会生成列表文件。当选择了参数-l后,汇编器 就用输入文件名为列表文件命名。 • dsplnk [-可选参数] 文件名1,…文件名n dsplnk是能产生链接器作用的命令。 它所带文件名可以是目标文件,链接命令文件或宏文件库。其输入文件缺省扩展名为lst, 其他类型的文件都须指定。缺省的输出文件名为a.out。 引用链接器有三种方式: 1) 在命令行规定可选参数和文件名。下面的例子将file1.obj和file2.obj两个文件链接 起来生成名为link.out的输出文件。 dsplnk file1.obj file2.obj -o link.out 2) 仅仅输入dsplnk命令而不给出文件名和任何可选参数时,链接器将显示: Object file [.obj]: Command files: Output files [a.out]: Options: 3) 将文件名和可选参数写入链接命令文件。例如,假设文件linker.cmd中包含下列行: -o link.out file1.obj file2.obj 此时,执行命令dsplnk linker.cmd就可把两个目标文件链接起来得到输出文件 link.out。 三 .调试器说明 我们开发处理的主要目的是要得到能在’C5x目标系统中执行的程序。你可用下列开发调试 工具中的一种改进和更正你的代码: § 实时电路仿真器 § 测试模板 § 软件模拟器 它们都以C5x调试器作为软件接口,所以,下面详细介绍一下调试器的使用(以C5x的仿 真调试器为例)。 1. 如何启动调试器 首先接好DSP仿真板,开通电源。 然后在DOS下转到目录C:\EMU5X,再键入复位命令EMURST。复位成功后,键入EMU5X就 可进入调试环境。 进入调试环境,你将看到下图2所示的窗口。 图2 2. 如何装入文件及运行 1) 在图2所示命令窗口(command)输入命令load 可装入OUT文件,例; load sample.out 输入命令file可装入C文件,例:file sample.c 在主菜单中选中load和file,同样可以装入所需文件。 2) 键入命令run可运行程序。若程序中设有断点,则执行到断点处为结束,否则一直执行到 程序结尾。也可按F5键运行程序。 按F8键可以单步执行程序。 3) 设置断点可用鼠标直接点中作为断点的代码行,也可在主菜单中选中break,然后根据提 示键入所要设为断点的程序地址。 3. 如何退出调试环境 在command窗口键入quit命令即可。 四 .调试器主要窗口说明 由图2我们可以看到主菜单及四个窗口:DISASSEMBLY窗口,CPU窗口,COMMAND窗口和 MEMORY窗口。下面将逐一介绍: 1. COMMAND窗口用来键入命令,并显示命令及错误信息。用cls命令可清除该窗口的所 有显示内容。 2. CPU窗口显示C5x的寄存器的内容。当你运行程序时,该窗口中的一些显示数值就会 随程序执行结果而变,调试器会使变化了的数值用高亮度显示。 3. DISASSEMBLY窗口显示存储器内容的反汇编代码。它的第一列16位数是存储地址,第 二列16位数则是目标代码,即对应语句的操作码。可用ADDR或DASM命令对该窗口操作,使其 显示以你所指定的地址为头的代码。 4. MEMORY窗口显示存储器的内容。用MEM命令可找到你想看的存储地址的内容。在命令 后加上可选项@prog,则显示的是程序存储空间的内容;若换上@data或不加这样的可选项,窗 口都会显示数据存储空间的内容。 除了这四个主要窗口,还有显示文本文件的FILE窗口,列出所需调用的C函数的CALLS 窗口,显示所选表达式的值的WATCH窗口,显示所选结构,矩阵或指针的内容的DISP窗口等。 此处不一一介绍了,请查阅TI公司TMS320C5x的关于C源程序调试器的用户手册。 3 程序实例 A. Ms320C2X/C5X混合编程举例 例 TMs320C5X的独立C和汇编模块编程。 C主程序 /* cmain.C*/ extern int asmfunc(); /*定义外部的汇编函数*/ int gvar; /*定义全局变量*/ main() { int i; i=asmfuI1c(O; /*调用函数*/ } 汇编语言函数 _asmfunc; /* asmsub.c */ .global_asmfunc .global_gvar .text _asmfunc POPD *+ ;将返回地址保存至c堆栈。 SAR AR0,* ;保护FP SAR AR1, 1 ;保护SP LARK AR0,1 ;帧的长度 LAR AB0, *0+,AR2 ;建立FP和SP LDPK _gvar ;指向 gvar SSXM ;置符号扩展 LAC _gvar ;装入 _gvar至Acc LARK AR2,-3 ;多数偏移 MAR *0+ ;指向参数 ADD *,AR0 ;将参数加至gvar SACL _gvar ;保存在gvar中 LARP AR1 SBRK 2 LAR AR0,* - ;恢复帧指针 PSHD * ; 返回地址压人C2X堆栈 RET END 对上述程序,编译汇编和链接的过程如下: (1)对C程序cmain.c 进行编译形成cmain.obj dspcl -v25_02 cmain.c (2)对汇编程序asmsub.asm 进行汇编形成asmsub: dspa -v25asmsub (3)链接形成可执行程序。 以上讨论了实现DSP芯片混合编滔的三种方法,并举例说明了实现TMS320C2x/C5x混合编程的具体实现方法。利用混合编滔法实现DSP应用程序,既可以便程序具有较好的可读性和可移植性,又可使程序具有较高的效率,是编写实时DSP程序的一种的方法。56 5 5 DSPboot引导实验及要求 5.1 TMS320C50的BOOT设计 在TMS320C5X系列DSP芯片中,TMS320C5l内部具有8K字的掩膜ROM,使用片内的掩膜ROM需要将应用程序交由TI帮助完成掩膜工作,因此在研究开发阶段一般不用内部的掩膜ROM。 TMS320C50虽然没有掩膜ROM,但其内部具有2K字的BOOT ROM,工作在微计算机方式下可以启动BOOT ROM中的引导程序,将用户程序从EPROM、串行口或I/O口引导到10K字的内部RAM或外部的高速RAM中全速运行,下面我们介绍C50的程序引导方法。TMS320C50硬件复位后采样MP/Mc\引脚,如果为低则执行片内的引导程序。引导程序首先进行初始化。初始化工作包括关闭中断(INTM=0),将内部的双存取RAM块B0映射至程序空间(CNF=1),使内部的单存取RAM块在程序空间中有效(RAM=1,OVLY=0),程序和数据空间都选择7个等待状态,数据空间8000H~0FFFFH的32K字设置为全局存储器。用户程序传递完后。撤销全局存储器设置。 C50程序引导共有并行EPROM、并行I/O、串行口和Warm四种方式,其中前三种只有8位和16位两种。引导方式是通过读取全局数据数据空间的0FFFFH单元的低8位来确定的,其内容和引导方式的对应关系如表5.1所示。表5.1中,x表示无效,SRC表示并行方式的6位页地址,ADDR表示Warm方式的6位页地址。 在四种引导方式中,并行EPROM是最常用的引导方式。 EPROM引导方式将存储在EPROM中的程序引导到内部或外部的程序存储器。其中EPROM映射在全局数据空间中,可以是16位宽度,也可以是8位宽度。引导程序在传递用户程序时需要确定以下几个参数:(1)存放用户程序的EPROM起始地址;(2)用户程序的目的地址;(3)用户程序的长度。 EPROM本身的起始地址是由6位SRC左移10位而得,即 15 10 9 8 7 6 5 4 3 2 1 0 <一 SRC - > O O O O O O O O O O 用户程序的目的地址和长度对几种引导方式而言是类似的,其中目的地址由第一个16位字确定,而长度则由第二个16位字确定。 对于16位EPROM方式,EPROM的第一个地址存放目的地址,第二个地址存放程序长度。 如果程序长度为N,则其内容为N-1。接下去依次存放用户程序的第一个字,第二个字,.。,,。,,第N个字。对于8位EPROM方式,EPROM的8位数据线与低8位数据线相连,两个连续的字节组成一个16位字,其中高字节在前,低字节在后。与16位方式一样,前两个字分别为目的地址和程序长度,程序长度按16位字计算。接下去便是用户程序,用户程序也是按照高字节在前,低字节在后的顺序存放。程序引导完后,跳至目的地址开始执行用户程序。由于用户程序是从全局数据空间传递至程序空间,因此EPROM的片选应是总线请求线BR\和数据选择线DS\的与信号,图6.2是一种可能的采用8位EPROM实现程序引导的接口方法。 图6.2利用EPROM引导用户程序 在串行口引导的两种方式中,串行口控制寄存器SPC分别设置为0xxF8H(8位)和0xxFCH (16位),RRST和XRST位设置为1,FSM=1为帧同步方式,FSR由外部提供同步时钟。 FO位根据8位和16位作相应的设置。用XF线表示C50是否准备好接收数据,复位后XF为高,XF变低表明C50已准备好接收数据。 FSSR引脚在XF变低前不应有脉冲。与EPROM方式一样,从串行口接收到的第一个字和第二个字分别为用户程序的目的地址和长度,随后便是用户的程序代码。采用8位串行方式时,一个字由两个字节组成,高字节在前,低字节在后。用户程序引导完后,跳至目的地址开始执行用户程序。 C50也可以从并行的I/O 口引导程序。I/O口的地址固定为50H,可以是16位,也可以是8位。采用XF和BIO\线作为C50与主机之间的握手线。主机发送数据和C50接收数据的过程为:主机将BIO\置高请求数据发送,C50将XF置低表示已准备好接收数据,主机将数据送至IO口并将BIO \置低表示数据有效,C50从50H口读人数据并将XF置高表示数据接收完毕,一次数据传递过程结束。其它与前两种方式相同。 Wann方式严格来说并不是程序引导方式。当程序已经用其它方式(如DMA)传送至程序存储器而只需执行用户程序时,就用这种方式。 Wann方式实际上就是确定用户程序的起始地址,并跳至该地址执行。用户程序的起始地址由表6.2中的ADDR左移10位得到。 应用DSP50实现scdma解扩解调实验 1 解扩解调工作原理 (框图和公式) 2 程序及说明 3 仿真调试及要求
返回列表