ZHCU861A March   2021  – August 2022 TM4C1230C3PM , TM4C1230D5PM , TM4C1230E6PM , TM4C1230H6PM , TM4C1231C3PM , TM4C1231D5PM , TM4C1231D5PZ , TM4C1231E6PM , TM4C1231E6PZ , TM4C1231H6PGE , TM4C1231H6PM , TM4C1231H6PZ , TM4C1232C3PM , TM4C1232D5PM , TM4C1232E6PM , TM4C1232H6PM , TM4C1233C3PM , TM4C1233D5PM , TM4C1233D5PZ , TM4C1233E6PM , TM4C1233E6PZ , TM4C1233H6PGE , TM4C1233H6PM , TM4C1233H6PZ , TM4C1236D5PM , TM4C1236E6PM , TM4C1236H6PM , TM4C1237D5PM , TM4C1237D5PZ , TM4C1237E6PM , TM4C1237E6PZ , TM4C1237H6PGE , TM4C1237H6PM , TM4C1237H6PZ , TM4C123AE6PM , TM4C123AH6PM , TM4C123BE6PM , TM4C123BE6PZ , TM4C123BH6PGE , TM4C123BH6PM , TM4C123BH6PZ , TM4C123FE6PM , TM4C123FH6PM , TM4C123GE6PM , TM4C123GE6PZ , TM4C123GH6PGE , TM4C123GH6PM , TM4C123GH6PZ , TM4C123GH6ZXR , TM4C1290NCPDT , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD

 

  1.   请先阅读
    1.     关于本手册
    2.     术语表
    3.     德州仪器 (TI) 提供的相关文档
    4.     支持资源
    5.     商标
  2. 1TivaWare SDK 简介
    1. 1.1 TivaWare SDK 文件夹细目分类
  3. 2TivaWare 示例工程
    1. 2.1 TivaWare 开发板示例
    2. 2.2 TivaWare 外设示例
    3. 2.3 如何将示例工程导入 CCS
  4. 3在 Code Composer Studio 中将文件和库关联到 TivaWare 工程中
    1. 3.1 在 CCS 中链接文件
    2. 3.2 在 CCS 中链接库
  5. 4如何调试 TivaWare 库
    1. 4.1 如何引导 Code Composer Studio 找到源文件
    2. 4.2 如何重新构建 TivaWare 库
  6. 5如何将 TivaWare 添加到现有 CCS 工程中
    1. 5.1 路径变量
    2. 5.2 包含路径
    3. 5.3 预定义变量
    4. 5.4 库链接
  7. 6TivaWare 引导加载程序
    1. 6.1 在 Code Composer Studio 中修改要用于引导加载的 TivaWare 工程
    2. 6.2 如何使用 LM 闪存编程器引导加载
  8. 7软件最佳做法
    1. 7.1 栈/堆设置和栈溢出
    2. 7.2 中断服务例程
      1. 7.2.1 最佳做法
      2. 7.2.2 TivaWare 矢量表和 IntDefaultHandler
    3. 7.3 TivaWare 硬件头文件
    4. 7.4 ROM 和 MAP TivaWare 前缀
  9. 8TM4C 资源
  10. 9修订历史记录

在 CCS 中链接文件

在本节中,将使用 examples/peripherals/adc 下的 single_ended 外设示例作为参考。

按照 Topic Link Label3.2中的步骤,将 EK-TM4C123GXL LaunchPad 的 project0 用作起始 TivaWare 工程。将工程名重命名为“single_ended”,以便后续能够重新导入 project0。将源代码复制到 project0.c 文件并尝试编译工程后,会出现图 4-1 中所示的构建错误。

GUID-20201218-CA0I-N54W-J8HP-PPTQRTR6K9LZ-low.jpg图 3-1 CCS 构建错误 - 未解析的符号

 

如果在使用函数调用时没有在工程中添加合适的 .c 源文件,通常会出现“未解析的符号”错误。如果工程使用除了所提供的 TivaWare 库(DriverLib 或 UsbLib)以外的文件,通常会出现该错误。如果使用 #include 从 TivaWare 库目录中添加了头文件,那么应进行检查以确保已将相应的 .lib 文件添加到工程中。如果已添加,则无需执行进一步操作。Topic Link Label4.2将介绍在工程中缺失 .lib 文件的情况下如何添加该文件。

在本例中,以下两个 UART 相关函数导致了这个问题:UARTprintfUARTStdioConfig。由于本示例用于现有 TivaWare 示例工程,了解缺少哪个文件的最快捷方式是向上滚动到代码工程顶部的 #include 语句。执行此操作后,可以找到与 UART 相关的以下行:

#include "driverlib/uart.h"
#include "utils/uartstdio.h"

如前文所述,由于 .lib 文件已经包含 driverlib 文件,接下来要检查是否缺少 uartstdio.c 文件。仔细查看工程中的文件列表后,发现工程中不包含 uartstdio.c 文件(图 4-2)。通过搜索 TivaWare 安装 utils 目录中 uartstdio.c 文件的内容,可以发现该文件中也有缺少的函数。

GUID-20201218-CA0I-QGPJ-VMXN-3BD8MCBHXQV4-low.jpg图 3-2 single_ended 工程的文件列表

 

在识别出文件之后,需要通过以下步骤将文件链接到 CCS 工程。

  1. 转至 CCS 工程,右键点击工程名称以打开工程的选项菜单(图 4-3)。
  2. 点击“Add Files”。
    GUID-20201218-CA0I-9RQD-NTXD-DGN9Q85F8VGD-low.jpg图 3-3 CCS 工程的“Add Files”选项
  3. 此时将出现文件浏览器,如前文所示,需要从 utils 目录中添加 uartstdio.c 文件。导航到该目录并选择该文件。
    提示: 按下 CTRL 键并点击每个必须链接的文件,以选择多个文件。
  4. 添加文件时,CCS 将询问是复制还是链接文件。选择“Link to files”选项(图 4-4)。如果从 TivaWare SDK 中添加另一个文件,建议将“Create Link locations relative to:”路径更改为“SW_ROOT”。SW_ROOT 是计算机上基础 TivaWare SDK 目录的 TivaWare 定义路径。
    GUID-20201218-CA0I-LWWP-2PH0-X8546WXFNW5F-low.jpg图 3-4 针对其他 TivaWare 文件的建议链接位置路径
提示:

可以在“Resources”→“Linked Resources”→“Path Variables”选项卡视图下的 CCS 工程属性中找到 SW_ROOT 定义。

 

现在,uartstdio.c 文件应显示在工程的文件列表中(图 4-5),现在将能够成功地重新构建工程!

GUID-20201218-CA0I-LLNQ-VLMD-DDKBT6BPBGXT-low.jpg图 3-5 uartstdio.c 现已包含在 CCS 工程中

 

检查是否已正确完成该过程的另一个方法是转至 CCS 工程属性,导航到“Resource”→“Linked Resources”页面,然后选择“Linked Resources”选项卡。在此选项卡下,找到所列的“Variable Relative Location”,如图 4-6 所示。

GUID-20201218-CA0I-D5DG-KVPX-V6KNJDXWPG30-low.jpg图 3-6 CCS 工程属性中的链接资源