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

TI Sitara 工业以太网控制器的开发不是“装一个 IDE 就能跑”的简单场景。以 AM64x/AM243x 这类器件为例,一个可用的开发环境至少包含五层:主机侧集成开发环境(CCS)、器件级软件包(Processor SDK)、实时内核(Linux RT 或 RTOS)、可编程实时单元(PRU)编译器,以及连接目标板的调试工具链。这五层之间存在明确的依赖顺序,装错顺序往往导致后续步骤反复报错。

一、先理清依赖关系,再动手安装

Processor SDK 是整条链路的“底座”,它决定了你后续能使用哪个版本的 CCS、哪个版本的 Linux RT 内核、以及 PRU 编译器从哪个路径调用。因此正确的顺序是:先确定目标器件与 SDK 版本,再安装 CCS,然后安装 SDK,最后配置 PRU 编译器与调试工具链。下图给出了这五层之间的依赖与调用关系,可作为安装前的对照检查。

Sitara 工业以太网开发环境五层依赖关系 主机侧:CCS Code Composer Studio 12.x 含编译器、调试器前端、工程管理 器件级:Processor SDK Linux / RTOS / Baremetal 三套 含驱动、协议栈、例程、设备树 实时内核:Linux RT PREEMPT_RT 补丁内核 用于 EtherCAT/PROFINET 主站 PRU 编译器 TI PRU-CGT 2.3.x clpru / lnkpru / arpru 调试工具链 XDS110 / XDS200 仿真器 JTAG + UART + 网络抓包 安装顺序与关键约束 ① 先确定器件型号(如 AM2434)与 SDK 版本(如 09.02.00),再下载对应 CCS 版本,避免版本错配。 ② Processor SDK 安装后,其内部已包含 PRU-CGT 与 Linux RT 内核源码,无需单独下载内核。 ③ PRU 编译器路径需手动加入 PATH,CCS 工程中通过 PRU_CGT_DIR 变量引用。 ④ 调试工具链需在 CCS 中配置 Target Configuration,选择正确的 GEL 文件与 JTAG 时钟。

二、CCS 的安装与器件支持包选择

CCS 建议使用 12.5 及以上版本,安装时选择“Custom”模式,只勾选 Sitara AM64x/AM243x 系列支持包,避免全量安装占用数十 GB 磁盘。安装完成后,在 Window → Preferences → Code Composer Studio → Build → Compilers 中确认 TI ARM Clang 编译器已被识别。若后续需要编译 PRU 固件,还需在 Products 页面手动添加 PRU-CGT 的安装路径。

一个常见的坑是:CCS 自带的编译器版本与 SDK 要求的版本不一致。例如 SDK 09.02 要求 ARM Clang 3.2.0 LTS,而 CCS 12.5 默认携带 3.2.0,此时可直接使用;若使用 CCS 12.0,则需手动下载对应编译器并注册。判断方法是在 SDK 根目录查看 Makefile 中的 CGT_VERSION 字段。

三、Processor SDK 的获取与目录结构

Processor SDK 从 TI 官网下载,Linux 版通常命名为 ti-processor-sdk-linux-am64xx-evm-09.02.00.00-Linux-x86-Install.bin。安装后目录结构如下,理解它比记住路径更重要:

ti-processor-sdk-linux-am64xx-evm-09.02.00.00/
├── board-support/          # U-Boot、Linux 内核、设备树源码
│   ├── linux-6.1.46+gitAUTOINC+.../
│   └── u-boot-2023.04+gitAUTOINC+.../
├── linux-devkit/           # 交叉编译工具链(aarch64)
├── filesystem/             # 根文件系统(tisdk-base / tisdk-default)
├── bin/                    # 环境配置脚本、创建 SD 卡脚本
└── Makefile                # 顶层构建入口

首次使用前,执行 source linux-devkit/environment-setup-aarch64-oe-linux 激活交叉编译环境。激活后 $CC 变量应指向 aarch64-oe-linux-gcc,可用 echo $CC 验证。若该变量为空,说明 SDK 未正确安装或路径拼写有误。

四、Linux RT 内核的配置与编译

工业以太网主站对实时性有硬性要求,标准 Linux 内核的调度抖动通常在数百微秒量级,无法满足 EtherCAT 周期 1 ms 以内的需求。Processor SDK 已提供 PREEMPT_RT 补丁内核,位于 board-support/linux-6.1.46+gitAUTOINC+.../。编译流程如下:

cd board-support/linux-6.1.46+gitAUTOINC+.../
make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- menuconfig
# 在 menuconfig 中确认:
#   General setup → Preemption Model → Fully Preemptible Kernel (RT)
#   Device Drivers → Network device support → TI ICSSG Ethernet
make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- -j8
make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- INSTALL_MOD_PATH=../filesystem modules_install

编译完成后,将 arch/arm64/boot/Image 与 arch/arm64/boot/dts/ti/k3-am642-evm.dtb 拷贝到 SD 卡的 boot 分区。启动后通过 uname -a 确认内核版本,并通过 cyclictest -m -p 80 -n -i 1000 -l 10000 测量最大延迟。在 AM64x EVM 上,配置正确的 RT 内核最大延迟通常在 30~60 μs 之间;若超过 200 μs,需检查是否误用了非 RT 内核或 CPU 隔离未配置。

五、PRU 编译器的安装与工程集成

PRU 固件负责工业以太网的底层帧收发与时间戳处理,必须用 TI 专用编译器。PRU-CGT 可从 TI 官网单独下载,也可直接使用 SDK 内 board-support/ 下附带的版本。安装后需设置环境变量:

export PRU_CGT_DIR=/opt/ti/pru-cgt-2.3.3
export PATH=$PRU_CGT_DIR/bin:$PATH
clpru --version   # 应输出 PRU Code Generation Tools 2.3.3

在 CCS 工程中,右键工程 → Properties → Build → Variables,添加 PRU_CGT_DIR 指向上述路径。若编译时报 clpru: not found,说明 PATH 未生效或 CCS 未继承系统环境变量,此时应在 CCS 的 Build 配置中显式指定编译器绝对路径。

六、调试工具链的连接与验证

硬件侧需要 XDS110 或 XDS200 仿真器,通过 JTAG 连接目标板。在 CCS 中新建 Target Configuration(.ccxml),选择器件 AM2434,连接类型选 Texas Instruments XDS110 USB Debug Probe,并加载对应的 GEL 文件(通常位于 SDK 的 emulation/ 目录)。

验证步骤:先执行 Test Connection,若返回 The scan-path link established successfully,说明 JTAG 链路正常;随后加载 hello_world 例程到 R5F 核,观察 Console 输出。若连接失败,优先检查 JTAG 时钟是否过高(建议初始设为 1 MHz)、目标板是否已上电、以及 GEL 文件是否与器件型号匹配。

建议在首次搭建环境时,按“CCS → SDK → Linux RT → PRU → 调试”的顺序逐层验证,每层通过后再进入下一层。这样一旦出错,可以快速定位是哪一层的问题,而不是在五层耦合的环境中盲目排查。

七、环境验证清单

检查项验证命令/操作预期结果
CCS 编译器Preferences → CompilersARM Clang 3.2.0 已识别
交叉编译环境echo $CCaarch64-oe-linux-gcc
RT 内核uname -a含 PREEMPT_RT 标识
实时延迟cyclictest -m -p 80 -i 1000 -l 10000Max < 100 μs
PRU 编译器clpru --version2.3.x
JTAG 连接CCS Test Connectionscan-path 成功