ccs 移植创建新工程_TMS320F28377S 学习笔记3 搭建完全可移植的CCS9.3工程

文章目录

1. 工程文件复制

CCS新建空白工程

官方文件拷贝

库文件整理

添加F2837xS_Headers_nonBIOS.cmd

其他修改

测试代码

这是第二次写类似的文章了,忽略一些细节,更多内容可以参考:TMS320F280049C 学习笔记2 搭建完全可移植的CCS9.3工程

参考资料位于C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\docs 的《F2837xS_FRM_EX_UG.pdf》

1. 工程文件复制

CCS新建空白工程

官方文件拷贝

将C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\common下的source文件夹整体复制到工程文件夹。

将C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\headers\source下的F2837xS_GlobalVariableDefs.c复制到刚才的source文件夹。

将C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\common的include文件夹复制到工程文件夹。

将C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\headers\include内的所有文件复制到刚才的文件夹内。

将C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\common\cmd中的下列4个文件复制到工程文件夹

复制库函数,这些文件都在C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\driverlib\f2837xs\driverlib下,需要分别操作,具体如下:

将所有.h文件复制到include文件夹

在工程文件夹中新建C_lib文件夹,driverlib中的所有.c文件拷贝进去。

将ccs和inc两个文件夹直接复制到工程文件夹。

此时的工程文件夹如下图所示:

库文件整理

删除ccs文件夹中的多余的文件:

删除与coff相关的文件

添加F2837xS_Headers_nonBIOS.cmd

文件在C:\ti\C2000Ware_DigitalPower_SDK_3_00_00_00\c2000ware\device_support\f2837xs\headers\cmd 需要将其复制到工程文件夹

其他修改

大部分可参考之前的博文,有一个多出来的文件重复定义了一些关键函数,目前把这个在编译中除外了

还有一点是预定义不同:

预定义_DUAL_HEADERS之后就可以同时使用库函数编程和寄存器编程了。

测试代码

令LaunchPad的红色Led闪烁的程序

#include "F28x_Project.h"

#include "device.h"

#include "math.h"

void main(void)

{

// 初始化时钟和外设 Initialize device clock and peripherals

Device_init(); // 库函数编程初始化

// InitSysCtrl(); // 寄存器编程初始化,与上一行等效

/*//库函数版配置

// 初始化GPIO并设置为推挽输出 Initialize GPIO and configure the GPIO pin as a push-pull output

Device_initGPIO();

GPIO_setPadConfig(DEVICE_GPIO_PIN_LED1, GPIO_PIN_TYPE_STD); // Push-pull output or floating input

GPIO_setDirectionMode(DEVICE_GPIO_PIN_LED1, GPIO_DIR_MODE_OUT);

*/

InitGpio(); //寄存器指令配置

GPIO_SetupPinMux(DEVICE_GPIO_PIN_LED1, GPIO_MUX_CPU1, 0);

GPIO_SetupPinOptions(DEVICE_GPIO_PIN_LED1, GPIO_OUTPUT, GPIO_PUSHPULL);

// 初始化PIE并清空PIE寄存器,关闭CPU中断

// Initialize PIE and clear PIE registers. Disables CPU interrupts.

Interrupt_initModule();

// 初始化PIE向量表

// Initialize the PIE vector table with pointers to the shell Interrupt

// Service Routines (ISR).

Interrupt_initVectorTable();

// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)

EINT;

ERTM;

float a=cos((float)3.1415926/4); // FPU32

float b=__sin((float)(3.14/4)); // TMU

for(;;)

{

// Turn on LED

// 硬件电路设计是GPIO输出低电平时LED亮

GPIO_writePin(DEVICE_GPIO_PIN_LED1, 0);

// 延迟0.5s Delay for a bit.

DEVICE_DELAY_US(500000);

// Turn off LED

GPIO_writePin(DEVICE_GPIO_PIN_LED1, 1);

// Delay for a bit.

DEVICE_DELAY_US(500000);

}

}

你可能感兴趣的:(ccs,移植创建新工程)