目录

观前补充:

一、实验目的

二、 实验器材/环境

三、 实验步骤

1. 基于CCS3.3的实验环境搭建和测试

2. 工程的编译(包括:建立工程,创建一个新文件。添加CMD配置文件,添加文件到工程。

2.1 新建工程

2.2 为工程添加文件

3. 工程的编译和连接。(包括:编译链接前的设置,对工程进行编译和链接。)

3.1 编译链接前的设置(配置)

3.2 对工程进行编译和链接

4. 开始调试。(包括:装载目标代码,调试方法。)

4.1 装载目标代码

4.2 调试

5. 查看程序中的数据。(包括:查看寄存器、查看存储器。)

5.1 查看寄存器

5.2 查看存储器


观前补充:

        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单元中的内容。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