基于LM3S5956的TI集成开发环境CCS项目创建笔记
题外话:
最近想学习一下操作系统相关的知识,弥补一下自己计算机方面的先天不足,一直感觉操作系统非常的深奥,对操作系统的移植有着浓厚的兴趣,于是想趁机跟自己的工作联系起来,在操作系统方面选择了较为简单的uc/os II入门,在系统移植方面打算将uc/os II移植到工作上的TI的TMS320TCI6618上面去,为了更好的入门,为了后面在DSP上的移植积累,所以我选择了首先将uc/os II移植到同是TI的资料较多的Cortex-M3系列的单片机LM3S5956上面去(TCI6618刚开始太复杂了 呵呵),IDE也选择了TI的CCS。参考资料:
TI:Quickstart-Eval-Kit-CCS.pdf利尔达:LSDEV-3S5956-V1.0 实验指导书.pdf
爱板网:
第一步 创建新项目
1.打开CCS,选择File -> New -> CCS Project2.正确选择器件,Connection
第二步 加入启动文件startup_ccs.c
从之前的Project中,比如已经安装的StellarisWare\boards\ek-lm4f120xl\project0StellarisWare\boards\ek-lm3s6965\blinky 下第三步 加入新文件
选择File -> New -> Source File 创建一个新文件 mian.c直接拷贝利尔达LM3S5956开发板在Keil开发环境下的的GPIO实例代码:
点击(此处)折叠或打开
-
//-----------------------------------------------------------------------------
-
//
-
// gpio闪灯程序
-
// 源文件(*.c)
-
//
-
//
-
// 版权所有(C)2005-2010 利尔达科技有限公司
-
//
-
//
-
// 文件名 : gpio_blinky.c
-
// 作者 : nmy
-
// 生成日期 : 2010-09-11
-
//
-
// ARM内核 : ARMv7M Cortex-M3
-
// 使用芯片 : LM3S5965
-
// 开发环境 : KEIL
-
//
-
// 版本记录 : V1.00 创建第一版 2010-09-11 15:30
-
//
-
//-----------------------------------------------------------------------------
-
-
// 使用驱动库所需要的头文件
-
#include "inc/hw_types.h"
-
#include "inc/hw_memmap.h"
-
-
// 与系统配置有关
-
#include "driverlib/sysctl.h"
-
-
// 与GPIO操作有关
-
#include "driverlib/gpio.h"
-
-
// led所在端口及引脚
-
#define GPIO_LED_SYSCTL_PERIPH SYSCTL_PERIPH_GPIOB
-
#define GPIO_LED_PORT_BASE GPIO_PORTB_BASE
-
#define GPIO_LED_PIN (GPIO_PIN_4)
-
-
//-----------------------------------------------------------------------------
-
//
-
// 函数名称 : main
-
// 函数功能 : 主函数,简单的GPIO闪灯程序。
-
//
-
// 输入参数 : 无
-
//
-
// 返回参数 : 无
-
//
-
//-----------------------------------------------------------------------------
-
int main (void)
-
{
-
// 配置系统主时钟, 使用外部晶振16M
-
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ |
-
SYSCTL_OSC_MAIN);
-
-
// 使能端口PB,然后配置PB.4为输出
-
SysCtlPeripheralEnable(GPIO_LED_SYSCTL_PERIPH);
-
GPIOPinTypeGPIOOutput(GPIO_LED_PORT_BASE, GPIO_LED_PIN);
-
-
// 驱动LED的亮灭
-
while(1)
-
{
-
// 置PB.4为高电平
-
GPIOPinWrite(GPIO_LED_PORT_BASE, GPIO_LED_PIN, GPIO_LED_PIN);
-
-
// 延时500ms
-
SysCtlDelay(500 * SysCtlClockGet()/3000);
-
-
// 置PB.4为低电平
-
GPIOPinWrite(GPIO_LED_PORT_BASE, GPIO_LED_PIN, 0);
-
-
// 延时500ms
-
SysCtlDelay(500 * SysCtlClockGet()/3000);
-
}
- }
修改相关的头文件 库依赖
点击(此处)折叠或打开
-
//-----------------------------------------------------------------------------
-
//
-
// gpio闪灯程序
-
// 源文件(*.c)
-
//
-
//
-
// 版权所有(C)2005-2010 利尔达科技有限公司
-
//
-
//
-
// 文件名 : gpio_blinky.c
-
// 作者 : nmy
-
// 生成日期 : 2010-09-11
-
//
-
// ARM内核 : ARMv7M Cortex-M3
-
// 使用芯片 : LM3S5965
-
// 开发环境 : CCS
-
//
-
// 版本记录 : V1.00 创建第一版 2010-09-11 15:30
-
//
-
//-----------------------------------------------------------------------------
-
-
// 使用驱动库所需要的头文件
-
#include "LM3S_Driver\inc\hw_types.h"
-
#include "LM3S_Driver\inc\hw_memmap.h"
-
#include "LM3S_Driver\driverlib\sysctl.h"
-
#include "LM3S_Driver\driverlib\gpio.h"
-
-
// led所在端口及引脚
-
#define GPIO_LED_SYSCTL_PERIPH SYSCTL_PERIPH_GPIOB
-
#define GPIO_LED_PORT_BASE GPIO_PORTB_BASE
-
#define GPIO_LED_PIN (GPIO_PIN_4)
-
-
//-----------------------------------------------------------------------------
-
//
-
// 函数名称 : main
-
// 函数功能 : 主函数,简单的GPIO闪灯程序。
-
//
-
// 输入参数 : 无
-
//
-
// 返回参数 : 无
-
//
-
//-----------------------------------------------------------------------------
-
int main (void)
-
{
-
// 配置系统主时钟, 使用外部晶振16M
-
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ |
-
SYSCTL_OSC_MAIN);
-
-
// 使能端口PB,然后配置PB.4为输出
-
SysCtlPeripheralEnable(GPIO_LED_SYSCTL_PERIPH);
-
GPIOPinTypeGPIOOutput(GPIO_LED_PORT_BASE, GPIO_LED_PIN);
-
-
// 驱动LED的亮灭
-
while(1)
-
{
-
// 置PB.4为高电平
-
GPIOPinWrite(GPIO_LED_PORT_BASE, GPIO_LED_PIN, GPIO_LED_PIN);
-
-
// 延时500ms
-
SysCtlDelay(500 * SysCtlClockGet()/3000);
-
-
// 置PB.4为低电平
-
GPIOPinWrite(GPIO_LED_PORT_BASE, GPIO_LED_PIN, 0);
-
-
// 延时500ms
-
SysCtlDelay(500 * SysCtlClockGet()/3000);
-
}
- }
第四步 加入lib文件
由于在开发中一般会使用TI提供的驱动以及一些头文件,所以我们需要加入TI所提供的驱动LIB以及相关的头文件,在一些教程中,在这一步会将我们所安装的StellarisWare的整个安装目录添加到编译器的Compiler的选项Include Options中,让Compiler在编译的时候在整个安装目录下查找,并将相关的lib文件加入到Linker的Include library file中(详情请见爱板网:)但是这样安装StellarisWare,而且如果对以后的项目使用版本控制软件的话会出现一定的配置问题。为了更好地对项目使用版本控制软件(CCS 5.3后支持Git),减小Project对PC环境的依赖,减小Project的大小,我将将要使用到的相关文件拷贝到工程目录下。
1.在工程目录下新建一个LM3S_Driver文件夹,将StellarisWare下面的inc文件夹拷贝到此目录下 删除出lm3s5956.h之外的其他CPU相关的LM3SXXX/LM4FXXX的文件。
2.在LM3S_Driver下面新建一个driverlib目录,将StellarisWare\driverlib下的所有头文件和StellarisWare\driverlib\ccs-cm3\Debug下的driverlib-cm3.lib拷贝到此目录下
第五步 配置编译器 生成BIN文件(可选)
添加编译命令为:
"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd470" "${CG_TOOL_ROOT}/bin/hex470" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
更改堆栈空间:
第六步 编译 运行
编译运行后的工程目录为:
至此 工程创建完成,我们可以删除项目文件夹下的Debug文件夹 然后通过Git SVN等版本控制软件对剩下的文件进行版本管理:
CCS工程:CCS.zip