第一章 课程导学与开发环境搭建

各位同学好,我是你们这门课的老周。做嵌入式Linux驱动开发有些年头了,踩过的坑比吃过的盐还多。今天咱们开始第一讲,先把地基打牢。

这一章说白了就是两件事:认识T113这颗芯片,以及把开发环境跑起来。别小看环境搭建,我见过太多人卡在这一步,折腾两天连个灯都点不亮。咱们一步步来。

1.1 T113芯片概述

T113是全志推出的一款高性价比应用处理器。它最大的特点就是——双核Cortex-A7 + 单核RISC-V。嗯,你没看错,异构架构。A7跑Linux,RISC-V跑裸机或者RTOS,各司其职。

我个人习惯把T113看作一个「三合一」方案:

  • 双核A7:主频1.2GHz,带NEON SIMD引擎,跑Linux应用绰绰有余
  • RISC-V协处理器:200MHz,适合做实时控制、传感器采集
  • 内置DDR3:最大支持2GB,封装在一起,省PCB面积

我在项目中遇到过客户用T113做工业HMI,双核A7跑Qt界面,RISC-V专门处理Modbus协议栈,分工明确,效果很好。

参数 T113-S3 T113-i
CPU 双核Cortex-A7 + RISC-V 双核Cortex-A7
最大主频 1.2 GHz 1.0 GHz
内置DDR 128MB/256MB 无(外挂)
视频解码 H.264 1080p@60fps H.264 1080p@30fps
典型场景 智能家居、HMI 工业控制、数据采集
选型建议:如果你的产品对成本敏感、PCB空间有限,选T113-S3(内置DDR)。如果对内存容量有特殊要求,选T113-i外挂DDR3,最大可到2GB。

1.2 开发板介绍

咱们课程用的是全志官方T113-S3开发板,也叫「哪吒开发板」。板载资源如下:

  • CPU:T113-S3(双核A7 + RISC-V)
  • 内存:256MB DDR3(内置)
  • 存储:板载8GB eMMC + TF卡槽
  • 显示:MIPI DSI接口 + RGB LCD接口
  • 网络:百兆以太网 + Wi-Fi/BT模组
  • 调试:USB转串口(CH340)、JTAG
  • 扩展:40pin GPIO排针(兼容树莓派)

你想想看,一块巴掌大的板子,集成了这么多外设,才卖两百多块钱。性价比确实高。我最早拿到这块板子的时候,第一件事就是看原理图——做驱动开发,不看原理图等于盲人摸象。

注意:开发板上的USB转串口芯片是CH340,部分Linux发行版需要手动安装驱动。Windows下一般免驱。如果插上没反应,检查一下是不是线的问题——我吃过这个亏,折腾了半小时发现是USB线只能充电不能传数据。

1.3 SDK获取与编译

全志的SDK叫Tina Linux,基于OpenWrt定制。获取方式有两种:

  1. 官方Git仓库:全志在GitHub上开源了部分代码,搜索「tina-t113」即可
  2. 百度网盘:官方会定期发布完整SDK包,包含所有闭源驱动和工具链

我建议你直接下载完整SDK包,省去自己拼凑的麻烦。SDK解压后大概15GB,编译前确保磁盘有至少50GB空闲空间。

编译步骤其实很简单:

# 1. 安装依赖
sudo apt-get install build-essential git wget libncurses-dev

# 2. 解压SDK
tar -xvf tina-t113-sdk.tar.xz
cd tina-t113-sdk

# 3. 配置环境
source build/envsetup.sh

# 4. 选择方案
lunch t113_evb1_auto_uart0

# 5. 编译
make -j4

# 6. 打包镜像
pack

第一次编译大概需要30-60分钟,取决于你的电脑配置。我习惯用-j$(nproc)自动检测CPU核心数,别设太大,否则容易内存溢出。

常见编译错误:
  • fatal error: curses.h: No such file or directory → 安装libncurses-dev
  • cc1: out of memory → 减少-j并行数,或者增加swap
  • ERROR: No rule to make target 'xxx.dtb' → 检查lunch是否选对了方案

1.4 烧录工具使用

全志的烧录工具叫PhoenixCard,支持Windows和Linux。咱们主要用TF卡启动,方便调试。

烧录步骤:

  1. 将TF卡插入读卡器,连接到电脑
  2. 打开PhoenixCard,选择镜像文件(SDK编译生成的tina_t113_evb1_uart0.img)
  3. 选择「启动卡」模式,点击「烧录」
  4. 等待进度条走完,弹出TF卡
  5. 将TF卡插入开发板,上电启动

我曾经遇到过烧录完成后开发板无法启动的情况。排查了半天,发现是TF卡质量问题——某些劣质卡在高速读写时会丢数据。建议用Class 10或UHS-I级别的TF卡,容量8-32GB为宜。

小技巧:PhoenixCard烧录时勾选「卡量产」模式,会把整个TF卡当作启动盘,剩余空间不可用。如果只是临时调试,选「启动卡」模式,烧录后TF卡还能当普通U盘用。

1.5 串口终端配置

串口是嵌入式开发者的「眼睛」。没有串口,你连系统启动到哪一步了都不知道。

开发板上的串口引脚:

信号 排针位置 说明
TX J1-3 开发板发送,电脑接收
RX J1-4 开发板接收,电脑发送
GND J1-6 共地,必须接
VCC J1-2 3.3V输出,一般不用

串口参数:115200波特率、8数据位、1停止位、无校验。这是全志的默认配置,别搞错了。

Windows下推荐用MobaXterm或PuTTY。Linux下我习惯用screen:

# 查看串口设备
ls /dev/ttyUSB*

# 连接串口
sudo screen /dev/ttyUSB0 115200

# 退出screen:Ctrl+A,然后按K,再按Y确认

如果你用的是Linux,记得把用户加入dialout组,否则每次都要sudo:

sudo usermod -a -G dialout $USER

然后注销重新登录,生效。

避坑指南:我曾经遇到过串口输出乱码的情况。排查后发现是USB转串口线质量太差,信号干扰严重。换了一根带屏蔽的线就好了。另外,串口线不要超过1.5米,否则信号衰减会导致丢数据。

1.6 知识体系总览

这一章的内容比较多,我画了一张图帮你理清思路:

T113开发环境搭建知识体系 第一章 知识体系总览 T113驱动开发入门 芯片概述 开发板介绍 SDK获取与编译 烧录工具 串口终端配置 学习路径建议 1. 先看芯片手册,了解T113的硬件特性 2. 对照开发板原理图,熟悉外设引脚分布 3. 搭建SDK编译环境,确保能生成镜像 4. 烧录并启动,通过串口验证系统运行

这张图把咱们第一章的内容串起来了。从芯片认知开始,到开发板硬件,再到软件环境搭建,最后通过串口验证。每一步都是下一环的基础,缺一不可。

好了,环境搭建就讲到这里。你按照这个流程走一遍,应该能把开发环境跑起来。如果遇到问题,别急着百度——先看看串口输出,错误信息往往就在那里。