第一章 课程导学与开发环境搭建
各位同学好,我是你们这门课的老周。做嵌入式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 | 工业控制、数据采集 |
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排针(兼容树莓派)
你想想看,一块巴掌大的板子,集成了这么多外设,才卖两百多块钱。性价比确实高。我最早拿到这块板子的时候,第一件事就是看原理图——做驱动开发,不看原理图等于盲人摸象。
1.3 SDK获取与编译
全志的SDK叫Tina Linux,基于OpenWrt定制。获取方式有两种:
- 官方Git仓库:全志在GitHub上开源了部分代码,搜索「tina-t113」即可
- 百度网盘:官方会定期发布完整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-devcc1: out of memory→ 减少-j并行数,或者增加swapERROR: No rule to make target 'xxx.dtb'→ 检查lunch是否选对了方案
1.4 烧录工具使用
全志的烧录工具叫PhoenixCard,支持Windows和Linux。咱们主要用TF卡启动,方便调试。
烧录步骤:
- 将TF卡插入读卡器,连接到电脑
- 打开PhoenixCard,选择镜像文件(SDK编译生成的
tina_t113_evb1_uart0.img) - 选择「启动卡」模式,点击「烧录」
- 等待进度条走完,弹出TF卡
- 将TF卡插入开发板,上电启动
我曾经遇到过烧录完成后开发板无法启动的情况。排查了半天,发现是TF卡质量问题——某些劣质卡在高速读写时会丢数据。建议用Class 10或UHS-I级别的TF卡,容量8-32GB为宜。
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
然后注销重新登录,生效。
1.6 知识体系总览
这一章的内容比较多,我画了一张图帮你理清思路:
这张图把咱们第一章的内容串起来了。从芯片认知开始,到开发板硬件,再到软件环境搭建,最后通过串口验证。每一步都是下一环的基础,缺一不可。
好了,环境搭建就讲到这里。你按照这个流程走一遍,应该能把开发环境跑起来。如果遇到问题,别急着百度——先看看串口输出,错误信息往往就在那里。