优雅的玩转TDA4VM

SDK简介

目前SDK是基于8.05版本基线进行开发,分为LINUX SDK工具开发包和RTOS SDK工具开发包。
LINUX SDK工具包为TDA4VM提供u-boot、内核以及文件系统。
RTOS SDK工具包包含视觉应用、以太网固件、MCU、RTOS系统设备驱动、HS设备开发等工具包开发功能,其中R5F核心、C66x核心、C7x深度学习核心的软件包都位于RTOS SDK中。

环境准备

  • 需要准备Ubuntu 18.04 64编译环境,官方指定在这个环境上编译和开发;
  • 如果需要快速调试,则准备一张不小于16G大小的SD卡;
  • 一根USB转UART的串口线;
  • TDA4VM-EVM硬件开发平台。

SDK下载

https://www.ti.com/tool/PROCESSOR-SDK-J721E?keyMatch=&tisearch=search-everything&usecase=partmatches
image.png
image.png
image.png
image.png

SDK安装

LINUX-SDK安装

进入Ubuntu 18.04 64的终端,执行以下命令

user@user:~$   chmod +x ./ti-processor-sdk-linux-j7-evm-<version>-Linux-x86-Install.bin 
user@user:~$   ./ti-processor-sdk-linux-j7-evm-<version>-Linux-x86-Install.bin

RTOS-SDK解压

进入Ubuntu 18.04 64的终端,执行以下命令

user@user:~$   tar -xf TI-processor-SDK-RTOS-J721E-evm-08_05_00_11.tar.gz

目录结构

LINUX-SDK目录

目录目录功能
bin包含用于配置主机系统的帮助程序脚本和目标设备。这些脚本中的大多数都由setup.sh使用脚本。
board-support主要包含linux内核源码,uboot源码,及其他组件。
configsyocto工具的构建链接(yocto构建大约需要十几个小时)。
docs直接打开index.html,即可阅读整个SDK的官方文档。
example-applications包含一些benchmarks等app demo。
filesystem存放默认、最小的文件系统。
linux-devkit交叉编译工具链和库以加快目标设备的开发速度。
Makefile顶级编译脚本(make)。
patches补丁、预留目录。
Rules.make设置顶级生成文件使用的默认值以及子组件生成文件。
setup.sh配置用户主机系统和目标开发系统。
yocto-build此目录允许重建SDK组件和使用Yocto Bitbake的文件系统。

RTOS-SDK目录

目录目录功能
cg_xml_2.61.00这是一个Perl脚本包,用于处理来的XML文件从TI代码生成工具。
dsplib_02_05_00_03DSPLIB 是使用TI-Keystone-3器件上提供的矩阵乘法加速器(MMA)和C7x ISA实现低级数字信号处理(DSP)功能的软件库。
dsplib_c66x_3_4_0_0是面向C程序员的优化DSP函数库。它包括许多可调用的、优化的、通用的信号处理例程。
ethfw以太网交换机固件软件堆栈,是基于FreeRTOS的应用程序,用于配置以太网交换机,托管在J721E和J7200 SoC主域中的Cortex R5F 0核0上。
fftlib_02_05_00_02FFTLIB是使用TI-Keystone-3器件上提供的矩阵乘法加速器(MMA)和C7x ISA实现低级快速傅立叶变换(FFT)函数的软件库。
imaging包含适用于TI-ISP的自动曝光、自动切换平衡算法,它还包含图像传感器驱动程序和调整参数。
ivision该软件包包括XDAIS DSP算法接口的扩展 用于TIDL和TIADALG。
mathlib_02_05_00_02为C7x实现了常见的优化math.h函数,可在TI的Keystone-3器件上使用。
mathlib_c66x_3_1_2_1实现了常见的优化math.h函数,通常用于计算密集型实时应用程序。
mcusw由微控制器抽象层(MCAL)和演示应用(MCUSS Demos)两部分组成,MCAL是AUTOSAR基本软件架构的最低层,用于AutoSAR的MCAL,在CCS中开发。
mmalib_02_05_00_07提供的矩阵乘法加速器(MMA)和C7x ISA实现低级卷积神经网络(CNN)、线性代数(LINALG)、快速傅立叶变换(FFT)和数字信号处理(DSP)函数的软件库。
pdk_jacinto_08_05_*此软件包包含设备驱动程序、引导加载程序、用于裸机/RTOS的CSL。
psdk_rtossdk的脚本及相关文档。
remote_device远程设备是处理器SDK RTOS汽车(PSDKRA)中的设备虚拟化和共享组件,可用于跨多个内核和操作系统(计算实体)共享物理设备。
sdl提供安全机制和功能的接口,用于开发涉及功能的软件应用程序安全。
tiadalg包含示例预处理、后处理和其他算法,用于自动驾驶。
ti-cgt-armllvm_*TI-Arm-Clang编译器工具1.3.0.LTS版本的代码生成器,包含TI-ARM-R5F编译器、链接器。
ti-cgt-c6000_8.3.7包含 C6x 编译器、链接器。
ti-cgt-c7000_3.0.0*包含 C7x 编译器、链接器、主机仿真模式库。
tidl_j721e_08_05*包含 TI 的深度学习推理解决方案,提供一套丰富的工具和优化的库,简化了 DNN 开发和部署的整个产品生命周期。
tiovxTIOVX是TI对OpenVX标准的实现,为C66x-DSP提供了优化的OpenVX内核;扩展API允许用户集成自己原生开发的自定义内核,并使用OpenVX-API调用它们。
ti-perception-toolkit里面的每个组件都提供数据结构和通用处理算法,用于有效开发自治系统所需的传感和感知功能。
vision_apps包含摄像头,ADAS,视觉,感知,OpenVX演示。
vxlib为C66x实现了OpenVX v1.1低级内核。
xdais_7_24_00_04由XDAIS DSP算法接口组成。
index.html直接打开index.html,即可阅读整个SDK的官方文档。

