1.获取工程模板基础文件(DSP28335开发板)
工程模板文件下载地址:
链接:https://pan.baidu.com/s/1xpuetz5HpwmTSM4lRzuHag
提取码:4djw
①:DSP2833x_common文件夹:存放了DSP2833x开发所需的外设、内核、DSP运算库、CMD等文件。
②:DSP2833x_headers文件夹:存放了DSP2833x开发所需的外设头文件、带和不带BIOS CMD等文件。(nonBIOS.cmd为不带系统)
2.创建工程模板
此处的28335_RAM_lnk.cmd是自动生成的,此处删除,后续会重新添加进新的文件夹中,让整个工程的结构框架更清晰。
一个完整的基础工程有哪些文件所构成呢?
①首先需要仿真调试或者flash烧写所需的.cmd文件和DSP的BIOS或nonBIOS .cmd文件。
②其次需要我们使用的芯片的.ccxml目标配置文件。
③芯片内核及外设.c源文件,比如DSP2833x_Gpio.c、DSP2833x_PieCtrl.c等。
④芯片内核及外设.h头文件,比如DSP2833x_Gpio.h、DSP2833x_PieCtrl.h等。
⑤DSP .lib库文件,常用的如IQmath.lib等。
在新建工程的目录下建立三个文件夹,用来分别放置不同的文件,新建完成后,CCS会自动加入,不需要手动添加。
从模板工程文件夹中将一下这些必须的文件添加到当前的文件夹下
建立.c文件(可以在文件目录下右键点击新建,也可已在CCS编译器中新建,建议在CCS中新建):
以下以DSP28335学习开发板提供的Example文件为例演示
main.c文件内需要编写的程序如下:
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
void main()
{
}
点击编译
出现报错,此时提示没有找到相应的头文件,解决方式如下:
添加一段例程代码:
main.c文件
/*
* main.c
*
* Created on: 2018-3-21
* Author: Administrator
*/
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#include "leds.h"
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,通过循环占用CPU,达到延时功能
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void delay(void)
{
Uint16 i;
Uint32 j;
for(i=0;i<32;i++)
for (j = 0; j < 100000; j++);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
InitSysCtrl();
LED_Init();
int p=0;
while(1)
{
p++;
if((p%2)==0)
{
LED2_TOGGLE;
}
delay();
}
}
led.c文件
/*
* led.c
*
* Created on: 2018-1-20
* Author: Administrator
*/
#include "leds.h"
/*******************************************************************************
* 函 数 名 : LED_Init
* 函数功能 : LED初始化函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void LED_Init(void)
{
EALLOW;
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;// 开启GPIO时钟
//LED1端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为通用GPIO功能
GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出
GpioCtrlRegs.GPCPUD.bit.GPIO68=0;//使能GPIO上拉电阻
//LED2端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO67=0;
GpioCtrlRegs.GPCDIR.bit.GPIO67=1;
GpioCtrlRegs.GPCPUD.bit.GPIO67=0;
//LED3端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO66=0;
GpioCtrlRegs.GPCDIR.bit.GPIO66=1;
GpioCtrlRegs.GPCPUD.bit.GPIO66=0;
//LED4端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO65=0;
GpioCtrlRegs.GPCDIR.bit.GPIO65=1;
GpioCtrlRegs.GPCPUD.bit.GPIO65=0;
//LED5端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO64=0;
GpioCtrlRegs.GPCDIR.bit.GPIO64=1;
GpioCtrlRegs.GPCPUD.bit.GPIO64=0;
//LED6端口配置
GpioCtrlRegs.GPAMUX1.bit.GPIO10=0;
GpioCtrlRegs.GPADIR.bit.GPIO10=1;
GpioCtrlRegs.GPAPUD.bit.GPIO10=0;
//LED7端口配置
GpioCtrlRegs.GPAMUX1.bit.GPIO11=0;
GpioCtrlRegs.GPADIR.bit.GPIO11=1;
GpioCtrlRegs.GPAPUD.bit.GPIO11=0;
GpioDataRegs.GPCSET.bit.GPIO68=1;
GpioDataRegs.GPCSET.bit.GPIO67=1;
GpioDataRegs.GPCSET.bit.GPIO66=1;
GpioDataRegs.GPCSET.bit.GPIO65=1;
GpioDataRegs.GPCSET.bit.GPIO64=1;
GpioDataRegs.GPASET.bit.GPIO10=1;
GpioDataRegs.GPASET.bit.GPIO11=1;
EDIS;
}
led.h
/*
* led.h
*
* Created on: 2018-1-20
* Author: Administrator
*/
#ifndef _LEDS_H_
#define _LEDS_H_
#include "DSP2833x_Device.h" // DSP2833x 头文件
#include "DSP2833x_Examples.h" // DSP2833x 例子相关头文件
#define LED1_OFF (GpioDataRegs.GPCSET.bit.GPIO68=1)
#define LED1_ON (GpioDataRegs.GPCCLEAR.bit.GPIO68=1)
#define LED1_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO68=1)
#define LED2_OFF (GpioDataRegs.GPCSET.bit.GPIO67=1)
#define LED2_ON (GpioDataRegs.GPCCLEAR.bit.GPIO67=1)
#define LED2_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO67=1)
#define LED3_OFF (GpioDataRegs.GPCSET.bit.GPIO66=1)
#define LED3_ON (GpioDataRegs.GPCCLEAR.bit.GPIO66=1)
#define LED3_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO66=1)
#define LED4_OFF (GpioDataRegs.GPCSET.bit.GPIO65=1)
#define LED4_ON (GpioDataRegs.GPCCLEAR.bit.GPIO65=1)
#define LED4_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO65=1)
#define LED5_OFF (GpioDataRegs.GPCSET.bit.GPIO64=1)
#define LED5_ON (GpioDataRegs.GPCCLEAR.bit.GPIO64=1)
#define LED5_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO64=1)
#define LED6_OFF (GpioDataRegs.GPASET.bit.GPIO10=1)
#define LED6_ON (GpioDataRegs.GPACLEAR.bit.GPIO10=1)
#define LED6_TOGGLE (GpioDataRegs.GPATOGGLE.bit.GPIO10=1)
#define LED7_OFF (GpioDataRegs.GPASET.bit.GPIO11=1)
#define LED7_ON (GpioDataRegs.GPACLEAR.bit.GPIO11=1)
#define LED7_TOGGLE (GpioDataRegs.GPATOGGLE.bit.GPIO11=1)
void LED_Init(void);
#endif /* LED_H_ */
此时编译会提示led.h文件找不到路径,需要按照上一步的操作增加led.h文件夹的路径
编译成功后,进入调试模式:
此时开发板会出现led等交替闪烁的现象,表示模板新建成功且运行正确。
CCS编译器中如何修改Code区代码字体?
按住Ctrl键后右击鼠标,弹出如下对话框
这里可以选择修改Code区域的字体,也可以修改Build Console的字体。
此处可以任意修改自己想要展示的字体样式。