1. 搭建TI Jacinto SDK开发环境

任务说明

本案例目标是在Ubuntu主机上完成TI Jacinto系列处理器(如DRA82x/TDA2x)的Processor SDK开发环境搭建,包括:安装Processor SDK Linux/RTOS包、配置交叉编译工具链、验证目标板与主机的连接。完成后应能在主机上执行交叉编译,并能通过串口或网络访问目标板。

环境与依赖

  • Ubuntu 18.04/20.04 LTS x86_64主机,至少50GB空闲磁盘
  • 目标板:TI Jacinto平台评估板(如J6 Eco EVM或DRA82x EVM),通过USB转串口线和网线连接主机
  • Processor SDK Linux包:ti-processor-sdk-linux-automotive-dra82x-evm-06_03_00_106.tar.gz(从TI官网下载对应Jacinto版本)
  • 主机已安装基础工具:build-essential、git、wget、minicom或screen

安装Processor SDK

将SDK压缩包解压到用户目录,并运行安装脚本完成环境配置:

# 解压SDK(以实际下载的文件名为准)
tar -xzf ti-processor-sdk-linux-automotive-dra82x-evm-06_03_00_106.tar.gz
cd ti-processor-sdk-linux-automotive-dra82x-evm-06_03_00_106

# 运行SDK环境配置脚本(自动设置环境变量并安装必要依赖)
./setup.sh

安装脚本会提示安装缺失的Ubuntu软件包,按提示输入y确认。安装完成后,SDK目录下应包含以下关键子目录:

  • linux-devkit/sysroots/x86_64-arago-linux/usr/bin/:交叉编译工具链位置
  • board-support/prebuilt-images/:预编译内核与设备树镜像
  • filesystem/:目标板根文件系统

配置交叉编译工具链

SDK的setup.sh已自动将工具链路径加入环境变量。若需手动配置,在~/.bashrc末尾追加以下内容:

export TI_SDK_PATH=~/ti-processor-sdk-linux-automotive-dra82x-evm-06_03_00_106
export PATH=$TI_SDK_PATH/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

执行source ~/.bashrc使配置生效。验证工具链可用:

arm-linux-gnueabihf-gcc --version

预期输出示例(版本号可能因SDK版本不同而异):

arm-linux-gnueabihf-gcc (GCC) 8.2.0

验证目标板连接

使用串口线连接目标板与主机,识别串口设备名(通常为/dev/ttyUSB0或/dev/ttyS0):

ls /dev/ttyUSB* /dev/ttyS* 2>/dev/null
# 若权限不足,将当前用户加入dialout组
sudo usermod -a -G dialout $USER
# 重新登录后生效

使用串口终端连接目标板(波特率115200):

minicom -D /dev/ttyUSB0 -b 115200
# 或使用screen
# screen /dev/ttyUSB0 115200

目标板上电后,串口终端应显示U-Boot启动日志并进入Linux系统。在目标板登录后执行以下命令确认网络连通性:

# 在目标板串口终端中执行
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
ping -c 3 192.168.1.1   # 假设主机IP为192.168.1.1

若ping通,说明目标板与主机网络连接正常。也可通过SSH从主机访问目标板:

ssh root@192.168.1.100

验证交叉编译环境

编写一个最小C程序,交叉编译后在目标板上运行,验证整个工具链闭环:

// hello_jacinto.c
#include <stdio.h>

int main(void) {
    printf("Jacinto SDK environment OK\n");
    return 0;
}
# 主机上交叉编译
arm-linux-gnueabihf-gcc -o hello_jacinto hello_jacinto.c
# 通过scp拷贝到目标板(目标板IP为192.168.1.100)
scp hello_jacinto root@192.168.1.100:/home/root/
# 在目标板串口终端执行
# ./hello_jacinto

通过条件:目标板上执行./hello_jacinto后输出Jacinto SDK environment OK,且无动态链接错误(若提示缺少共享库,需在目标板文件系统中安装匹配的libc,或使用-static重新编译)。

常见问题

  • 串口无输出:检查串口线是否连接正确、目标板拨码开关是否设为UART启动模式、主机串口权限是否已授权。
  • 交叉编译提示找不到头文件:确认CROSS_COMPILE环境变量已正确设置,且编译时未混用主机gcc。
  • scp连接被拒绝:目标板文件系统需先启动SSH服务(/etc/init.d/sshd start),或改用NFS挂载方式拷贝文件。