TDA4(TDA4VM) Linux SDK
1. 概述——安装和编译Linux SDK
注意:PC机必须使用ubuntu 18.04,否则会出现问题!
1.1 入门部分
1.1.1 安装SDK
安装ti-processor-sdk-linux-automotive-j7-evm-07_00_01-Linux-x86-Install.bin
这个SDK里包含了开发文件系统、目标文件系统、例程应用、工具链、BSP、脚本和文档。J721e的Linux SDK包含了ARM GCC工具链。
安装命令:
chmod +x ./ti-processor-sdk-linux-j7-evm-<version>-Linux-x86-Install.bin
./ti-processor-sdk-linux-j7-evm-<version>-Linux-x86-Install.bin
1.1.2 运行setup脚本
Linux SDK安装之后,运行目录下的setup.sh脚本,这个脚本在Linux SDK的安装目录下。脚本主要安装minicom、telnet、tftp和NFS等。
1.1.3 在Linux上格式化SD卡
在${PSDKL}/bin目录下有一个mksdboot.sh脚本,这个脚本可以进行SD卡分区和格式化,这样可以利用boot映像和文件系统进行启动。当然,前提是你有一个大于8GB的SD卡和读卡器。如果SD卡不能启动,可以用下面的命令恢复环境变量:
env default –a –f
saveenv
下面是分区SD卡,注意要提前看好SD卡所在的设备号,别搞错了:
sudo <SDK INSTALL DIR>/bin/mksdboot.sh --device /dev/sdX --sdk <SDK INSTALL DIR>
这样SD卡就会被分区,然后将tisdk-default-image-<platform>.tar.xz文件解压拷贝到上面。
如果想使用用一个小的文件系统,则可以修改mksdboot.sh文件中的
root_fs="$sdkdir/filesystem/tisdk-default-image-<platform>.tar.xz"
将其改为:
root_fs="$sdkdir/filesystem/tisdk-tiny-image-<platform>.tar.xz"
1.1.4 顶层的Makefile
这部分介绍了make相关的命令。可以编译出Linux内核和uboot等部分,并构建文件系统。
具体可以参看文档对应部分。
1.1.5 GCC交叉编译工具链
Processor SDK Linux J721e包含用于Cortex A设备的基于ARM的工具链。ARM交叉编译工具链还支持硬件浮点(hardfp)。包括arm-arago-linux-gnueabi在内的旧工具链使用软件浮点(softfp)。这导致使用hardfp工具链构建的软件与使用softfp工具链构建的软件不兼容。
默认情况下,Processor SDK Linux J721e包中包含的所有二进制文件都将为hardfp构建。
工具链二进制文件的名称也已从SDK的旧版本更新。以前的版本可能使用了前缀“arm-arago-linux-gnueabi-”。当前的SDK ARMv7工具链使用前缀“arm-linux-gnueabihf-”例如,新工具链的gcc编译器名为arm-linux-gnueabihf-gcc。
${Linux SDK DIR}/linux-devkit/中包含了工具链,其结构如下:
如果交叉编译Linux内核,先要设置环境变量:
source linux-devkit/environment-setup
1.2 编译得到SDK
这里是基于yocto的形式来编译得到SDK,具体可以参考对应的文档,可能还需要翻墙软件,否则有些代码下载不下来。
1.3 目录结构
bin/:包含用于配置主机系统和目标设备的帮助脚本。大多数脚本都被setup.sh使用。
board-support/:包含在移植到自定义平台时需要修改的SDK组件。这包括内核和bootloader以及任何树外驱动程序。
doc/:包含各种SDK文档,如软件清单和附加用户指南。这也是你可以找到带有设备培训资料的培训目录位置。
example-applications/:包含在开箱即用demo中看到的TI提供的示例应用程序的源代码,包括am-sysinfo、arm-benchmarks-1.3、oprofile-example、pru-icss-5.7.0。
filesystem/:包含参考文件系统。其中包括较小的基本文件系统以及功能齐全的SDK文件系统。
linux-devkit/:包含交叉编译工具链和库来加速目标设备的开发。
Makefile:从SDK的顶层为许多SDK组件提供构建目标。
Rules.make:设置顶级生成文件以及子组件生成文件使用的默认值。
setup.sh:配置用户主机系统以及开发目标系统。
configs/:包含Yocto config,用于描述用于构建SDK的不同Yocto recipe源和层。
yocto-build/:此目录允许使用yocto bitbake重建SDK组件和文件系统。有关运行yocto构建的更多详细信息,请参阅构建SDK部分。
1.4 RTOS SDK
注意:编译前将3种交叉工具链都放在${PSDKR}目录下
RTOS SDK是和Linux SDK并列的开发包,需要一起使用。这就需要下载RTOS SDK,即PSDKR。这个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