1. 课程导入与工业平台适配全景

在工业控制、边缘网关、人机界面(HMI)与运动控制等场景中,处理器选型往往决定了整个产品的生命周期成本。TI Sitara 系列正是面向这类嵌入式工业应用的一条完整产品线:它把 ARM Cortex-A 应用核、可编程实时单元(PRU-ICSS)、工业通信外设与多路显示/网络接口集成在同一颗芯片上,使一颗 SoC 既能跑 Linux 应用,又能承担微秒级实时任务。理解 Sitara 的定位,是理解后续 BSP 适配工作的前提。

Sitara 家族内部差异明显,选型时通常按“应用核性能—实时单元—工业外设—封装与温度等级”四个维度权衡。例如 AM335x 属于经典单核/双核 Cortex-A8 平台,常用于成本敏感的 HMI 与协议转换器;AM437x 在 A9 基础上强化了 PRU 与显示能力;AM57xx 采用 Cortex-A15 并集成 DSP 与双 PRU-ICSS,适合机器视觉与多轴运动控制;而 AM64x/AM62x 等新一代器件则采用 Cortex-A53 加 Cortex-R5F/M4F 的异构架构,把实时控制与 Linux 应用进一步解耦。下表给出一个便于对照的示例性定位视图(参数为教学归纳,具体以对应数据手册为准)。

系列应用核实时/协处理单元典型工业用途
AM335xCortex-A8 单/双核2×PRU-ICSSHMI、协议网关、低成本 PLC
AM437xCortex-A92×PRU-ICSS显示终端、工业通信节点
AM57xxCortex-A15 双核DSP + 2×PRU-ICSS机器视觉、多轴运动控制
AM64xCortex-A53 双核Cortex-R5F + M4F伺服驱动、实时以太网

所谓 Linux BSP(Board Support Package),并不是“一个内核”那么简单。它是一套让 Linux 能在特定硬件上稳定启动并驱动全部关键外设的软件集合,通常包含:引导链(ROM Code → SPL/MLO → U-Boot → Kernel)、设备树(DTS/DTB)、内核配置与驱动、根文件系统(RootFS)、工具链与构建系统(如 Yocto/OpenEmbedded 或 TI SDK 提供的 Arago 层),以及用于烧录、调试和量产的辅助工具。BSP 的质量直接决定了产品能否快速从 EVM 迁移到自研板卡。

工业场景对 BSP 的诉求与消费电子有本质区别。第一是确定性:EtherCAT、PROFINET、EtherNet/IP 等实时以太网要求周期抖动稳定在微秒级,这依赖 PRU 固件、内核实时补丁(如 PREEMPT_RT)以及中断与网络栈的协同调优。第二是长期可用性:工业设备生命周期常达 10~15 年,BSP 需要长期维护分支、可复现构建与安全更新机制。第三是可靠性:看门狗、掉电安全文件系统、双分区 A/B 升级、ECC 内存与温度监控都是常见要求。第四是可制造性:量产烧录、MAC 地址与序列号写入、板级校准参数存储,都需要在 BSP 中预留接口。

本节的核心判断:BSP 适配不是“把内核跑起来”就结束,而是要让启动链、设备树、驱动、实时单元与量产工具形成一条可复现、可验证、可维护的完整链路。

下面这张图给出 Sitara Linux BSP 的整体分层与数据/控制流关系。左侧是硬件与固件层,右侧是软件层,中间通过设备树与驱动接口衔接;PRU 固件与实时以太网栈作为独立支路,与 Linux 网络栈并行工作,这正是工业适配中最容易被忽视、也最关键的部分。

Sitara Linux BSP 分层与工业适配关系 硬件与固件层 Sitara SoC Cortex-A + PRU-ICSS + 外设 DDR / eMMC / QSPI 启动介质与运行内存 工业接口 EtherCAT / CAN / RS485 / ADC 显示与触摸 LCD / RGB / LVDS / Touch 电源与时钟 PMIC / 晶振 / 复位 / 看门狗 板级信息 EEPROM / MAC / 序列号 Linux BSP 软件层 引导链 ROM → SPL/MLO → U-Boot → Kernel 设备树 DTS/DTB 引脚复用 / 外设节点 / 时钟 内核与驱动 网络 / 存储 / 显示 / 工业外设 根文件系统 RootFS BusyBox / systemd / 应用库 构建系统 Yocto / Arago / 交叉工具链 量产与维护 烧录 / A-B 升级 / 安全更新 实时与工业通信支路 PRU 固件 EtherCAT / PROFINET 从站 实时补丁 PREEMPT_RT / 中断线程化 周期任务 1 ms 控制环 / 抖动监测 工业协议栈 EtherCAT / CANopen / Modbus 时间同步 PTP / IEEE 1588 / Sync 验证与诊断 示波器 / 抓包 / 日志 硬件提供能力 → BSP 完成抽象与驱动 → 实时支路保障工业确定性

课程实战项目将围绕一块基于 AM64x 的工业网关参考板展开。该板卡具备双千兆以太网(其中一路接 PRU-ICSS 用于 EtherCAT 从站)、CAN FD、RS485、eMMC 与 QSPI 双启动介质,并预留 EEPROM 存放板级信息。项目目标是从 TI SDK 出发,完成一条可复现的 BSP 构建与适配链路,最终让板卡在 1 ms 周期下稳定运行 EtherCAT 从站,同时通过 Linux 应用层读取过程数据并上报。整个课程会依次覆盖:环境搭建与 SDK 获取、U-Boot 与启动介质适配、设备树裁剪与引脚复用、内核驱动与工业外设调试、PRU 固件加载与实时以太网配置、RootFS 裁剪与 A/B 升级、量产烧录与板级信息写入、以及最终的实时性验证与排障。

学习建议:每完成一个适配环节,都用“能否复现、能否观测、能否回退”三个问题自检。例如修改设备树后,先确认串口日志中对应节点是否 probe 成功,再确认功能是否正常,最后确认旧版本仍可启动。这种习惯能显著降低后期排障成本。

需要特别强调的是,工业 BSP 适配中大量问题并非来自内核本身,而是来自“软硬件交界处”:引脚复用冲突、时钟树配置错误、电源时序不满足、PRU 固件版本与内核驱动不匹配、设备树节点与原理图不一致等。因此本课程不会把 BSP 当作纯软件工作来讲,而是始终把原理图、数据手册、示波器波形与内核日志放在同一条证据链上。只有建立起这种“软硬对照”的判断方式,才能在面对自研板卡时快速定位问题,而不是依赖 EVM 的现成配置反复试错。