1. 全志T113平台概述

全志T113系列是面向嵌入式Linux应用的高集成度双核/单核应用处理器,专为需要高性价比、低功耗和丰富多媒体接口的工业控制、智能家居、车载后装及商业显示场景设计。本章从芯片特性、典型应用、开发板资源及内核版本支持四个维度建立平台认知,为后续外设驱动移植提供硬件与软件基础。

1.1 T113芯片核心特性

T113采用双核ARM Cortex-A7架构,集成全志自研的显示引擎与音视频编解码单元,关键参数如下表所示:

特性分类 具体规格 说明
CPU 双核 Cortex-A7 @ 1.2GHz 支持NEON SIMD指令集,单核可独立关断
GPU Mali-400 MP2 @ 600MHz 支持OpenGL ES 2.0,无视频编解码加速
视频编解码 H.264 1080p@60fps 解码 / 1080p@30fps 编码 硬件编解码,不占用CPU
显示接口 RGB / LVDS / MIPI DSI / HDMI 1.4 支持双屏异显,最高1080p@60fps
存储接口 NAND Flash / eMMC 5.0 / SD 3.0 / SPI NOR 支持SD卡启动与量产烧录
网络 内置10/100M EMAC + 外部PHY 支持RMII接口,可扩展Wi-Fi/BT模组
音频 2路I2S / 1路TDM / 内置DAC 支持8通道I2S输入,采样率最高192kHz
封装 BGA 282 / 0.65mm pitch 13mm×13mm,适合4层板设计
驱动移植关注点: T113的显示控制器(DE)和视频编解码引擎(VE)使用全志私有寄存器接口,不同内核版本下DRM/KMS驱动框架差异较大,是移植中需要重点适配的模块。

1.2 典型应用场景

T113凭借其低功耗(典型功耗<1.5W)和丰富外设,在以下场景中广泛部署:

  • 工业人机界面(HMI): 7~10寸电阻/电容触摸屏,运行Qt或LVGL,通过RS485/CAN与PLC通信。
  • 智能家居中控屏: 支持Wi-Fi/BLE网关,本地语音识别,1080p视频门铃预览。
  • 车载后装仪表: 双屏显示(仪表盘+中控),通过CAN总线读取车辆数据。
  • 商业数字标牌: 单机播放1080p视频循环,支持RTC定时开关机。
  • 边缘计算节点: 运行轻量级AI推理(Tengine/NCNN),处理摄像头采集图像。
场景与驱动关联: 在HMI场景中,触摸屏(I2C/SPI)和显示(DRM/KMS)驱动是移植核心;在车载场景中,CAN控制器驱动和音频(ASoC)驱动的内核版本兼容性需要重点验证。

1.3 开发板资源介绍

本课程以全志官方T113-S3参考设计板(T113-S3 EVB)为主要实验平台,同时兼容市面上常见的第三方核心板。开发板关键资源分布如下:

T113-S3 EVB 开发板硬件资源框图 全志 T113-S3 Cortex-A7 双核 @1.2GHz NAND Flash 256MB / 512MB DDR3 512MB / 1GB 显示接口 RGB / LVDS / MIPI DSI 以太网 PHY RMII 10/100M USB OTG 1x USB 2.0 SDIO / SD TF卡槽 音频 I2S ES8388 / WM8960 UART / SPI 调试串口 / 扩展 开发板关键跳线与接口: • J1: 调试串口 (UART0, 3.3V TTL, 波特率115200) • J2: 启动模式选择 (SPI NOR / NAND / SD卡) • J3: 电源测量跳线 (VDD_CPU / VDD_SYS 电流检测)
注意: 不同批次T113-S3 EVB的引脚复用(如UART1与I2C2共用GPIO)可能存在差异,驱动移植前务必核对原理图与芯片数据手册的GPIO复用表。

1.4 Linux内核版本支持概览

全志T113官方BSP基于Linux 4.9内核,社区主线内核已支持至6.x版本。不同内核版本对T113外设驱动的支持程度差异显著,直接影响移植策略:

内核版本 支持状态 关键驱动差异 推荐场景
Linux 4.9 官方BSP,完整支持 使用旧版DRM(sun4i-drm),DMA引擎为sun6i-dma v1,NAND驱动为私有接口 量产固件、稳定性优先
Linux 5.4 LTS,社区支持较好 DRM升级为sun4i-drm + dw-hdmi,引入CMA连续内存分配器,音频ASoC框架更新 长期维护项目、中间件兼容
Linux 5.10 LTS,全志提供部分补丁 新增sun50i-drm(部分兼容T113),SPI-NAND框架成熟,CPUFreq支持 需要新特性(如GPU驱动)
Linux 6.1+ 主线支持,需自行适配 DRM使用drm_bridge架构,移除旧版sun4i-drm,时钟驱动改为CCU框架 社区主线、学习研究
课程覆盖范围: 本课程以 Linux 4.9 官方BSP为基准,同步讲解向 Linux 5.4 和 Linux 5.10 移植的通用方法。对于每个外设驱动(UART、I2C、SPI、LCD、触摸、音频、网络、CAN等),均会给出三个内核版本下的设备树配置、驱动代码差异及编译验证步骤。

1.5 内核版本与驱动架构关系

不同内核版本下,T113的驱动架构演进主要体现在设备树绑定、时钟/复位控制器、DMA引擎和显示框架四个层面。下图展示了从4.9到5.10的架构变化:

T113 驱动架构演进(Linux 4.9 → 5.10) Linux 4.9 sun4i-drm (旧版) sun6i-dma v1 私有NAND驱动 legacy clock API Linux 5.10 sun50i-drm (bridge) sun6i-dma v2 SPI-NAND框架 CCU clock driver 移植核心差异 • DRM: 设备树新增 "allwinner,sun50i-t113" 兼容 • DMA: 通道数量与请求号 从8通道扩展至16通道 • NAND: 从mtd/nand迁移到 mtd/spi-nand框架 • Clock: 改用CCU驱动后 时钟名与父时钟关系变化

1.6 开发环境快速搭建

本课程所有实验均基于Ubuntu 20.04/22.04 x86_64主机,交叉编译工具链使用全志官方提供的 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf。内核源码获取方式如下:

# 方式一:全志官方BSP(Linux 4.9)
git clone -b t113-v1.0 https://github.com/allwinner-zh/bsp-linux-4.9.git

# 方式二:社区主线(Linux 5.10)
git clone -b linux-5.10.y https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux
# 应用全志社区补丁(需从linux-sunxi社区获取)
git am ../patches/sunxi-5.10/*.patch

# 配置T113默认配置
make ARCH=arm t113_defconfig
# 编译内核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j$(nproc)
建议: 初次接触T113的开发者,建议先从Linux 4.9官方BSP入手,熟悉设备树结构与驱动注册流程后,再尝试向高版本内核移植。本课程第2~5章将详细讲解设备树与内核编译配置。