Part Number: TDA4VH-Q1
Tool/software:
I have vision apps running on the MCU cores and on the A72 i have QNX . In QNX i am running the binary vx_app_arm_ipc.out.
./vx_app_arm_ipc.out APP: Init QNX ... !!! appIpcInit: IPC: Init QNX ... !!! appIpcInit: IPC: Init ... Done !!! 5188.155546 s: REMOTE_SERVICE: Init ... !!! 5188.155650 s: REMOTE_SERVICE: Init ... Done !!! 5188.155682 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 5188.155712 s: VX_ZONE_INIT:Enabled 5188.155726 s: VX_ZONE_ERROR:Enabled 5188.155739 s: VX_ZONE_WARNING:Enabled 5188.155915 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 5188.155979 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 5188.156034 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 5188.156091 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 5188.156113 s: VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!! 5188.156152 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!! 5188.156292 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0000 5188.156382 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0001 5188.156466 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0002 5188.156556 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0003 5188.156643 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0004 5188.156728 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0005 5188.156812 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0006 5188.156897 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0007 5188.157021 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0008 5188.157102 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0009 5188.157183 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000a 5188.157263 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000b 5188.157341 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000c 5188.157414 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000d 5188.157486 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000e 5188.157558 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000f APP IPC: Waiting for all messages to get echoed from remote core... 5188.292827 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0000 5188.292863 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0001 5188.292895 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0002 5188.292925 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0003 5188.292955 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0004 5188.292986 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0005 5188.293016 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0006 5188.293047 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0007 5188.293077 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0008 5188.293107 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0009 5188.293137 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000a 5188.293167 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000b 5188.293197 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000c 5188.293227 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000d 5188.293257 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000e 5188.293287 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000f 5188.293318 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0000 5188.293348 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0001 5188.293377 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0002 5188.427929 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0003 5188.427961 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0004 5188.427991 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0005 5188.428022 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0006 5188.428052 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0007 5188.428083 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0008 5188.428113 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0009 5188.428143 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000a 5188.428174 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000b 5188.428204 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000c .. 5360.126949 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000e 5360.126986 s: IPC: RX: mcu1_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000f 5360.127022 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0000 5360.127059 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0001 5360.127095 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0002 5360.127130 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0003 5360.127167 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0004 5360.127204 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0005 5360.127241 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0006 5360.127277 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0007 5360.127313 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0008 5360.127349 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead0009 5360.127386 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000a 5360.261926 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000b 5360.261964 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000c 5360.262001 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000d 5360.262037 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000e 5360.262072 s: IPC: RX: mcu2_0 (port 13) -> mpu1_0 (port 102) msg = 0xdead000f 5360.262109 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0000 5360.262145 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0001 5360.262181 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0002 5360.262218 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0003 5360.262253 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0004 5360.262290 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0005 5360.262326 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0006 5360.262363 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0007 5360.262399 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0008 5360.262435 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead0009 5360.262472 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000a 5360.262508 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000b 5360.262545 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000c 5360.262581 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000d 5360.397125 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000e 5360.397162 s: IPC: RX: mcu2_1 (port 13) -> mpu1_0 (port 102) msg = 0xdead000f APP IPC: Waiting for all messages to get echoed ... Done. APP IPC: Running remote service test ... 5367.693925 s: REMOTE_SERVICE_TEST: Running test for CPU mcu1_0 !!! 5367.694510 s: REMOTE_SERVICE_TEST: Test passed !!! 5367.694637 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu1_0 !!! 5367.695261 s: REMOTE_SERVICE_TEST: Test passed !!! 5367.695287 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu1_0 !!! 5377.695086 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu1_0 ... DONE !!! 5377.695165 s: REMOTE_SERVICE_TEST: Test passed !!! 5377.695180 s: REMOTE_SERVICE_TEST: Running test for CPU mcu2_0 !!! 5377.695725 s: REMOTE_SERVICE_TEST: Test passed !!! 5377.695812 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu2_0 !!! 5377.696413 s: REMOTE_SERVICE_TEST: Test passed !!! 5377.696437 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu2_0 !!! 5387.696314 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu2_0 ... DONE !!! 5387.696397 s: REMOTE_SERVICE_TEST: Test passed !!! 5387.696413 s: REMOTE_SERVICE_TEST: Running test for CPU mcu2_1 !!! 5387.696938 s: REMOTE_SERVICE_TEST: Test passed !!! 5387.697024 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu2_1 !!! 5387.697613 s: REMOTE_SERVICE_TEST: Test passed !!! 5387.697636 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu2_1 !!! 5397.697313 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu2_1 ... DONE !!! 5397.697392 s: REMOTE_SERVICE_TEST: Test passed !!! 5397.697406 s: REMOTE_SERVICE_TEST: Running test for CPU mcu3_0 !!! 5397.697930 s: REMOTE_SERVICE_TEST: Test passed !!! 5397.698014 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu3_0 !!! 5397.698599 s: REMOTE_SERVICE_TEST: Test passed !!! 5397.698622 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu3_0 !!! 5407.697746 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu3_0 ... DONE !!! 5407.697825 s: REMOTE_SERVICE_TEST: Test passed !!! 5407.697840 s: REMOTE_SERVICE_TEST: Running test for CPU mcu3_1 !!! 5407.698368 s: REMOTE_SERVICE_TEST: Test passed !!! 5407.698459 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu3_1 !!! 5407.699049 s: REMOTE_SERVICE_TEST: Test passed !!! 5407.699072 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu3_1 !!! 5417.698570 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu3_1 ... DONE !!! 5417.698649 s: REMOTE_SERVICE_TEST: Test passed !!! 5417.698663 s: REMOTE_SERVICE_TEST: Running test for CPU mcu4_0 !!! 5417.699185 s: REMOTE_SERVICE_TEST: Test passed !!! 5417.699270 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu4_0 !!! 5417.699847 s: REMOTE_SERVICE_TEST: Test passed !!! 5417.699874 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu4_0 !!! 5427.699538 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu4_0 ... DONE !!! 5427.699617 s: REMOTE_SERVICE_TEST: Test passed !!! 5427.699631 s: REMOTE_SERVICE_TEST: Running test for CPU mcu4_1 !!! 5427.700193 s: REMOTE_SERVICE_TEST: Test passed !!! 5427.700281 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU mcu4_1 !!! 5427.700902 s: REMOTE_SERVICE_TEST: Test passed !!! 5427.700934 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU mcu4_1 !!! 5437.700176 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU mcu4_1 ... DONE !!! 5437.700258 s: REMOTE_SERVICE_TEST: Test passed !!! 5437.700273 s: REMOTE_SERVICE_TEST: Running test for CPU c7x_1 !!! 5437.701019 s: REMOTE_SERVICE_TEST: Test passed !!! 5437.701148 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU c7x_1 !!! 5437.701826 s: REMOTE_SERVICE_TEST: Test passed !!! 5437.701857 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU c7x_1 !!! 5447.701434 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU c7x_1 ... DONE !!! 5447.701512 s: REMOTE_SERVICE_TEST: Test passed !!! 5447.701527 s: REMOTE_SERVICE_TEST: Running test for CPU c7x_2 !!! 5447.702050 s: REMOTE_SERVICE_TEST: Test passed !!! 5447.702135 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU c7x_2 !!! 5447.702696 s: REMOTE_SERVICE_TEST: Test passed !!! 5447.702720 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU c7x_2 !!! 5457.702499 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU c7x_2 ... DONE !!! 5457.702578 s: REMOTE_SERVICE_TEST: Test passed !!! 5457.702592 s: REMOTE_SERVICE_TEST: Running test for CPU c7x_3 !!! 5457.703114 s: REMOTE_SERVICE_TEST: Test passed !!! 5457.703196 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU c7x_3 !!! 5457.703775 s: REMOTE_SERVICE_TEST: Test passed !!! 5457.703799 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU c7x_3 !!! 5467.703573 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU c7x_3 ... DONE !!! 5467.703651 s: REMOTE_SERVICE_TEST: Test passed !!! 5467.703666 s: REMOTE_SERVICE_TEST: Running test for CPU c7x_4 !!! 5467.704188 s: REMOTE_SERVICE_TEST: Test passed !!! 5467.704275 s: REMOTE_SERVICE_TEST: Running test @ 0x900000000 of 1024 bytes size for CPU c7x_4 !!! 5467.704833 s: REMOTE_SERVICE_TEST: Test passed !!! 5467.704860 s: REMOTE_SERVICE_TEST: Running test for timer of 10000 msecs for CPU c7x_4 !!! 5477.704320 s: REMOTE_SERVICE_TEST: Timer test of 10000 msecs for CPU c7x_4 ... DONE !!! 5477.704398 s: REMOTE_SERVICE_TEST: Test passed !!! APP IPC: Running remote service test ... Done. 5477.704424 s: VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!! 5477.711890 s: VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!! APP: Deinit ... !!!
I am not really sure which source code files correspond to the vx_app_arm_ipc.out binary. In the SDK i see several places where IPC code is scattered. For example in the vision_apps/utilities/app_ipc and in the root at app_utils/utils/ipc. It is quite hard to understand what is the minimum software package required to run IPC on the QNX side. What i understand is that each application running on QNX that involves IPC comm. , needs to connect to tiipc_mgr . Can you please help figure out which are the files with source code for IPC application on QNX. I want to modify it. What is the target that i should use to build it.

