Other Parts Discussed in Thread: AM62A7
器件型号: AM62A7
我们将 SDK-11.01.00 用于基于 AM62A7 处理器的电路板。 我们的电路板具有 1GB 的 DDR。 因此、我们知道我们必须更改电路板的保留存储器映射、因为它具有 1GB DDR、而不是 4GB DDR。
我们按照固件生成器 SDK 中的说明进行了保留存储器映射更改。 下面是我们更改的存储器映射的屏幕截图。

固件构建程序 SDK 中的 vision_apps/platform/am62a/rtos/gen_linker_mem_map.py 文件更改
diff --git a/vision_apps/platform/am62a/rtos/gen_linker_mem_map.py b/vision_apps/platform/am62a/rtos/gen_linker_mem_map.py
index 2b00d6220..a1ee9e135 100755
--- a/vision_apps/platform/am62a/rtos/gen_linker_mem_map.py
+++ b/vision_apps/platform/am62a/rtos/gen_linker_mem_map.py
@@ -218,27 +218,27 @@ ddr_viss_config_heap_size = 4*MB;
carveout_size += ddr_viss_config_heap_size
mcu_r5f_ddr_local_heap_addr = ddr_viss_config_heap_addr + ddr_viss_config_heap_size;
-mcu_r5f_ddr_local_heap_size = 16*MB;
+mcu_r5f_ddr_local_heap_size = 4*MB;
carveout_size += mcu_r5f_ddr_local_heap_size
dm_r5f_ddr_local_heap_addr = mcu_r5f_ddr_local_heap_addr + mcu_r5f_ddr_local_heap_size;
-dm_r5f_ddr_local_heap_size = 16*MB;
+dm_r5f_ddr_local_heap_size = 4*MB;
carveout_size += dm_r5f_ddr_local_heap_size
c7x_1_ddr_local_heap_non_cacheable_addr = dm_r5f_ddr_local_heap_addr + dm_r5f_ddr_local_heap_size;
-c7x_1_ddr_local_heap_non_cacheable_size = 16*MB;
+c7x_1_ddr_local_heap_non_cacheable_size = 4*MB;
carveout_size += c7x_1_ddr_local_heap_non_cacheable_size
c7x_1_ddr_scratch_non_cacheable_addr = c7x_1_ddr_local_heap_non_cacheable_addr + c7x_1_ddr_local_heap_non_cacheable_size;
-c7x_1_ddr_scratch_non_cacheable_size = 16*MB;
+c7x_1_ddr_scratch_non_cacheable_size = 4*MB;
carveout_size += c7x_1_ddr_scratch_non_cacheable_size
c7x_1_ddr_local_heap_addr = c7x_1_ddr_scratch_non_cacheable_addr + c7x_1_ddr_scratch_non_cacheable_size;
-c7x_1_ddr_local_heap_size = 112*MB;
+c7x_1_ddr_local_heap_size = 28*MB;
carveout_size += c7x_1_ddr_local_heap_size
c7x_1_ddr_scratch_addr = c7x_1_ddr_local_heap_addr + c7x_1_ddr_local_heap_size;
-c7x_1_ddr_scratch_size = 112*MB;
+c7x_1_ddr_scratch_size = 28*MB;
carveout_size += c7x_1_ddr_scratch_size
assert carveout_size <= ddr_mem_size_2
arch/arm64/boot/dts/ti/k3-am62a7-sk-edgeai.dtso 内核器件树文件更改
// SPDX-License-Identifier: GPL-2.0
/*
* DT overlay for AM62A edgeAI carveouts
* Copyright (C) 2023-2025 Texas Instruments Incorporated - https://www.ti.com/
*/
/dts-v1/;
/plugin/;
&{/reserved-memory} {
#address-cells = <2>;
#size-cells = <2>;
ranges;
edgeai_memory_region: edgeai-dma-memory@a1000000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa1000000 0x00 0x02000000>;
no-map;
};
edgeai_shared_region: edgeai_shared-memories {
compatible = "dma-heap-carveout";
reg = <0x00 0xa3000000 0x00 0x0ac00000>;
};
edgeai_core_heaps: edgeai-core-heap-memory@adc00000 {
compatible = "shared-dma-pool";
reg = <0x00 0xadc00000 0x00 0x4c00000>;
no-map;
};
};
注意:在 DTS 上方仅“edgeai_core_watches“节点发生变化。
此外、我们仅将 CMA 内存保留为 200MB。 根据我的理解、无需对 CMA 存储器进行固件生成器 SDK 更改。
更改存储器映射后、我们遵循了固件构建器文档中提到的所有步骤、并生成了 vx_app_rtos_linux_mcu1_0_strip.out(DMR5 固件)和 vx_app_rtos_linux_c7x_1.out(c7x 固件)。 此外、我们还使用了 vx_app_rtos_linux_mcu1_0_strip.out(DMR5 固件)固件来生成 tispl.bin 二进制文件。
完成所有更改后、我们使用新的 tispl.bin(用于生成 tispl.bin 的新 vx_app_rtos_linux_mcu1_0_strip.out(DMR5 固件)和 vx_app_rtos_linux_c7x_1.out(c7x 固件)引导了电路板。
之后、我们运行“TIOVX 一致性测试“以验证存储器相关更改是否正确完成。 我们使用 psdk_rtos_ti_data_set_11_01_00.tar.gz 和 psdk_rtos_ti_data_set_11_01_00_am62a.tar.gz 数据集进行了固件构建器文档中提到的一致性测试。 但我们设备上的一致性测试失败(提供分段故障)。 以下是符合性测试的最后日志。
TIOVX-Conformance-Test-1GB-DDR-Result.txt
但“TIDL 符合性测试“ 也在我们的电路板上进行。
“TIOVX 一致性测试“可能有什么问题? 请告知我们需要提供的任何其他信息。
此致、
Jay