TMS320F28027之创建工程

       参照TI的driver_example创建CCS5.2的工程,要求绝对的移植性,这个工程复制到任何一台装有CCS v5的电脑上都能编译通过,不需要改动任何地方,包括路径。

       首先,下载安装TI的2802x C/C++ Header Files and PeripheralExamples,以2802x为例,下载地址:http://www.ti.com/tool/sprc832

        建立一个文件夹,按照项目的意义命名,最好保存在全英文路径目录下。


        然后,把2802x C/C++ Header Files andPeripheral Examples安装目录下的DSP2802x_common文件夹和DSP2802x_headers文件夹复制到这个文件夹里。


       然后在这个文件夹里在新建一个文件夹,命名为project。


       在2802x C/C++ Header Files andPeripheral Examples安装目录下找到需要用到的cmd文件和asm文件复制到这个文件夹下,如下图:


       在此文件夹下新建一个文件夹,命名为src:

 

      打开src文件夹,在2802x C/C++ Header Files andPeripheral Examples安装目录下找到这些文件复制到src中


      如果还需要其他的文件,比如要用到AD,就把DSP2802x_Adc.c文件也复制到此文件夹中,这个文件夹用来放c语言的源文件。

       然后,打开CCS v5。单击Project,选择New CCS Project。按下图设置:


      

       然后看到ccs左侧的资源管理视图中已经出现了我们刚刚建立的test的工程。我们刚刚建立的test的工程。


      

     右击test项目,单击Properties



在General下可以设置芯片,仿真器,cmd文件等


Optimization页面下可以设置优化等级。

Include Options页面可以设置头文件路径。我们如下设置:


在Predefined Symbols页面下可以定义一些宏,用于条件编译等

在C2000 Linker下的File Search Path页面可以设置库文件的路径。我们如下设置:



右击src,新建一个文件,这里命名为main.c


在main.c中写下测试程序,点击编译,如果有c2000 Launchpad,点击Debug,把程序下到tms320f28027的ram里调试,将会看到板子上的流水灯。以后创建工程就以此为模板,复制修改即可。


测试代码:

#include "DSP28x_Project.h"     // Device Headerfile and Examples Include File

void Gpio_select(void);

void main(void)
{

// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP2802x_SysCtrl.c file.
   InitSysCtrl();

// Step 2. Initalize GPIO:
// This example function is found in the DSP2802x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio();  // Skipped for this example

// For this example use the following configuration:
   Gpio_select();

// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
   DINT;

// Initialize PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the DSP2802x_PieCtrl.c file.
   InitPieCtrl();

// Disable CPU interrupts and clear all CPU interrupt flags:
   IER = 0x0000;
   IFR = 0x0000;

// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example.  This is useful for debug purposes.
// The shell ISR routines are found in DSP2802x_DefaultIsr.c.
// This function is found in DSP2802x_PieVect.c.
   InitPieVectTable();


// Step 4. Initialize all the Device Peripherals:
// This function is found in DSP2802x_InitPeripherals.c
// InitPeripherals(); // Not required for this example

// Step 5. User specific code:

   while(1)
   {
	   GpioDataRegs.GPADAT.all = 0x0000000e;
	   DELAY_US(1000000);
	   GpioDataRegs.GPADAT.all = 0x0000000d;
	   DELAY_US(1000000);
	   GpioDataRegs.GPADAT.all = 0x0000000b;
	   DELAY_US(1000000);
	   GpioDataRegs.GPADAT.all = 0x00000007;
	   DELAY_US(1000000);
   }
}

void Gpio_select(void)
{

    EALLOW;
	GpioCtrlRegs.GPAMUX1.all = 0x00000000;  // All GPIO
	GpioCtrlRegs.GPAMUX2.all = 0x00000000;  // All GPIO
	GpioCtrlRegs.GPBMUX1.all = 0x00000000;  // All GPIO
    GpioCtrlRegs.GPADIR.all = 0xFFFFFFFF;   // All outputs
    GpioCtrlRegs.GPBDIR.all = 0x0000000F;   // All outputs
    EDIS;

}
//=========================================================================
// No more.
//=========================================================================






你可能感兴趣的:(DSP,C28x)