ZHDA243 July   2026 AM13E23019

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 TI AM13E230x 简介
    2. 1.2 TI MCU 的 AI 工具链简介
  5. 2详细说明
    1. 2.1 EPI 的 Sysconfig 设置
      1. 2.1.1 刷新计数
      2. 2.1.2 EPI 时钟分频器
    2. 2.2 用于外部 SRAM 执行的 AI 模型库部署
      1. 2.2.1 第 1 步:将 AI “.a”文件添加到 CCS 工程中
      2. 2.2.2 第 2 步:链接器脚本更改 (`linker_m33_ti_arm_clang.cmd`)
      3. 2.2.3 'main.c' 变更
        1. 2.2.3.1 包含头文件
        2. 2.2.3.2 声明由链接器生成的符号
        3. 2.2.3.3 memcpy 函数
        4. 2.2.3.4 将条目函数放在 SDRAM 部分中
        5. 2.2.3.5 Main() 引导顺序
      4. 2.2.4 第 4 步:CSS 项目验证
    3. 2.3 硬件设计最佳实践
  6. 3总结
  7. 4参考资料

用于外部 SRAM 执行的 AI 模型库部署

AI 应用中的注意力矩阵、权重矩阵等占据了 MCU 中的大部分 SRAM。矩阵只有在 AI 模型开始运行时才会运行,应用结束后才会停止运行。借助此功能,AI 模型的闪存需求远小于 RAM 需求。通过将 AI 模型存储在 MCU 片上闪存中并使用外部 SDRAM 执行 AI 模型,可以满足 AI 模型内存要求。本节将指导用户使用编译器关键字来实现此内存分配。

如简介 中所述,AI 模型工程中需要集成的文件是一个“a”库,其中包含两个段:一个 .text 段用于 AI 函数,一个 .rodata 段用于表示权重和表。用户可以使用链接器段将这些段作为加载映像存储在闪存中,并在启动时复制到 SDRAM。所有功能地址均从 SDRAM 地址空间分配 (`0x80000000+`)。表 2-1 展示了内存分配:

表 2-1 在闪存中加载 AI 模型并在外部 SDRAM 中运行时的内存分配
闪存(加载映像已存储) SDRAM(代码从此处执行)
0x000xxxxx -> copyCode() -> 0x80000000(由 syscfg 设置)
.text(AI 函数) .text(PC 从此处获取)
.rodata(权重和表) .rodata

以下各节介绍了实现目标内存分配的分步设置。该示例使用“customer_ai_model.a”作为“.a”文件名,用户可以相应地更改该文件名。基本的 AI 嵌入式工程是指“..\am13e230x_sdk_<version>\examples\ai\generic_timeseries_classification”[11]。

有关编译器符号详细信息和 cmd 文件详细信息,请参阅参考资料 部分中的 <TI ARM CLANG 编译器工具用户指南> [8] 和 <TI 连接器命令文件入门> [9]。该演示工程可在 AM13E230x MCU_SDK 中找到,网址为“am13e230x_sdk_26_01_00_00/examples/driverlib/epi/epi_sdram_read_write”。