ZHCAF02 February   2025 TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM

 

  1.   1
  2. 12
  3.   商标

引言

德州仪器 (TI) 的 Jacinto 系列 SoC 旨在支持各种汽车深度学习应用,为视觉和推理任务提供强大的处理能力。为了促进开发,TI 为用户提供了一个 EVM,以便对使用案例进行原型设计、测试和验证。EVM 附带预定义的 DDR 配置;用户可以灵活地选择任何尺寸的 DDR,以满足特定的深度学习要求。TI 针对 SoC 发布的 SDK 包括针对 EVM 自定义的内存映射和 DDR 配置设置。但是,对于使用自定义电路板的用户,应调整设置以匹配自定义 DDR 设置。

本应用简报重点介绍对视觉应用内存映射的必要更改,指导客户完成修改内存配置的过程,以建立与自定义硬件设置的兼容性。

EVM 上适用于各种 SOC 的 DDR 大小如 表 1 所示。

表 1 EVM 上适用于各种 SOC 的 DDR 大小
SOCDDR 大小 (GB)
J721E4
J721s216
J722s8
J742s232
J784s432
J72004

与 EVM 不同的超过 2GB 的自定义 DDR 大小设计指南

DDR 内存映射到 SOC 时,前 2GB 内存位于下部存储体(例如,32 位地址从 0x80000000 到 0xFFFFFFFF),其余 DDR 内存映射到上部存储体(例如,64 位地址 0x880000000 到 [SOC 总 DDR 大小])。

如果电路板的 DDR 大小小于或大于 EVM 的大小(但大于 2GB),请参阅 表 2

表 2 修改 vision_apps 内存映射
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 论坛

小于 2GB 的自定义 DDR 大小的设计指南

如果电路板的 DDR 小于 2GB,请修改内存映射,使任何内核都不使用 DDR 的上部 64 位区域。根据默认的 SDK 内存映射,C7x 内核的典型本地堆和暂存区位于内存的上部区域,并与 DDR_SHARED_MEM 的物理内存映射一同存在。

按照以下步骤修改小于 2GB 的自定义 DDR 大小

  1. 将 C7x 内核的本地堆和暂存区移至下部 2GB 区域。
  2. 验证 C7x 内核中的 MMU 映射是否将本地堆和暂存区映射到物理地址(如 32 位地址),而不是虚拟地址。
  3. 确认 DDR_SHARED_MEM_PHYS_ADDR 和 DDR_SHARED_MEM_ADDR 指向相同地址,且大小相同。
  4. 对于 J784s4,更改 C7x 的非高速缓存堆和暂存区的 MMU 映射顺序,使 J784s4 位于 MAIR7 映射之后,以防止覆盖。

按照上述修改和前一节所述说明实施内存映射。

仅使用下部 2GB 区域的 SoC 内存映射示例

表 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 中的说明进行操作,以实现内存映射。

表 3 修改后的 Python 脚本的链接
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 的自定义电路板,请使用本应用说明作为参考。