工具与软件:
尊敬的 TI:
在将 DDR 从32GB 降低至16GB (仅限0和1个实例)的线程进行更改后、vision_apps 存在问题。
为了反映这种 DDR 尺寸的减小、是否需要在 PSDK RTOS 中进行其他一些更改?
我们使用 SDK 10.0版本。
场景1 -电流行为:
-包含自上一线程的正确的 Linux dtsi 文件。
-在 RTOS SDK 中集成生成的 j784s4_board_ddrRegInit.h 文件
-更改 app_perf 以将 DDR 实例数从4个减少到2个,如下所示:
---
utils/perf_stats/src/app_perf_stats_freertos.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/utils/perf_stats/src/app_perf_stats_freertos.c b/utils/perf_stats/src/app_perf_stats_freertos.c
index ff0825d..b2a13f9 100644
--- a/utils/perf_stats/src/app_perf_stats_freertos.c
+++ b/utils/perf_stats/src/app_perf_stats_freertos.c
@@ -102,7 +102,7 @@
#elif defined (SOC_J721S2)
#define APP_PERF_NUM_DDR_INSTANCES (2u)
#elif defined (SOC_J784S4)
-#define APP_PERF_NUM_DDR_INSTANCES (4u)
+#define APP_PERF_NUM_DDR_INSTANCES (2u)
#endif
/** \brief Max number of tasks whose information can be locally maintained (transmitted may be smaller) */
@@ -755,20 +755,6 @@ void appPerfStatsDdrStatsReadCounters(uint32_t *val0, uint32_t *val1, uint32_t *
cnt3[1] = (volatile uint32_t *)0x029A0110;
#endif
- #if defined(SOC_J784S4)
- cnt_sel[2] = (volatile uint32_t *)0x029C0100;
- cnt0[2] = (volatile uint32_t *)0x029C0104;
- cnt1[2] = (volatile uint32_t *)0x029C0108;
- cnt2[2] = (volatile uint32_t *)0x029C010C;
- cnt3[2] = (volatile uint32_t *)0x029C0110;
-
- cnt_sel[3] = (volatile uint32_t *)0x029E0100;
- cnt0[3] = (volatile uint32_t *)0x029E0104;
- cnt1[3] = (volatile uint32_t *)0x029E0108;
- cnt2[3] = (volatile uint32_t *)0x029E010C;
- cnt3[3] = (volatile uint32_t *)0x029E0110;
- #endif
-
if(is_first_time)
{
is_first_time = 0;
--
2.34.1
-当我们运行 single_app_cam 并尝试打印统计数据时,它会在以下位置中断(只有 Ctrl+C 会停止程序)。
Detailed CPU performance/memory statistics,
===========================================
56.333295 s: DDR_SHARED_MEM: Alloc's: 21 alloc's of 46326038 bytes
56.333304 s: DDR_SHARED_MEM: Free's : 0 free's of 0 bytes
56.333311 s: DDR_SHARED_MEM: Open's : 21 allocs of 46326038 bytes
CPU: mcu2_0: TASK: FREERTOS_TA: 18.48 %
CPU: mcu2_0: TASK: IPC_RX: 0. 1 %
CPU: mcu2_0: TASK: REMOTE_SRV: 0. 0 %
CPU: mcu2_0: TASK: LOAD_TEST: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CPU_0: 12. 3 %
CPU: mcu2_0: TASK: TIVX_V1NF: 0. 0 %
CPU: mcu2_0: TASK: TIVX_V1LDC: 0. 0 %
CPU: mcu2_0: TASK: TIVX_V1MSC1: 0.14 %
CPU: mcu2_0: TASK: TIVX_V1MSC2: 0. 0 %
CPU: mcu2_0: TASK: TIVX_V1VISS: 0.20 %
CPU: mcu2_0: TASK: TIVX_CAPT1: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT2: 0. 6 %
CPU: mcu2_0: TASK: TIVX_CAPT3: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT4: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT5: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT6: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT7: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT8: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT9: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT10: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT11: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CAPT12: 0. 0 %
CPU: mcu2_0: TASK: TIVX_DISP1: 0. 9 %
CPU: mcu2_0: TASK: TIVX_DISP2: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CSITX: 0. 0 %
CPU: mcu2_0: TASK: TIVX_CSITX2: 0. 0 %
CPU: mcu2_0: TASK: TIVX_DPM2M1: 0. 0 %
CPU: mcu2_0: TASK: TIVX_DPM2M2: 0. 0 %
CPU: mcu2_0: TASK: TIVX_DPM2M3: 0. 0 %
CPU: mcu2_0: TASK: TIVX_DPM2M4: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_RX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
CPU: mcu2_0: TASK: IPC_TEST_TX: 0. 0 %
^C
Clean up and exit while handling signal 2
Application did not close some rpmsg_char devices
此外、我们还开始获取以下先前不存在的打印输出:
[MCU2_0] 56.213483 s:vx_zone_error:[tivxDisplayProcess:1182] display:ERROR:ERROR:Error:Wrong Operation Mode selected!
[MCU2_0] 56.245172 s:vx_zone_error:[tivxDisplayProcess:1182] display:ERROR:ERROR:Error:Wrong Operation Mode selected!
[MCU2_0] 56.276850 s:vx_zone_error:[tivxDisplayProcess:1182] display:ERROR:ERROR:Error:选择了错误的工作模式!
[MCU2_0] 56.308535 s:vx_zone_error:[tivxDisplayProcess:1182]显示:ERROR:ERROR:Error:选择了错误的工作模式!
请注意、我们这边没有 Display 可运行、但这不是之前的行为。
我们确实设置了正确模式、但当 tivxDisplayProcess 读取它时、它的值并不相同、则是一些垃圾。
场景2:
如果我们仅在 Linux 中恢复 DDR 存储器映射、生成的 dtsi 文件(在 Kevin 的相关帖子答案中)、vision_apps 和单个 cam 应用可以正常工作。
对于此设置、我们在相关文章中提到了内核严重错误。由于错误的 DDR 设置。
此致、
Milena