编译

运行以下命令,安装被Makefile编译所需要的包。

user@user:~$ sudo apt-get install build-essential autoconf automake bison flex libssl-dev bc u-boot-tools

快速编译命令

在ti-processor-sdk-linux目录下,顶层的Makefile。可以在根目录下执行下表相关命令,可以快速的让SDK工具包编译出所需要的产物。
使用以下编译命令,根据所需的输出内容执行编译,没有执行顺序。

命令含义文件路径
make linux编译 Linux 内核,生成*.dtbo,Image内核等文件ti-processor-sdk-linux-j7-evm*/board-support/built-images/
注:make linux执行完后,需要执行make linux install才能生成built-images这个文件(执行过程可能出现报错,只需要看是否生产built-images文件即可,不用管错误)
make u-boot将构建 u-boot 二进制文件 tiboot3.bin, tispl.bin & u-boot.imgti-processor-sdk-linux-j7-evm*/board-support/u-boot_build/
make sysfw-image构建系统固件 itb 文件,该文件是单个 系统固件版本以及不同主板的二进制文件配置ti-processor-sdk-linux-j7-evm*/board-support/k3-image-gen*/

编译u-boot映像

  • 进入所在Linux-SDK目录
#编译u-boot、构建 u-boot 二进制文件 tiboot3.bin, tispl.bin & u-boot.img
user@user:~/ti-processor-sdk-linux-j7-evm*$   make u-boot

编译系统固件

  • 进入所在Linux-SDK目录
#编译系统固件,生成sysfw.itb文件
user@user:~/ti-processor-sdk-linux-j7-evm*$   make sysfw-image

编译Image内核

  • 进入所在Linux-SDK目录
#编译linux内核,生成*.dtbo,Image内核等文件
user@user:~/ti-processor-sdk-linux-j7-evm*$   make linux

生成放置

系统由两部分组成:一个是boot分区,用于存放bootloader的uboot等;另一个是rootfs分区,用于存放Linux需要的文件系统。
注意:其中官方对boot分区使用fat32文件格式,rootfs分区使用ext4文件格式;但是ext4是相当于fat32文件格式的升级版本,所以可以根据自己的需求将两个分区统一为ext4文件格式。
所以生成的文件需要分别放置在两个不同的分区。

boot分区

boot分区放置在SD卡中
编译u-boot映像后,将生成的tiboot3.bin, tispl.bin & u-boot.img和sysfw.itb文件拷贝到boot分区,用于启动引导和引导内核加载。
boot分区放置在EMMC、OSPI上
具体参考烧写章节。

rootfs分区

rootfs分区放置在SD卡中
编译Linux内核后,将生成的*.dtbo,Image内核等文件拷贝到rootfs分区对于的目录下,实现内核和设备树的更新。
rootfs分区放置在EMMC上
具体参考烧写章节。
其中rootfs是存放根文件系统的,rootfs需要一个完整的文件系统。

烧写

快速上手

这里的快速上手,主要基于TDA4VM-EVM硬件平台环境的SD卡启动系统。

前置条件
  • TDA4VM-EVM硬件平台环境,及PC端Ubuntu 18.04 64编译环境;
  • TDA4VM-EVM本身带有SD卡接口;
  • SD卡会被划分为两个分区,u-boot分区和rootfs分区;

在ti-processor-sdk-linux-j7-evm*/bin/目录下包含一个名为 mksdboot.sh 的脚本。
此脚本的目地是通过对SD卡进行boot和rootfs分区、格式化来创建可启动的SD卡,最后将所需文件分别拷贝到所需分区,以便目标可以使用引导映像和文件系统。

格式化及烧写
  • 将SD卡插入PC中,查看df -h设备节点/dev/sd*,如/dev/sdb
  • 默认情况下,Ubuntu 使用 “dash” 作为 /bin/sh 的默认 shell,你必须通过运行以下命令重新配置为使用 bash
user@user:~$sudo dpkg-reconfigure dash
#出现选择,则选择否
  • 进入ti-processor-sdk-linux-j7-evm*文件目录下,执行以下脚本完成
#--device:指SD卡的设备节点名称
#--sdk:指SDK的目录路径
user@user:~$  sudo ./ti-processor-sdk-linux-j7-evm*/bin/mksdboot.sh --device /dev/sdb --sdk ./ti-processor-sdk-linux-j7-evm*
  • 将USB转串口的连接线接入TDA4VM开发板的SOC-UART

image.png

  • 配置sw8、sw9拨码开关至SD卡启动模式,参考”引导开关设置“章节
  • 烧写好的SD卡插入TDA4VM开发板,上电等待系统启动

image.png

  • 出现”j7-evm login:“需要输入root,即可进入系统
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏马潜行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值