ZHCAF02 February 2025 TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM
德州仪器 (TI) 的 Jacinto 系列 SoC 旨在支持各种汽车深度学习应用,为视觉和推理任务提供强大的处理能力。为了促进开发,TI 为用户提供了一个 EVM,以便对使用案例进行原型设计、测试和验证。EVM 附带预定义的 DDR 配置;用户可以灵活地选择任何尺寸的 DDR,以满足特定的深度学习要求。TI 针对 SoC 发布的 SDK 包括针对 EVM 自定义的内存映射和 DDR 配置设置。但是,对于使用自定义电路板的用户,应调整设置以匹配自定义 DDR 设置。
本应用简报重点介绍对视觉应用内存映射的必要更改,指导客户完成修改内存配置的过程,以建立与自定义硬件设置的兼容性。
EVM 上适用于各种 SOC 的 DDR 大小如 表 1 所示。
| SOC | DDR 大小 (GB) |
|---|---|
| J721E | 4 |
| J721s2 | 16 |
| J722s | 8 |
| J742s2 | 32 |
| J784s4 | 32 |
| J7200 | 4 |
DDR 内存映射到 SOC 时,前 2GB 内存位于下部存储体(例如,32 位地址从 0x80000000 到 0xFFFFFFFF),其余 DDR 内存映射到上部存储体(例如,64 位地址 0x880000000 到 [SOC 总 DDR 大小])。
如果电路板的 DDR 大小小于或大于 EVM 的大小(但大于 2GB),请参阅 表 2。
| SOC | 指南 |
|---|---|
| J721E | 德州仪器 (TI),8.9。了解和更新 J721E 的 SDK 内存映射 — 处理器 SDK RTOS J721E 开发人员手册 |
| J722s | 德州仪器 (TI),9.6。了解和更新 J722S 的 SDK 内存映射 — 处理器 SDK RTOS J722S 开发人员手册 |
| J721s2 | 德州仪器 (TI),9.9。了解和更新适用于 J721S2 的 SDK 内存映射 — 处理器 SDK RTOS J721S2 开发人员手册 |
| J784s4 | 德州仪器 (TI),9.9。了解和更新适用于 J784S4 的 SDK 内存映射开发人员手册 |
表 2 详细说明了根据客户用例修改 vision_apps 内存映射的方法。
此外,还需要根据用户的引导流程更改引导加载程序、U-boot 和底层 HLOS。请参阅以下常见问题解答,了解此类情况下涉及的修改。
德州仪器 (TI),[常见问题解答] TDA4VM/TDA4VL/TDA4AL/TDA4VH/DRA821:我们如何使 Jacinto SDK 与各种器件兼容?,E2E 论坛
如果电路板的 DDR 小于 2GB,请修改内存映射,使任何内核都不使用 DDR 的上部 64 位区域。根据默认的 SDK 内存映射,C7x 内核的典型本地堆和暂存区位于内存的上部区域,并与 DDR_SHARED_MEM 的物理内存映射一同存在。
按照以下步骤修改小于 2GB 的自定义 DDR 大小
按照上述修改和前一节所述说明实施内存映射。
表 3 是修改后的 python 脚本,用于满足运行 vision_apps 应用程序所需的 2GB DDR。该 python 脚本已在 SDK 10.0 上针对所有 SOC 进行了测试。替换路径 ${PSDKRA}/vision_apps/platform/${SOC}/rtos/gen_linker_mem_map.py 中的 python 脚本并执行,即可生成更新的内存映射。
在 ${PSDKRA}/vision_apps/ 中的路径下应用以下补丁,并按照 表 2 中的说明进行操作,以实现内存映射。
| SOC | Python 脚本 | 其他补丁 |
|---|---|---|
| J721E | 德州仪器 (TI),gen_linker_mem_map.py | 德州仪器 (TI),2GB_config.patch |
| J721s2 | 德州仪器 (TI),gen_linker_mem_map.py | 德州仪器 (TI),2GB_config.patch |
| J784s4 | 德州仪器 (TI),gen_linker_mem_map.py | 德州仪器 (TI),2GB_config.patch |
同样的方法也适用于其他 SOC。
本应用简报提供了一个 2GB DDR 配置示例,但也可根据用例修改区域大小来扩展配置。对于 DDR 容量大于 2GB 的自定义电路板,请使用 SDK 中的默认内存映射作为参考;对于 DDR 容量小于或等于 2GB 的自定义电路板,请使用本应用说明作为参考。