Part Number: SK-TDA4VM
Tool/software:
Hi TI,
We need to merge the IPC with the object detection model. Whenever an object is detected, a message should be sent to the MCU1_0 through IPC.
How to merge the code?
How do we build and run the code?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: SK-TDA4VM
Tool/software:
Hi TI,
We need to merge the IPC with the object detection model. Whenever an object is detected, a message should be sent to the MCU1_0 through IPC.
How to merge the code?
How do we build and run the code?
Hi,
I am using ti-processor-sdk-linux-edgeai-j721e-evm-09_02_00_05 and ti-processor-sdk-rtos-j721e-evm-09_02_00_05 for vision apps.
I have build the default vision apps demos.
Object detection command:
root@tda4vm-sk:/opt/vision_apps# ./vx_app_tidl_od.out --cfg app_od.cfg
While running the above command, it prints the following log, indicating "IPC: Init ... Done"
Could you clarify what this means? Does it imply that the IPC is already initialized?
log file:
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=5) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
37.384091 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
37.387181 s: VX_ZONE_INIT:Enabled
37.387191 s: VX_ZONE_ERROR:Enabled
37.387196 s: VX_ZONE_WARNING:Enabled
37.389705 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0
37.389791 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1
37.389865 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2
37.389930 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3
37.389939 s: VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
37.394664 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
Default param set!
Parsed user params!
Updated user params!
Scaler Init Done!
TIDL Init Done!
Pre Proc Update Done!
Pre Proc Init Done!
Draw detections Update Done!
Draw Detections Init Done!
Img Mosaic Init Done!
Display Init Done!
App Init Done!
App Create Graph Done!
App Verify Graph Done!
App Send MSC Command Done!
App Verify Graph Done!
Running frame 500
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 500 of 510 ... Done.
Running frame 501
App Reading Input Done!
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 501 of 510 ... Done.
Running frame 502
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 502 of 510 ... Done.
Running frame 503
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 503 of 510 ... Done.
Running frame 504
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 504 of 510 ... Done.
Running frame 505
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 505 of 510 ... Done.
Running frame 506
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 506 of 510 ... Done.
Running frame 507
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 507 of 510 ... Done.
Running frame 508
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 508 of 510 ... Done.
Running frame 509
App Writing Outputs Start...
App Writing Outputs Done!
App Reading Input Done!
App Process Graph Done!
app_tidl_od: Frame ID 509 of 510 ... Done.
app_tidl_od: Iteration 0 of 1 ... Done.
App Run Graph Done!
App Delete Graph Done!
Input image release Done!
Scaler deinit Done!
Pre-Proc deinit Done!
TIDL deinit Done!
Draw detections deinit Done!
Mosaic deinit Done!
Display deinit Done!
TIDL unload Done!
ImgProc unload Done!
VideoIO unload Done!
HWA unload Done!
Context released!
App De-init Done!
39.544425 s: VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
39.548818 s: VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
APP: Deinit ... !!!
REMOTE_SERVICE: Deinit ... !!!
REMOTE_SERVICE: Deinit ... Done !!!
IPC: Deinit ... !!!
IPC: DeInit ... Done !!!
MEM: Deinit ... !!!
DDR_SHARED_MEM: Alloc's: 27 alloc's of 26620922 bytes
DDR_SHARED_MEM: Free's : 27 free's of 26620922 bytes
DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes
MEM: Deinit ... Done !!!
APP: Deinit ... Done !!!Hi,
By default, MCU1_0 is not enabled in vision_apps. You can see the file vision_apps/platform/j721e/rtos/common/app_cfg.h, the macro ENABLE_IPC_MCU1_0 which is currently disabled. You would have to enable this and then in sdk_builder/vision_apps_build_flags.mak change BUILD_CPU_MCU1_0?=yes
With this you can enable IPC on MCU1_0 in vision_apps.
To confirm if MCU1_0 is enabled, you can run ./vision_apps_init.sh and get the logs from [MCU1_0] core
Only after this you would be able to send the IPC to MCU1_0 core from A72
Regards,
Nikhil
Hi,
I need to understand the image data flow between the A72, C66x, C71x, and R5F cores.
I have referred to object detection in the following links:
We need to monitor whether each core receives the image buffer or not.
Do these cores use IPC, DMA, or something else for image data transfer?
Hi,
The datapath is as mentioned in the above vision_apps demo link you have shared.
The memory for the data is allocated by A72 running an HLOS and in the graph, the data goes from one node to another (i.e one core to another)
So here, the memory is allocated in a shared memory region by A72, and the memory address of this buffer is passed to each node running on a particular core using IPC framework.
You can see the process callback of everynode to check the memory address received which corresponds to the data information.
Regards,
Nikhil