1 新工程的创建
点击File–>New–>CCS Project,进入以下窗口:
2 代码编写
CCS工程中必要的文件有两种:
- c源文件:程序代码本体;
- .cmd文件:用于指导内存的分配。
2.1 main.c源文件
#define HWREG(x) *(volatile unsigned int *)(x) //volatile的作用:每次都从指定的地址读取寄存器数据,读寄存器时必加,如果不加,连续两条读寄存器命令,编译器会优化掉其中一条
#define KICK0 0x02620038 //KICK保护寄存器0地址
#define KICK1 0x0262003C //KICK保护寄存器1地址
#define PINMUX 0x02620580 //GPIO引脚复用控制寄存器地址
#define GPIO_REG_BASE 0x02320000 //GPIO控制寄存器基址
#define GPIO_DIR 0x10 //GPIO方向控制寄存器偏移地址
#define GPIO_OUTDATA 0x14 //GPIO数据寄存器偏移地址
int main(void)
{
/* 1. 解锁KICK机制:管脚复用寄存器受KICK机制保护,因此配置复用前要解锁KICK */
HWREG(KICK0) = 0x83E70B13;
HWREG(KICK1) = 0x95A4F1E0;
/* 2. 配置管脚复用寄存器为GPIO功能 */
HWREG(PINMUX) |= (1 << 27) | (1 << 26) | (1 << 23) | (1 << 22) | (1 << 19) ; //将管脚复用寄存器第19,22,23,26,27位置1
/* 3. 配置GPIO方向为输出 */
HWREG(GPIO_REG_BASE + GPIO_DIR) = ~((1 << 27) | (1 << 26) | (1 << 23) | (1 << 22) | (1 << 19));//将GPIO方向控制寄存器第19,22,23,26,27位置0
/* 4. 配置GPIO相应管脚输出高电平,控制LED亮 */
HWREG(GPIO_REG_BASE + GPIO_OUTDATA) = (1 << 27) | (1 << 26) | (1 << 23) | (1 << 22) | (1 << 19);
return 0;
}
2.2 .cmd文件
右击工程–>New–>File,进入文件创建窗口
注:CCS对扩展名敏感,文件扩展名必须为.cmd。
-stack 0x1000
-heap 0x1000
MEMORY //内存描述(仅在本文件内有效)
{
MSMCSRAM o 0xC0000000 l = 0x00100000 //将代码放到多核共享内存中;o代表内存段起始地址;l代表内存段长度
}
SECTIONS //内存段描述
{
/* 一些c语言所必须的段 */
.text > MSMCSRAM //代码段
.cinit > MSMCSRAM //触发表段
.const > MSMCSRAM //常量表段
.switch > MSMCSRAM //跳转表段
.stack > MSMCSRAM //栈空间
.fardata > MSMCSRAM //初始化非静态程序变量
.cio > MSMCSRAM //DSP与主机通讯时的缓冲区
}
之后编译即可。