使用CCS给TM4C123系列新建工程

本文详细介绍了如何使用CodeComposerStudio v8.3和TivaWare工具包在Tiva微控制器上实现LED灯的闪烁。从创建项目、配置芯片、复制TivaWare文件、设置工程选项到编写代码,每一步都进行了详细的说明。最后解决了编译错误并成功实现了LED的闪烁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作:

  1. 下载CCS开发环境,这种用的版本是:Code Composer Studio Version: 8.3.0.00009 
  2. 下载TivaWare工具包:TivaWare

第一步:新建一个CCS Project

第二步:选择芯片,工程路径,点完成

第三步:打开安装好的TivaWare,复制需要的文件

  1. 路径:C:\ti\TivaWare_C_Series-2.1.4.178\inc,复制这个文件夹到你的工程文件中
  2. C:\ti\TivaWare_C_Series-2.1.4.178\driverlib,复制这个文件夹里面的.c .h .s到你的工程中,当然你也可以全部复制过去,这里我就全部复制过去

第四步:设置工程选项,即增加头文件路径和设置宏

进入工程设置的方法,对着工程右键,也可按ALT+ENTER

增加头文件路径:

将例程中LED灯闪烁的代码复制过来:


#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"

/**
 * main.c
 */
int main(void)
{
    //
    // Enable the GPIO module.
    //
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    ROM_SysCtlDelay(1);

    //
    // Configure PA1 as an output.
    //
    ROM_GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_1);

    //
    // Loop forever.
    //
    while(1)
    {
        //
        // Set the GPIO high.
        //
        ROM_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, GPIO_PIN_1);

        //
        // Delay for a while.
        //
        ROM_SysCtlDelay(1000000);

        //
        // Set the GPIO low.
        //
        ROM_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, 0);

        //
        // Delay for a while.
        //
        ROM_SysCtlDelay(1000000);
    }
}

编译一下,报错,提示信息如下,有函数没有定义,上面不是加了增加了头文件路径了吗?

随便找个函数全局搜索一下,发现在rom.h,这个函数有效是有条件宏的,增加宏定义,这里我们选择增加TARGET_IS_TM4C123_RB2,选择哪个,要看芯片上的Mark

CCS里面有增加宏的设置:

再编译一下,通过。

