- 说明
- 一、下载源码
- 二、准备文件
- 三、设置环境(首次编译需要)
- 四、编译PSDK Linux
- 五、编译PSDK RTOS
- 六、运行测试
- 关于 RTOS SDK
说明
硬件平台:TI TDA4VM
开发环境:Ubuntu 20.04
SDK参考:
Processor SDK Linux for J721e 08_02_00
Processor SDK RTOS J721E 08_02_00
一、下载源码
进入TI 官网,下载所需内容。链接:PROCESSOR-SDK-J721E
ti-processor-sdk-linux-j7-evm-08_02_00_03-Linux-x86-Install.bin
ti-processor-sdk-rtos-j721e-evm-08_02_00_05.tar.gz
ti-processor-sdk-rtos-j721e-evm-08_02_00_05-prebuilt.tar.gz
psdk_rtos_ti_data_set_08_02_00.tar.gz
#准备编译路径,创建build目录 mkdir ~/platform/tda4/802/build #执行以下指令,安装ti-processor-sdk-linux-j7-evm-08_02_00_03文件到build目录下 ./ti-processor-sdk-linux-j7-evm-08_00_00_08-Linux-x86-Install.bin #解压下载源码的另外2个文到build目录下 ti-processor-sdk-rtos-j721e-evm-08_02_00_05 ti-processor-sdk-rtos-j721e-evm-08_02_00_05-prebuilt #提供了几个常用脚本,这些脚本可以很方便的制作可以启动的TF卡,并且可以运行完整的Demo #准备好上一版本的基础镜像和辅助脚本到build目录下 update_rootfs scripts #准备好更新的源码 kernel #准备好设置环境可能下载较慢的部分安装包(首次编译需要),可从之前环境拷贝 setup_psdk_rtos
build/update_rootfs目录结构如下:
base_image和scripts里的内容可从ti-processor-sdk-rtos-j721e-evm-08_02_00_05-prebuilt得到,BOOT和rootfs建好目录即可。
build/scripts目录结构如下:
update_to_uboot:
#!/bin/bash
BUILD_PATH=./ti-processor-sdk-linux-j7-evm-08_02_00_03
RTOS_PATH=./ti-processor-sdk-rtos-j721e-evm-08_02_00_05
ROOT_PATH=./update_rootfs
update_uboot()
{
if [ -d $ROOT_PATH ]
then
cp $BUILD_PATH/board-support/u-boot_build/a72/tispl.bin $ROOT_PATH/BOOT/
cp $BUILD_PATH/board-support/u-boot_build/a72/u-boot.img $ROOT_PATH/BOOT/
cp $BUILD_PATH/board-support/u-boot_build/r5/tiboot3.bin $ROOT_PATH/BOOT/
cp $RTOS_PATH/vision_apps/apps/basic_demos/app_linux_fs_files/uEnv.txt $ROOT_PATH/BOOT/uenv.txt
cp $RTOS_PATH/vision_apps/apps/basic_demos/app_linux_fs_files/board_id.txt $ROOT_PATH/BOOT/
echo "copy uboot Done!"
else
echo "root path not exist!!!"
fi
}
update_uboot
update_to_rootfs:
#!/bin/bash
BUILD_PATH=./ti-processor-sdk-linux-j7-evm-08_02_00_03
ROOT_PATH=./update_rootfs/rootfs
update_kernel()
{
if [ -d $ROOT_PATH ]
then
cp $BUILD_PATH/targetNFS/boot/Image $ROOT_PATH/boot/
cp $BUILD_PATH/targetNFS/boot/*.dtb $ROOT_PATH/boot/
cp $BUILD_PATH/targetNFS/boot/*.dtbo $ROOT_PATH/boot/
cp $BUILD_PATH/targetNFS/boot/System.map $ROOT_PATH/boot/
cp $BUILD_PATH/targetNFS/boot/vmlinux $ROOT_PATH/boot/
cp -r $BUILD_PATH/targetNFS/lib/modules/ $ROOT_PATH/lib/
echo "copy kernel and modules Done!"
else
echo "root path not exist!!!"
fi
}
update_kernel
rtos_update_to_rootfs:
#!/bin/bash
BUILD_PATH=~/tmp/tivision_apps_targetfs_stage
ROOT_PATH=./update_rootfs/rootfs
update_rtos()
{
if [ -d $ROOT_PATH ]
then
cp -r $BUILD_PATH/* $ROOT_PATH/
echo "copy rtos Done!"
else
echo "root path not exist!!!"
fi
}
update_rtos
三、设置环境(首次编译需要)
#进入build目录 cd ~/platform/tda4/802/build/ #PSDK Linux开发环境设置 cd ti-processor-sdk-linux-j7-evm-08_02_00_03 ./setup.sh source linux-devkit/environment-setup #PSDK RTOS开发环境设置 cp ti-processor-sdk-linux-j7-evm-08_02_00_03/board-support/prebuilt-images/boot-j7-evm.tar.gz ti-processor-sdk-rtos-j721e-evm-08_02_00_05/ cp ti-processor-sdk-linux-j7-evm-08_02_00_03/filesystem/tisdk-default-image-j7-evm.tar.xz ti-processor-sdk-rtos-j721e-evm-08_02_00_05/ cd ti-processor-sdk-rtos-j721e-evm-08_02_00_05 ./psdk_rtos/scripts/setup_psdk_rtos.sh #TF卡分区格式化(如果已经分区好,则跳过此步骤),使用df命令查看TF卡所在路径/dev/sdX df cd update_rootfs ./scripts/mk-linux-card.sh /dev/sdX
注意:
执行./setup时,会判断系统版本为Ubuntu 18.04,自行修改下相应脚本,取消系统判断
执行./psdk_rtos/scripts/setup_psdk_rtos.sh时,下载gcc*、opkg-utils、glm、glew、ATF、OPTEE等包如果比较慢,可以找之前环境拷贝过来
#将新的linux代码从kernel覆盖到build目录(无代码更新不需要覆盖) cp -r kernel/ti-processor-sdk-linux-j7-evm-08_02_00_03/* build/ti-processor-sdk-linux-j7-evm-08_02_00_03/ #进入build目录 cd ~/platform/tda4/802/build/ #编译代码 cd ti-processor-sdk-linux-j7-evm-08_02_00_03 make clean make all -j20 make linux_install #将编译好的文件复制到update_rootfs目录下 ./scripts/update_to_uboot.sh ./scripts/update_to_rootfs.sh五、编译PSDK RTOS
#将新的linux代码从kernel覆盖到build目录(无代码更新不需要覆盖) cp -r kernel/ti-processor-sdk-rtos-j721e-evm-08_02_00_05/* build/ti-processor-sdk-rtos-j721e-evm-08_02_00_05 #进入build目录 cd ~/platform/tda4/802/build/ #编译代码 cd ti-processor-sdk-rtos-j721e-evm-08_02_00_05/vision_apps/ make sdk -j20 make linux_fs_install #将编译好的文件复制到update_rootfs目录下 ./scripts/rtos_update_to_rootfs.sh六、运行测试
#进入上面编译好的update_rootfs目录下,烧写TF卡测试 cd base_rootfs ./scripts/install_to_sd_card.sh #将数据集解压到TF卡中对应的位置,这样默认SDK配套的Demo就可以正常运行 cd ti-processor-sdk-rtos-j721e-evm-08_02_00_05-prebuilt ./scripts/install_data_set_to_sd_card.sh ../psdk_rtos_ti_data_set_08_02_00.tar.gz #将TF卡插入TDA4硬件平台,启动后通过调试串口root登录,测试初始化环境,以下操作在TDA4硬件平台上 cd /opt/vision_apps source ./vision_apps_init.sh #Now run one of the below scripts/applications to run the demos ./run_app_tidl.sh - Image classification demo (needs display) ./run_app_tidl_avp2.sh - Auto valet parking demo (needs display) ./run_app_dof.sh - Dense optical flow demo (needs display) ./run_app_stereo.sh - Stereo disparity demo (needs display) ./run_app_c7x.sh - C7x sample kernel demo ./run_app_srv.sh - 3D SRV 4 camera demo (needs display, Fusion1 board, 4x IMX390 camera) ./run_app_single_cam.sh - Single camera + VISS + Display demo (needs display, Fusion1 board, 1x IMX390 or compatible camera’s) ./run_app_multi_cam.sh - Multi (4x) camera + VISS + Display demo (needs display, Fusion1 board, 4x IMX390 or compatible camera’s) ./vx_app_arm_opengl_mosaic.out - OpenGL + OpenVX test ./vx_app_linux_arm_ipc.out - inter processor communication test ./vx_app_linux_arm_mem.out - memory allocation test ./vx_app_tutorial.out - TI OpenVX tutorial ./vx_app_conformance.out - TI OpenVX conformance tests #Once the demo runs, you should see output on the display #Display can be eDP or HDMI as selected via Makefile and configuration options #Type 'x' to exit the demo and run another demo
关于 RTOS SDK
RTOS SDK是和Linux SDK并列的开发包,需要一起使用。这个SDK提供的可以通过ARM Cortex-A72访问的特性包括:
TIDL on C7x Vision pre/post processing functions on C6x Vision HW accelerators (VPAC/DMPAC) on R5F CSI2RX on R5F Remote display on R5F Ethernet switch on R5F MCU/AutoSAR MCAL on R5F OpenVX on Linux A72 and RTOS C6x, C7x, R5F Deep learning demos on Linux A72 Surround view demos on Linux A72



