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的引脚复用(如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的架构变化:
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章将详细讲解设备树与内核编译配置。