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参考资料

第 2 步:链接器脚本更改 (`linker_m33_ti_arm_clang.cmd`)

将内存段“EPI_CS2_EXEC_1”添加到工程中。调整“长度”以适应客户的 AI 模型大小。下面提供了 CMD 文件的更改:

MEMORY
{
    RAM_S        : ORIGIN = 0x20000000, LENGTH = 0x18000   // 96KB internal SRAM
    RAM_C        : ORIGIN = 0x00C18000, LENGTH = 0x8000    // 32KB code SRAM
    FLASH_BANK0  : ORIGIN = 0x00000000, LENGTH = 0x40000   // 256KB Flash
    FLASH_BANK1  : ORIGIN = 0x00040000, LENGTH = 0x40000   // 256KB Flash

    // External SDRAM through EPI — AI model code + weights execute from here
    // Customer with 300KB AI model: increase to 0x0080000 (512KB) or 0x0100000 (1MB)
    EPI_CS2_EXEC_1(RWX) : origin = 0x80000000, length = 0x0010000  // 64KB (demo size)
}
```

添加 .CS1_EXECUTE 段并将 `libCMSISDSP_m33_ti_arm_clang.a` 替换为“customer_ai_model.a”文件名。下面提供了 CMD 文件的更改:

.CS1_EXECUTE : LOAD = FLASH_BANK0, palign(8),
               RUN  = EPI_CS2_EXEC_1,
               LOAD_START(emif1_cs2_sec1_loadstart),
               LOAD_SIZE(emif1_cs2_sec1_loadsize),
               RUN_START(emif1_cs2_sec1_runstart),
               RUN_SIZE(emif1_cs2_sec1_runsize)
{
    // Replace with the customer's AI .a filename.
    // The <*> wildcard grabs ALL objects in the archive automatically.
    customer_ai_model.a<*>(.text .text.* .rodata .rodata*)
}

每个关键字的含义在表 2-2 中进行了说明:

表 2-2 连接命令文件修改中的关键字含义
关键字 含义
LOAD = FLASH_BANK0` 链接时存储在闪存中的 AI 模型二进制映像
RUN = EPI_CS2_EXEC_1 从 SDRAM 分配的所有 AI 功能地址 (`0x80000000+`)
LOAD_START (emif1_cs2_sec1_loadstart) 链接器符号 = 映像开始的闪存地址
LOAD_SIZE (emif1_cs2_sec1_loadsize) 链接器符号 = 要复制的字节数
RUN_START (emif1_cs2_sec1_runstart) 链接器符号 = SDRAM 目标 (`0x80000000`)
<*> (.text .text.* .rodata .rodata*) 通配符:捕获存档中的所有代码和权重