1. Jacinto BSP源码树结构与驱动模块定位
任务说明
本案例目标是在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挂载方式拷贝文件。