4. 开发环境搭建与SDK获取

Jacinto 域控制器的软件开发不是“装一个 IDE 就能开工”的流程,它同时涉及主机侧工具链、目标板侧运行环境、SDK 源码与预编译镜像、以及启动与调试通道。本节围绕 Code Composer Studio(CCS)、Processor SDK RTOS/Linux、Yocto 构建、SD 卡启动与调试串口配置展开,目标是让读者能独立搭出一套可编译、可烧写、可观察启动日志的最小开发环境。

一、主机环境与工具链定位

TI 官方推荐在 Ubuntu LTS(如 20.04/22.04)上做 Jacinto 开发,主机需要预留约 100 GB 以上磁盘空间,因为 Yocto 构建的临时文件与下载缓存会迅速膨胀。主机侧工具大致分三层:

  • IDE 与调试层:Code Composer Studio,用于工程管理、编译、JTAG 调试、寄存器与内存查看。
  • SDK 与构建层:Processor SDK RTOS 与 Processor SDK Linux,前者面向 MCU/R5F、DSP 等实时核,后者面向 A72 Linux 侧;Linux SDK 内部集成 Yocto,用于生成完整根文件系统与镜像。
  • 烧写与观察层:SD 卡制作工具、串口终端(如 minicom、picocom、Tera Term),用于启动镜像和查看 U-Boot/Kernel 日志。

需要特别区分:CCS 主要解决“代码级调试”,而 SDK 解决“系统级构建与启动”。两者不是替代关系,而是配合关系。典型做法是先用 SDK 生成可启动镜像,再用 CCS 对关键核或驱动做单步调试。

二、Code Composer Studio 安装与配置

从 TI 官网下载 CCS 安装包后,在 Linux 下执行安装脚本,安装时至少勾选 Jacinto 对应的器件支持包(Device Support)与编译器(ARM CGT、C6000 CGT 等)。安装完成后,建议在 CCS 中做三件事:

  1. 设置工作区(Workspace)到独立目录,避免与 SDK 源码目录混放。
  2. 在 Window → Preferences → Code Composer Studio → Build → Compilers 中确认编译器路径已被识别。
  3. 导入 SDK 自带的示例工程,验证能否编译通过,这是判断环境是否可用的最快方式。

如果后续要用 JTAG 调试,还需要安装对应的仿真器驱动(如 XDS110、XDS560),并在 Target Configuration 中新建 .ccxml 文件,选择正确的 SoC 型号与核(如 A72、R5F、C7x)。

三、Processor SDK RTOS/Linux 获取与目录结构

Processor SDK 可从 TI 官网按器件型号下载,常见形式是安装包(.bin)或压缩包。安装后目录结构通常包含:

目录作用
board-support/U-Boot、Kernel、设备树等源码
linux-devkit/交叉编译工具链
bin/环境变量脚本,如 setup.sh
filesystem/预编译根文件系统
example-applications/示例程序与测试用例

每次打开新终端,先执行 source setup.sh 或对应环境脚本,把交叉编译器加入 PATH。可以用 echo $PATH 和 aarch64-none-linux-gnu-gcc -v 验证工具链是否生效。

四、Yocto 构建流程

Processor SDK Linux 的根文件系统与镜像由 Yocto 构建。核心步骤是:进入 SDK 的 Yocto 目录,执行环境初始化脚本,然后选择目标机器(MACHINE)并启动 BitBake。例如:

cd <sdk>/yocto-build
source oe-init-build-env
# 编辑 conf/local.conf,设置 MACHINE = "j721e-evm"
bitbake tisdk-default-image

首次构建耗时较长,可能数小时,取决于主机性能与网络。构建产物通常位于 build/tmp/deploy/images/<machine>/,包括 tisdk-default-image-<machine>.wic.xz、Image、设备树 .dtb 等。若只需快速验证,可先用 SDK 预编译镜像,不必每次全量构建。

建议把 DL_DIR 与 SSTATE_DIR 指向独立大容量目录,避免重复下载与重复编译,显著缩短后续构建时间。

五、SD 卡启动与调试串口配置

SD 卡启动是最常用的验证方式。制作流程是:用 balenaEtcher 或 dd 将 .wic.xz 解压后的镜像写入 SD 卡,插入板卡,设置启动模式拨码为 SD 启动,上电后通过串口观察日志。串口参数通常为 115200-8-N-1,无流控。Linux 下可用:

sudo picocom -b 115200 /dev/ttyUSB0

若能看到 U-Boot 打印、Kernel 解压与登录提示,说明启动链路基本正常。常见问题包括:拨码错误、串口线接错、SD 卡未正确写入、镜像与板卡型号不匹配。排查时优先确认串口是否有任何输出,再检查启动模式与镜像版本。

Jacinto 开发环境搭建与启动链路 主机侧(Ubuntu) Code Composer Studio Processor SDK RTOS/Linux 构建与镜像生成 Yocto / BitBake .wic 镜像 / Image / .dtb 目标板(Jacinto EVM) SD 卡启动 U-Boot → Kernel → RootFS 调试串口 115200-8-N-1 / 无流控 picocom /dev/ttyUSB0 启动结果判断 有日志 → 链路正常 无日志 → 查拨码/串口/镜像 关键检查点 1. 工具链 PATH 是否生效(aarch64-none-linux-gnu-gcc -v) 2. 镜像与板卡型号是否匹配(MACHINE = j721e-evm) 3. SD 卡写入是否完整(dd 后 sync) 4. 串口设备节点是否正确(/dev/ttyUSB0)

六、最小可用环境验收清单

完成上述步骤后,可以用下面这份清单快速判断环境是否可用:

检查项验证命令/现象通过标准
交叉编译器aarch64-none-linux-gnu-gcc -v能打印版本信息
CCS 工程编译导入示例工程并 Build无错误,生成可执行文件
Yocto 构建bitbake tisdk-default-image生成 .wic 镜像
SD 卡启动上电后串口输出出现 U-Boot 与登录提示
串口终端picocom -b 115200 /dev/ttyUSB0可交互输入命令
不要跳过“预编译镜像先启动”这一步。先用官方镜像确认板卡与串口正常,再替换为自己构建的镜像,可以把“环境问题”和“构建问题”分开定位,显著降低排障难度。