ZHDA243 July 2026 AM13E23019
AI 应用中的注意力矩阵、权重矩阵等占据了 MCU 中的大部分 SRAM。矩阵只有在 AI 模型开始运行时才会运行,应用结束后才会停止运行。借助此功能,AI 模型的闪存需求远小于 RAM 需求。通过将 AI 模型存储在 MCU 片上闪存中并使用外部 SDRAM 执行 AI 模型,可以满足 AI 模型内存要求。本节将指导用户使用编译器关键字来实现此内存分配。
如简介 中所述,AI 模型工程中需要集成的文件是一个“a”库,其中包含两个段:一个 .text 段用于 AI 函数,一个 .rodata 段用于表示权重和表。用户可以使用链接器段将这些段作为加载映像存储在闪存中,并在启动时复制到 SDRAM。所有功能地址均从 SDRAM 地址空间分配 (`0x80000000+`)。表 2-1 展示了内存分配:
| 闪存(加载映像已存储) | 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”。