DSP实验2&实验3-点亮LED和调试——基于TMS320VC5509
添加头文件的路径:如果工程有引用的头文件,且头文件与main函数所在的.c文件不在同一路径下,需要在"Build Option编译选项"->"Linker"->"Libraries"->"Search Path (-i)"中填写头文件的路径。在项目栏对工程右键,选择"Add Files to Project...",将工程对应的路径下的"led_5509.c"、"sdram_init.c"、"ut
目录
2. 工程的编译(包括:建立工程,创建一个新文件。添加CMD配置文件,添加文件到工程。
3. 工程的编译和连接。(包括:编译链接前的设置,对工程进行编译和链接。)
观前补充:
1. 我试过实验室的PC机与实验箱连接,但是CCS软件内提示没有连接,尝试重复连接会提示失败。尝试重新连接USB以及串口会导致实验室的PC机蓝屏。
2. 我也试过自己带笔记本电脑,但是从实验室的PC机拷贝的驱动程序安装到笔记本上后,在笔记本与实验箱连接时,CCS软件内同样会提示DSP仿真器没有连接,重新连接同样会提示连接失败。
因此做到编译完成后,我无法再进行下一步的操作了,又要写出实验报告,后续的操作只能照搬实验手册中的内容。
3. 补充说明,老师的安排是实验2写点亮LED的内容,实验3写编译和调试的内容。
一、实验目的
通过本实验,能够对TMS320VC5509A的实验开发快速入门。了解如何搭建实验环境,如何使用CCS3.3集成开发环境,学会如何进行编辑源程序、编译链接,生成包含调试信息的映像文件和可以直接烧写到Flash中的二进制可执行文件。
二、 实验器材/环境
1. SICELab-DSP2X5X实验箱 1台;
2. xds510-usb2.0仿真器 1台;
3. AC电源线 1根;
4. USB2.0通讯电缆线 1根;
5. 计算机 1台;
6. CCS_3.3集成环境 1份。
三、 实验步骤
1. 基于CCS3.3的实验环境搭建和测试
打开CCS_Setup,在Family选择"C55XX",在Platform选择"TDS510USB",之后在下列的CPU型号中选择"C5509 TDS510USB Emulator",对应实验箱上的C55x系列的DSP芯片。最后点击"Add",添加该型号的芯片。如果先前已经配置的不同信号的芯片,需要先移除。

2. 工程的编译(包括:建立工程,创建一个新文件。添加CMD配置文件,添加文件到工程。
2.1 新建工程
进入CCS,在菜单点击"Project"一栏,选择"New...",新建项目。

在弹窗"Project Creation"中,输入工程名字、工程位置、工程最终要生成的文件类型(默认为.out可执行文件)和对应的DSP芯片型号(默认即可)。

我这里设置的工程名为"led_5509",工程存放的绝对路径为 "C:\Users\Administrator\Desktop\tmp\led_5509\",其他设置为默认。
需要注意的是,工程存放的路径不能有中文,否则会报错,导致后续的步骤无法进行。
点击"Finish",完成工程的新建。

可以在项目栏发现多出了新建的空的工程。
2.2 为工程添加文件
一个完整的工程应该包括至少一个CMD文件和一个".c" 文件或".asm"文件。其他的文件,例如“.h”头文件、.lib库文件是可选的。
在新建好的工程的基础上,在菜单栏"File"->"New"->“Source File”,新建源文件。

在新建的源文件中输入以下代码:
//----------------------------------------------------------------------------
// 定义指示灯寄存器地址和寄存器类型
#define LBDS *(int *)0x600000
// 子程序接口
void Delay(unsigned int nDelay); // 延时子程序
main()
{
unsigned int uLED[4] = {1, 2, 4, 8}; // 控制字,逐位置 1: 0001B 0010B 0100B 1000B
int i;
PLL_Init(72); // 初始化 DSP 运行时钟
SDRAM_init(); // 初始化 EMIF 接口
LBDS = 0x0;
while (1)
{
for (i = 0; i < 4; i++)
{
LBDS = uLED[i]; // 正向顺序送控制字
Delay(2560); // 延时
}
for (i = 3; i >= 0; i--)
{
LBDS = uLED[i]; // 反向顺序送控制字
Delay(2560); // 延时
}
}
}
void Delay(unsigned int nDelay)
{
int i, j, k = 0;
for (i = 0; i < nDelay; i++)
{
for (j = 0; j < 1024; j++)
{
k++;
}
}
}
//--------------------------------------------------------------------------
注意代码的最后一行要留有空行,否则后续的编译会报错,报错提示说"最后一行需为空行"。
接着,保存文件,命名为"led_5509",类型为".c"文件,保存到与工程相同的路径下。

保存完成后,从实验箱对应的光盘路径下找到"\VC5509\u_mode"文件夹下的所有文件,拷贝至工程目录下,后续的编译会使用到这些文件。
在项目栏对工程右键,选择"Add Files to Project...",将工程对应的路径下的"led_5509.c"、"sdram_init.c"、"util.c"和"VC5509.cmd"添加到工程中(按住ctrl键可以同时选中多个,一并添加到工程中)。


添加完成后,项目栏应该显示以下文件:

3. 工程的编译和连接。(包括:编译链接前的设置,对工程进行编译和链接。)
3.1 编译链接前的设置(配置)
在菜单选则"Project"->"Build Options..."来对工程进行配置:

将"Compiler"->"Advanced"中的"Memory Model"改成“Large (-ml)”:

接着,确认"Compiler"->"Diagnostics"下的参数是不是全部为空,如果不是,需要修改:

添加头文件的路径:如果工程有引用的头文件,且头文件与main函数所在的.c文件不在同一路径下,需要在"Build Option编译选项"->"Linker"->"Libraries"->"Search Path (-i)"中填写头文件的路径。路径可以是绝对路径,也可以是相对路径。
补充:
Libraries,一般指的是库文件,如动态库和静态库。
这里的"Search Path (-i)"中的"-i"是编译器的命令参数(-include),用于告诉编译器头文件的路径。例如"gcc ./main.c -i ./"或“gcc ./main.c -include ../”。

3.2 对工程进行编译和链接
选择菜单栏"Project"->"Rebuild All",重新编译工程,相当于先make clean再make 工程。

编译时终端会提示定义的vectors未指定扇区:

查阅资料后发现,需要修改"VC5509.cmd"文件中的".vectors",将它改成"vectors":

修改完成后,再重新编译,这时终端提示无错误无警告,说明编译成功:

提示:由于连接不上仿真器和实验箱的DSP,以下的步骤只能截取实验手册的内容。
4. 开始调试。(包括:装载目标代码,调试方法。)
如果软件连接上了实验箱的DSP平台,软件左下角的图标会显示绿色:

如果软件未连接DSP,需要在菜单->“Debug”->"Conneced"重新连接,直到连接成功。
4.1 装载目标代码
选择菜单栏"File"->"Load Porgram...":

将目标代码下载到系统中。
4.2 调试
- 运行程序
在菜单栏"Debug"->“Run”运行程序:

也可以点击工具栏中的"Run"对应的快捷图标:

运行后,可以看到5509核心板上的LED3-LED6循环点亮。
- 暂停运行
程序在运行时,可以在菜单栏"Debug"->"Halt"暂停程序:

也可以点击工具栏中"Halt"对应的快捷图标:

- 断点运行
将光标移至要设置断点的那一行,选中,然后单击工具栏的断点开关按钮或按F9:

此时,在该行程序前面会出现一个红点,表示断点设置成功。然后,点击工具栏中"RUN"对应的快捷图标:

按下图标后,观察运行的结果:5509核心板上的LED闪亮一次。
- 取消断点
将光标移植已经设置断点的一行,选中,然后点击工具栏断点开关按钮或按F9,取消该断点,该行对应的断点会消失。
- 单步调试

- 其他调试手段

5. 查看程序中的数据。(包括:查看寄存器、查看存储器。)
5.1 查看寄存器
选择菜单栏"View"->"CPU Registers"->"CPU Register":

可以看到,出现了CPU Register中央处理器的寄存器窗口:

用同样的方式,选择菜单栏"View"->"CPU Registers"->"Status Register",可以看到,打开了Status Register状态寄存器窗口:

5.2 查看存储器
选择菜单栏"View"->"Memory...":

出现了“Memory Windows Options”窗口,可以从中查看Data、Program、I/O单元中的内容。
更多推荐

所有评论(0)