BBAI64 now can use TI SDK10.0 and debug R5

now , mcu1_0 can running normally too. my operation is as follows:

build vision-apps for mcu1_0

enable mcu1_0

# sdk_builder/vision_apps_build_flags.mak
BUILD_CPU_MCU1_0?=yes

enable mcu1_0 ipc

#vision_apps/platform/j721e/rtos/common/app_cfg.h
#define ENABLE_IPC_MCU1_0

enable uboot build in rtos sdk

#sdk_builder/tools_path.mak
export PSDK_LINUX_PATH ?= /home/xxxxx/BB-AI64/ti-processor-sdk-linux-adas-j721e-evm-10_00_00_08
#sdk_builder/makerules/makefile_uboot.mak
$(MAKE) -C $(PSDK_LINUX_PATH)/board-support/ti-u-boot-* ARCH=arm CROSS_COMPILE=$(GCC_LINUX_ARM_ROOT)/bin/aarch64-none-linux-gnu- O=$(SOC)-arm64-linux -j8 $(SOC)_beagleboneai64_a72_defconfig

$(MAKE) -C $(PSDK_LINUX_PATH)/board-support/ti-u-boot-* ARCH=arm CROSS_COMPILE=$(GCC_LINUX_ARM_ROOT)/bin/aarch64-none-linux-gnu- DM=$(PSDK_LINUX_PATH)/board-support/prebuilt-images/ti-dm/$(SOC)/ipc_echo_testb_mcu1_0_release_strip.xer5f BL31=$(PSDK_LINUX_PATH)/board-support/prebuilt-images/bl31.bin TEE=$(PSDK_LINUX_PATH)/board-support/prebuilt-images/bl32.bin BINMAN_INDIRS=$(PSDK_LINUX_PATH)/board-support/prebuilt-images O=$(SOC)-arm64-linux

build vision_apps

cd sdk_builder
make vision_apps -j12
make uboot

rename uboot and renew

cp ../ti-processor-sdk-linux-adas-j721e-evm-10_00_00_08/board-support/ti-u-boot-2024.04+git/j721e-arm64-linux/tispl.bin_unsigned vision_apps/out/J721E/tispl.bin
cp ../ti-processor-sdk-linux-adas-j721e-evm-10_00_00_08/board-support/ti-u-boot-2024.04+git/j721e-arm64-linux/u-boot.img_unsigned vision_apps/out/J721E/u-boot.img 
cp tispl.bin xxx/boot_partition
cp u-boot.img  xxx/boot_partition

cp all .out to rootfs

cp vision_apps/out/J721E/R5F/FREERTOS/debug/*.out xxx/lib/firmware/vision_apps_evm/
cp vision_apps/out/J721E/C66/FREERTOS/debug/*.out xxx/lib/firmware/vision_apps_evm/
cp vision_apps/out/J721E/C71/FREERTOS/debug/*.out xxx/lib/firmware/vision_apps_evm/

#rename 
cd xxx/lib/firmware/vision_apps_evm/
mv vx_app_rtos_linux_mcu1_0_strip.out ipc_echo_testb_mcu1_0_release_strip.xer5f
cd xxx/lib/firmware/
ln -sf /usr/lib/firmware/vision_apps_evm/ipc_echo_testb_mcu1_0_release_strip.xer5f j7-mcu-r5f0_0-fw

# cp a72 out
cp vision_apps/out/J721E/A72/LINUX/debug/*.out  xxx/opt/vision_apps/

# renew libtivision_apps.so.10.0.0
cp vision_apps/out/J721E/A72/LINUX/debug/libtivision_apps.so.10.0.0 xxx/usr/lib/

Run and Debug

/opt/vision_apps/vision_apps_init.sh

vision_apps log

root@j721e-evm:~# /opt/vision_apps/vision_apps_init.sh
[MCU1_0]      0.031589 s: CIO: Init ... Done !!!
[MCU1_0]      0.031698 s: ### CPU Frequency = 1000000000 Hz
[MCU1_0]      0.031744 s: CPU is running FreeRTOS
[MCU1_0]      0.031769 s: APP: Init ... !!!
[MCU1_0]      0.031791 s: MEM: Init ... !!!
[MCU1_0]      0.031830 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ d8000000 of size 8388608 bytes !!!
[MCU1_0]      0.031892 s: MEM: Init ... Done !!!
[MCU1_0]      0.031915 s: IPC: Init ... !!!
[MCU1_0]      0.032051 s: IPC: 9 CPUs participating in IPC !!!
[MCU1_0]      0.032122 s: IPC: Waiting for HLOS to be ready ... !!!
[MCU1_0]     10.648225 s: IPC: HLOS is ready !!!
[MCU1_0]     10.656238 s: IPC: Init ... Done !!!
[MCU1_0]     10.656326 s: APP: Syncing with 8 CPUs ... !!!
[MCU1_0]     11.833794 s: APP: Syncing with 8 CPUs ... Done !!!
[MCU1_0]     11.834271 s: REMOTE_SERVICE: Init ... !!!
[MCU1_0]     11.844718 s: REMOTE_SERVICE: Init ... Done !!!
[MCU1_0]     11.856543 s: APP: Init ... Done !!!
[MCU1_0]     11.856599 s: APP: Run ... !!!
[MCU1_0]     11.856630 s: IPC: Starting echo test ...
[MCU1_0]     11.867737 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] mcu3_0[.] mcu3_1[x] C66X_1[x] C66X_2[x] C7X_1[x]
[MCU1_0]     11.867901 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] mcu3_0[P] mcu3_1[x] C66X_1[x] C66X_2[x] C7X_1[x]
[MCU1_0]     11.868473 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] mcu3_0[P] mcu3_1[P] C66X_1[.] C66X_2[x] C7X_1[x]
[MCU1_0]     11.868723 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] mcu3_0[P] mcu3_1[P] C66X_1[P] C66X_2[x] C7X_1[x]
[MCU1_0]     11.869173 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] mcu3_0[P] mcu3_1[P] C66X_1[P] C66X_2[P] C7X_1[x]
[MCU1_0]     11.869560 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] mcu3_0[P] mcu3_1[P] C66X_1[P] C66X_2[P] C7X_1[P]
[MCU1_0]     11.869652 s: APP: Run ... Done !!!
[MCU1_0]     11.895742 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[P] mcu2_1[P] mcu3_0[P] mcu3_1[P] C66X_1[P] C66X_2[P] C7X_1[P]
[MCU1_0]     12.869690 s: MCU1_0 Run, counter:1
[MCU1_0]     13.869683 s: MCU1_0 Run, counter:2
[MCU1_0]     14.869680 s: MCU1_0 Run, counter:3
[MCU1_0]     15.869688 s: MCU1_0 Run, counter:4
[MCU1_0]     16.869688 s: MCU1_0 Run, counter:5
[MCU1_0]     17.869680 s: MCU1_0 Run, counter:6
[MCU1_0]     18.869678 s: MCU1_0 Run, counter:7
[MCU1_0]     19.869677 s: MCU1_0 Run, counter:8

The above operations refer to ti’s documentation: 8.3. MCU1_0 Application Development with SYSFW — Processor SDK RTOS J721E 0-app-with-sysfw

1 Like