MSPM33C321A Driver Library  1.02.00.00
MSPM33 驱动程序库

简介

德州仪器 MSPM33 驱动程序库 (DriverLib) 是一组功能齐全的 API,用于配置、控制和操作 MSPM33 平台的硬件外设。

除了能够控制所有 MSPM33 外设,DriverLib 还使用户能够使用常见 Arm 外设,如中断控制器 (NVIC) 和 SysTick。

MSPM33 系列的 DriverLib 已在多种不同的工具链下进行了测试和编译。

工具链
Texas Instruments Code Composer Studio (CCS) Theia 1.2.0
Texas Instruments Code Composer Studio (CCS) 12.5
IAR Embedded Workbench for Arm 9.50.1
GNU C Compiler 9.2.1 (gcc)
Keil uVision 5.38

DriverLib 旨在为程序员提供一个软件层,与直接访问寄存器相比,这样便于实现更高层次的编程。

使用 DriverLib API 可以配置和驱动 MSPM33 器件的几乎每一个方面。通过使用 DriverLib 提供的高级软件 API,用户可以创建功能强大且易于理解的代码,这些代码可以在不同器件之间轻松地移植。

使用 DriverLib 编写代码将使用户代码更易于阅读,并且更容易在团队中共享。

例如,请查看以下代码片段,它们实现了一个非常简单的函数,用于初始化具有 SPI 功能的引脚。

寄存器级别:

IOMUX->SECCFG.PINCM[25] = 0x00040083;

使用 MSPM33 头文件的寄存器级别:

IOMUX->SECCFG.PINCM[IOMUX_PINCM26] =
    IOMUX_PINCM26_PF_SPI1_SCLK | IOMUX_PINCM_PC_CONNECTED | IOMUX_PINCM_INENA_ENABLE;

MSPM33 DriverLib:

DL_GPIO_initPeripheralInputFunction(
    IOMUX_PINCM26, IOMUX_PINCM26_PF_SPI1_SCLK);

如所见,DriverLib API 对于软件工程师来说更易读、更合理、更容易编程。不仅如此,生成的代码将完全相同。**在大多数情况下,DriverLib 将生成与编写寄存器级别代码一样内存高效的代码。**

DriverLib 不是什么

DriverLib 并不旨在提供用户应用程序级别的智能层。它旨在作为程序员的辅助工具,成为更大解决方案的一部分,而不是解决方案本身。

例如,中断处理程序也不包含在 DriverLib API 中。包含了管理/启用/禁用中断的 API,但是中断服务例程的实际编写则由程序员负责。

作为参考,利用 DriverLib API 的典型中断处理程序可以在以下代码片段中看到:

void GROUP1_IRQHandler(void)
{
    switch (DL_Interrupt_getPendingGroup(DL_INTERRUPT_GROUP_1)) {
        case DL_INTERRUPT_GROUP1_IIDX_GPIOB:
            if (DL_GPIO_readPins(GPIOB, DL_GPIO_PIN_21)) {
                DL_GPIO_clearPins(GPIOA, DL_GPIO_PIN_0);
            }
            else {
                DL_GPIO_setPins(GPIOA, DL_GPIO_PIN_0);
            }
            break;
    }
}

跨模块考虑

每个 DriverLib 模块在大多数情况下只会与其设计的模块交互和配置。任何跨模块交互都由用户负责。

例如,UART DriverLib 初始化函数无法自动配置 9600bps 的波特率,因为它无法了解系统频率。

文件结构

DriverLib 以完整源代码形式发布,并作为 CCS、IAR 和 Keil 的预编译库提供。

入门

无论选择哪种开发环境,使用 MSPM33 系列的 DriverLib 入门都非常简单。

MSPM33 SDK 的示例目录中提供了使用 TI Arm Clang 和 GCC、IAR 和 Keil 的空"骨架"项目。

将 DriverLib 源代码添加到现有项目

SDK 中包含的代码示例使用预构建的 DriverLib 库,可用于开发应用程序,但不允许直接更改 DriverLib 源代码。

以下步骤说明如何将 DriverLib 源代码添加到现有项目中。