<think>我们正在讨论的是将CCS项目迁移到新版本SDK的注意事项。根据用户提供的引用,我们可以总结出以下几点: 1. 引用[1]中提到,安装最新版CCS时可能会遇到驱动程序未成功安装的问题,这可能是由于CCS本身的问题或安装过程中杀毒软件未关闭导致的。因此,在迁移到新版本SDK时,需要注意驱动程序的兼容性和安装。 2. 引用[2]提供了一个示例,即如何从SDK的示例目录中复制一个空工程(empty工程)并重命名,作为新项目的起点。这提示我们在迁移项目时,可能需要参考新版本SDK中的示例工程结构,特别是对于外设驱动的使用。 结合以上引用和一般经验,以下是迁移项目到新版本SDK的详细注意事项: ### 迁移CCS项目到新版本SDK的注意事项 #### 1. **驱动程序的兼容性** - **检查调试器驱动**:新版本的SDK可能需要更新版本的调试器驱动(如XDS110)。如果遇到无法识别器件的情况,尝试重新安装或更新驱动程序[^1]。 - **关闭杀毒软件**:在安装新版本CCS或SDK时,临时关闭杀毒软件,以避免安装过程中驱动程序被拦截。 #### 2. **项目结构的调整** - **参考示例工程**:新版本SDK的示例工程结构可能有所变化。建议从新版本SDK的示例目录中复制一个与你的硬件平台匹配的示例工程(如`empty`工程)作为基础,然后将原有代码逐步迁移进去[^2]。 - **文件路径更新**:检查并更新项目中的包含路径(include paths)和库路径(library paths),确保指向新版本SDK的目录。 #### 3. **API变更处理** - **查看迁移指南**:通常,新版本SDK会提供迁移指南(Migration Guide),其中会列出API的变更。仔细阅读并按照指南修改代码。 - **替换废弃函数**:旧版本中使用的某些函数可能在新的SDK中被废弃或更名,需要替换为新的等效函数。 #### 4. **外设配置工具(SysConfig)的更新** - **重新生成配置代码**:如果原项目使用了SysConfig进行外设配置,新版本SDK中的SysConfig可能有所更新。需要打开原项目的`.syscfg`文件,重新生成配置代码(点击Save & Generate)。 - **检查配置冲突**:新版本SDK可能对外设的配置方式有改变,需检查生成的配置代码是否有错误或警告。 #### 5. **编译器和链接器设置** - **更新编译选项**:新版本SDK可能要求不同的编译器选项(如C标准、优化级别等)。对比新SDK示例工程的编译选项,调整原有项目的设置。 - **链接脚本更新**:检查链接脚本(.cmd文件)是否与新版本SDK匹配。通常,新版本SDK会提供更新后的链接脚本,需替换原有文件。 #### 6. **测试与验证** - **分步迁移**:建议分模块迁移代码,每迁移一个模块就进行测试,以便快速定位问题。 - **利用调试工具**:使用调试器逐步运行程序,观察外设寄存器的配置是否符合预期。 #### 7. **其他注意事项** - **备份原项目**:在迁移前,备份原有项目,以防迁移失败。 - **更新文档**:记录迁移过程中遇到的问题和解决方法,更新项目文档。 ### 迁移步骤示例 1. 从新版本SDK中复制一个空工程(如`empty`工程)到新目录,重命名项目。 2. 将原有项目的源代码(如`.c`和`.h`文件)复制到新工程的相应位置。 3. 在CCS中导入新工程。 4. 根据新SDK的示例工程设置,调整项目属性(包含路径、预定义宏等)。 5. 如果使用了SysConfig,打开`.syscfg`文件并重新生成代码。 6. 编译项目,根据错误提示修改代码(如替换废弃的API)。 7. 下载到硬件测试。 ### 常见问题解决 - **未找到器件**:重新安装调试器驱动,或尝试使用低版本的CCS安装驱动后再升级[^1]。 - **编译错误**:检查包含路径和API变更,确保所有头文件和库路径正确。 §§相关问题§§ 1. 如何解决SysConfig生成的代码编译错误? 2. CCS中如何更新调试器驱动程序? 3. 如何将旧版SDK的链接脚本更新到新版?</think>### CCS项目迁移到新版本SDK的关键注意事项 #### 1. **驱动兼容性验证** [^1] - **调试器驱动更新**: - 新版本SDK可能要求更高版本的XDS110驱动 - 验证方法:设备管理器 → 查看`Texas Instruments XDS110`驱动版本 - 解决方案: ```bash # 手动更新驱动 ti.com/lit/zip/slrc725 → 下载XDS110驱动包 ``` - **常见问题**: - 安装新CCS时杀毒软件拦截驱动安装 - 建议:安装时临时关闭防护软件 #### 2. **外设配置迁移** - **SysConfig文件处理**: - 旧版`.syscfg`可能不兼容新版工具链 - 迁移步骤: 1. 备份原配置文件 2. 新建SysConfig文件(右键项目 → New → SysConfig File) 3. 手动重建外设配置 4. 点击 **Validate Configuration** 检查冲突 - **寄存器映射变更**: - 比较新旧SDK的头文件差异: ```c // 示例:MSP432E4 SDK 4.20 vs 4.30 #define GPIO_PORTF_BASE 0x4005D000 // 旧版 #define GPIO_PORTF_BASE 0x40061000 // 新版 ``` #### 3. 工程结构适配 - **目录规范更新**: ```markdown SDK 2.04 结构示例: ├── driverlib/ ├── examples/ │ └── nortos/ │ └── LP_MSPM0G3507/ # 新版器件目录结构 └── kernel/ SDK 1.80 结构: ├── driverlib/ ├── example_project/ # 旧版扁平结构 └── CMSIS/ ``` - **操作建议**: 1. 参照新版SDK的示例工程重建目录(如`empty`工程)[^2] 2. 使用相对路径替代绝对路径: ```makefile # 错误示例 INCLUDES = "C:/ti/sdk_old/inc" # 正确示例 INCLUDES = "${COM_TI_SIMPLELINK_MSPM0_SDK_INSTALL_DIR}/source" ``` #### 4. API函数变更处理 - **废弃函数替换**: | 旧版函数 | 新版替代函数 | 变更说明 | |-----------------------|--------------------------|------------------| | `MAP_GPIO_setDir()` | `GPIO_setDirMode()` | 参数顺序变更 | | `Timer_A_init()` | `TA_initCounterMode()` | 功能拆分 | - **头文件包含更新**: ```c // SDK 1.x #include "driverlib/timer.h" // SDK 2.x (需添加层级) #include "ti/driverlib/timer.h" ``` #### 5. 构建系统调整 - **编译器选项迁移**: ```diff Project Properties → Build → MSPM0 Compiler - 移除: --define=PART_TM4C123GH6PM + 新增: --define=__MSPM0G3507__ + 新增: --include_path="${SDK_INSTALL_DIR}/source/third_party/CMSIS/Core/Include" ``` - **链接脚本更新**: - 检查`memory_map.xml`是否匹配新器件: ```xml <!-- 新版SDK内存划分示例 --> <memorySegment name="FLASH" start="0x00000000" size="0x20000"/> <memorySegment name="SRAM" start="0x20000000" size="0x10000"/> ``` #### 6. 验证测试流程 1. **编译验证**: - 先编译SDK自带示例工程(如`empty`项目) - 逐步迁移模块(GPIO→Timer→ADC) 2. **调试检查点**: - 确认时钟树配置: ```c SysCtl_setClockFreq(SYSCTL_MAINCLK_80M); // 新API ``` - 验证外设基地址: ```c DEBUG_PRINT("UART0基地址: %p", (void*)UART0_BASE); ``` > **迁移工具推荐**: > 使用CCS内置的`Project Migration Wizard`(Project → Migrate CCS Project)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值