李天生的笔记

导航

PICCOLO工程建立并点亮发光二极管全过程

软硬件环境

通用PC机:IBM T60

操作系统:Windows XP

Piccolo处理器型号:TMS320F28023PTT

仿真器:SEED-USB-XDS510PLUS

编程环境:Code Composer Studio (Version 3.3.38.2)

准备工作

1 安装Code Composer Studio;

2 安装SEED-USB-XDS510PLUS驱动;

3 下载piccolo系列处理器TI官方头文件及代码示例,并安装。

下载地址:http://focus.ti.com/docs/toolsw/folders/print/sprc832.html

工程建立步骤

1 配置目标板

(1) 打开目标板配置程序

(2) 在窗口中点击Create Board,然后选SEED SEEDXDS510USB Emulator,最后点Add

(3) 在弹出的窗口中首先给目标板配置输入名称,不固定这里写F28023 SEEDXDS510USB Emulator;然后选择仿真器配置文件如下图,最后点Next,再点Finish。

(4) 给配置添加处理器如下图:

(5) 在弹出的窗口中添加GEL文件,由于我用的芯片为tms320f28023,所以在安装的TI官方头文件目录中的DSP2802x_common/gel内找到f28023.gel文件,如下图所示添加到配置中,最后点OK。

(6)到此配置目标板完成,点Save & Quit按钮,打开CCS环境。这时可以测试一下,目标板上电,连接仿真器,点Debug下的connect已经可以和目标板正常连接了。

2 建立工程

  1. 点Project/new,输入工程路径及工程名

  2. 给工程添加必要文件,包括头文件(.h)、库文件(.lib)、CMD文件(.cmd)、源文件(.c .asm)。

    最好将TI官方头文件安装目录的DSP2802x_common DSP2802x_headers 文件夹复制到工程目录中,方便管理。

    添加头文件:

    右键点击工程名,选择Build Options,在Compiler标签内点Preprocessor,在右侧的Include Search Path内输入头文件路径,官方的头文件在DSP2802x_common DSP2802x_headers 文件夹内的include下,多个头文件路径用分号隔开。我的工程在这里输入"D:\User\MyProjects\CCS\common\DSP2802x_headers\include; D:\User\MyProjects\CCS\common\DSP2802x_common\include"不含引号。

    添加其他文件的方法:右键点击工程名选择Add Flies to Project,然后在对话框的文件类型中选择需要的类型。

    添加库文件:

    rts2800_ml.lib;在CCS V3.3的安装目录下的\C2000\cgtools\lib内可以找到。

    添加CMD文件:

    一般调试,分别添加\DSP2802x_common\cmd下的28023_RAM_lnk.cmd(根据实际芯片型号选择)和\DSP2802x_headers\cmd下的DSP2802x_Headers_nonBIOS.cmd即可。

    添加源文件:

    安需添加,这里完成点亮LED,只需添加\DSP2802x_headers\source下的DSP2802x_GlobalVariableDefs.c和\DSP2802x_common\source下的DSP2802x_DefaultIsr.c、DSP2802x_PieCtrl.c、DSP2802x_PieVect.c、DSP2802x_SysCtrl.c、DSP2802x_usDelay.asm。

3 配置工程

设置堆栈空间大小,右键点击工程名,选择Build Options,在Linker标签内Basic下的Stack Size一般输入0x200。

4 编写主函数,并添加到工程中

点亮一个LED。LED的阴极K接GPIO12,阳极A接GPIO5。

#include "DSP28x_Project.h"

#define LED_K GpioDataRegs.GPADAT.bit.GPIO12

#define LED_A GpioDataRegs.GPADAT.bit.GPIO5

void main(void)

{

InitSysCtrl();

DINT;

InitPieCtrl();

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable();

EALLOW;

GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0; //设置GPIO12为通用IO口

GpioCtrlRegs.GPADIR.bit.GPIO12 = 1; //设置GPIO12为输出口

GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0; //设置GPIO5为通用IO口

GpioCtrlRegs.GPADIR.bit.GPIO5 = 1; //设置GPIO5为输出口

EDIS;

LED_A = 0;

LED_K = 0;

for(;;)

{

      

    LED_A = 0;

        DELAY_US(1000000); //延时1秒

        LED_A = 1;

        DELAY_US(1000000);

}

}

5 实际效果

posted on 2010-10-08 11:49  李天生  阅读(990)  评论(0)    收藏  举报