CCS 项目

  1. 使用预构建库的现有项目时,请按照以下步骤操作,否则转到步骤 2。

    1a. 在要添加 DriverLib 源代码的项目上,转到项目的 Properties → Build → Arm Linker → File Search Path**,在 **Include library file or command file as input 中找到 driverlib.a 并选择它。

    1b. 选择 driverlib.a 后,点击 Delete 按钮

    1c. 点击 Apply and Close

  2. 复制或链接 DriverLib 源代码。
     *复制* 允许在不影响原始 SDK 源代码的情况下进行修改。如果您想要一个独立的项目,此选项很有用。
    
     *链接* 允许直接修改原始 SDK 源代码。使用此选项可更改 SDK 代码库,以便在多个项目之间共享。
    
     以下步骤说明如何复制源代码。跳到步骤 4 以链接源代码。
    
     2a. 在安装文件夹 `<MSPM33_SDK_INSTALL_DIR>/source/ti/driverlib` 中找到 DriverLib 源代码
    
     ![](../../images/ccs_add_dl_source_code_3.png)
    
     2b. 复制该文件夹
    
     2c. 找到包含当前项目的 CCS 文件夹。下图显示了一个快捷方式,右键单击示例,选择 **Show in Local Terminal → System Explorer**:
    
     ![](../../images/ccs_add_dl_source_code_4.png)
    
     2d. 进入文件夹并粘贴 driverlib 文件夹
    
     ![](../../images/ccs_add_dl_source_code_5.png)
    
     2e. 右键单击 *driverlib/lib* 文件夹,选择 **Exclude from Build** 将其从项目中排除
    
     ![](../../images/ccs_add_dl_source_code_6.png)
    
     2f. 转到步骤 4,因为复制源文件时不需要链接
    
  3. 按照以下步骤链接 DriverLib 源文件夹:
     3a. 右键单击项目根文件夹,然后点击 **New > Folder**
    
     ![](../../images/ccs_add_dl_source_code_7.png)
    
     3b. 点击 "**Link to alternate location (Linked Folder)**",然后点击 "**Variables**"
    
     ![](../../images/ccs_add_dl_source_code_8.png)
    
     3c. 选择 *COM_TI_MSPM33_SDK_INSTALL_DIR*,然后点击 "**Extend**"
    
     ![](../../images/ccs_add_dl_source_code_9.png)
    
     3d. 选择 *source > ti > driverlib*,然后点击 **OK**
    
     ![](../../images/ccs_add_dl_source_code_10.png)
    
     3e. 请注意,链接路径将相对于 SDK 安装。点击 **Finish**
    
     ![](../../images/ccs_add_dl_source_code_11.png)
    
     3f. 右键单击 *driverlib/lib* 文件夹,选择 **Exclude from Build** 将 lib 文件夹从项目中排除
    
     ![](../../images/ccs_add_dl_source_code_12.png)
    
  4. 确认项目在 Properties → Build → Arm compiler → Incude Options 中包含 DriverLib 头文件的路径,如下所示:
  5. 重新构建项目

IAR 项目

  1. 使用预构建库的现有项目时,请按照以下步骤操作,否则转到步骤 2。

    1a. 在要添加 DriverLib 源代码的项目上,转到项目的 Options**,然后 **Linker → Extra Options**,删除包含 **driverlib.a 的行

  2. 将 DriverLib 源代码添加到项目中。

    文件可以直接从 SDK 添加或复制到项目文件夹中。

    • 复制 允许在不影响原始 SDK 源代码的情况下进行修改。如果您想要一个独立的项目,此选项很有用。只需将 driverlib 文件夹 <MSPM33_SDK_INSTALL_DIR>/source/ti/driverlib 复制粘贴到您的项目中,并添加复制的文件。
    • 直接使用 SDK 中的文件 允许直接修改原始 SDK 源代码。使用此选项可更改 SDK 代码库,以便在多个项目之间共享。要使用此选项,请直接从 <MSPM33_SDK_INSTALL_DIR>/source/ti/driverlib 添加文件。

      可以通过选择 Project → Add group 将文件组织到组中,可以通过选择 Project → Add files 或将它们拖放到工作区中来添加文件。

  3. 确认项目在 Project Options → C/C++ Compiler → Preprocessor 中包含 DriverLib 头文件的路径,如下所示:
  4. 重新构建项目

Keil 项目

  1. 使用预构建库的现有项目时,请按照以下步骤操作,否则转到步骤 2。

    1a. 在要添加 DriverLib 源代码的项目上,转到 Project 窗口,展开 DriverLib 文件夹并删除 driverlib.a

  2. 将 DriverLib 源代码添加到项目中。

    2a. 右键单击 DriverLib 文件夹,选择 "Add existing Files to Group "DriverLib"

    2b. 转到 <MSPM33_SDK_INSTALL_DIR>/source/ti/driverlib 的 driverLib 源文件夹,添加所有文件,包括子文件夹中的文件,但 lib 除外

  3. 确认项目在 Project Options → C/C++ → Include Paths 中包含 DriverLib 头文件的路径,如下所示:
  4. 重新构建项目
© Copyright 1995-2025, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale