树莓派SPI驱动LCD屏幕与GBA模拟器实战指南
这次我们来看一个非常实用的树莓派项目:通过 SPI 接口驱动 LCD 屏幕,并运行 GBA 模拟器。这本质上是一个软硬件结合的嵌入式应用,核心目标是在一块小巧的树莓派上,利用其 GPIO 引脚中的 SPI 总线,连接一块同样小巧的 LCD 屏幕,最终打造一个可以随时随地玩 GBA 游戏的便携式复古游戏机。这个项目完美融合了硬件驱动、系统配置和软件应用,是学习嵌入式 Linux 和复古游戏模拟的绝佳实践。
对于很多开发者来说,树莓派的 HDMI 输出虽然方便,但功耗和体积不够极致。而 SPI 接口的 LCD 屏幕通常尺寸小、功耗低、价格便宜,非常适合用来制作掌机、迷你终端或信息显示屏。这个项目的重点不是概念多复杂,而是能不能在常见的树莓派型号(如 3B+/4B/Zero 2 W)上顺利跑起来,以及驱动安装、屏幕校准、模拟器性能这些实际环节是否顺畅。
本文将带你从零开始,完成整个系统的搭建。你会了解到:SPI LCD 屏幕如何与树莓派连接;如何安装和配置 FBCP(帧缓冲拷贝)驱动来正确显示图像;如何安装并优化 RetroPie 或独立的 GBA 模拟器;最后,如何在 SPI 屏幕上获得流畅的游戏体验。整个过程涉及硬件接线、系统配置、软件编译和性能调优,信息密度高,每一步都有明确的操作和验证方法。
1. 核心能力速览
在深入细节之前,我们先通过一个表格快速了解这个项目的核心要素、硬件门槛和最终能实现的效果。
| 能力项 | 说明与要求 |
|---|---|
| 核心目标 | 在树莓派上,通过 SPI 总线驱动 LCD 屏幕,并运行 GBA 游戏模拟器。 |
| 硬件平台 | 树莓派 3B+, 4B, Zero 2 W 等主流型号(需具备 GPIO 引脚)。树莓派 5 也可行,但部分驱动可能需要调整。 |
| 显示接口 | SPI (Serial Peripheral Interface),一种低速、全双工、同步的串行通信总线。 |
| 典型屏幕 | 基于 ST7789、ILI9341、ILI9486 等控制芯片的 SPI TFT LCD 屏幕,常见尺寸为 1.3寸、1.54寸、2.0寸、2.4寸等。 |
| 软件栈 | Linux 帧缓冲 (Framebuffer)、FBCP 驱动(或专用 SPI 屏幕驱动)、RetroPie/EmulationStation或mgba/VisualBoyAdvance模拟器。 |
| 性能特点 | SPI 带宽有限,刷新率通常不高(30-60 fps 取决于分辨率和优化)。适合 2D 像素游戏,GBA 模拟压力不大。 |
| 主要挑战 | 1.驱动适配:为特定 SPI 屏幕芯片配置正确的设备树覆盖或内核驱动。 2.性能优化:在 SPI 带宽限制下,通过帧缓冲拷贝、降低分辨率、双缓冲等方式提升流畅度。 3.输入集成:将游戏手柄或按键通过 GPIO 或 USB 接入,并在模拟器中正确映射。 |
| 最终成果 | 一个由树莓派主板、SPI 屏幕、电池、外壳和按键组成的,可运行 GBA 游戏的完整便携设备。 |
2. 适用场景与使用边界
这个项目非常适合以下几类开发者和爱好者:
- 嵌入式学习与实践者:希望深入理解 Linux 下 SPI 设备驱动、帧缓冲机制和输入子系统。
- 复古游戏硬件改造爱好者:热衷于将老旧游戏机现代化,或制作个性化的复古掌机。
- 树莓派极客玩家:不满足于常规应用,喜欢探索树莓派 GPIO 和外设的极限玩法,制作紧凑型项目。
- 电子创客与学生:作为一个综合性的课程设计或毕业设计项目,涵盖硬件、驱动、应用三层。
它能解决的核心问题:
- 显示输出最小化:摆脱对 HDMI 显示器或大型 LCD 的依赖,用最少的连线和功耗实现图形界面。
- 便携性:SPI 屏幕体积小,使得整个系统可以做得非常紧凑,易于装入掌机外壳。
- 低成本入门:一块 SPI 屏幕的价格远低于带 HDMI 接口的官方屏幕,降低了硬件门槛。
需要注意的使用边界:
- 性能上限:SPI 的通信速率限制了屏幕刷新率和分辨率。不适合运行需要高帧率(如 60fps 以上)或高分辨率(如 1080p)的 3D 游戏或视频播放。
- 驱动复杂性:不同品牌、不同控制芯片的 SPI 屏幕,其驱动配置方法可能差异很大。没有“万能驱动”,需要根据屏幕资料进行适配。
- 软件兼容性:并非所有 Linux 桌面环境或应用程序都能在 SPI 屏幕的帧缓冲上良好运行。本项目主要聚焦于运行全屏的模拟器前端或特定应用。
- 版权与法律:GBA 游戏 ROM 文件受版权保护。本项目仅讨论模拟器软件和硬件平台的搭建,请确保你使用的游戏 ROM 来源合法,即拥有正版游戏卡带并进行个人备份。
3. 环境准备与前置条件
开始动手前,请确保你已准备好以下硬件和软件环境。
3.1 硬件清单
- 树莓派主板:推荐树莓派 3B+、4B 或 Zero 2 W。它们性能足够,社区支持完善。确保已安装好散热片(尤其是4B)。
- SPI TFT LCD 屏幕:这是核心部件。购买时务必确认:
- 控制芯片型号:如 ST7789V, ILI9341, ILI9486 等。这决定了后续使用的驱动。
- 分辨率:常见如 240x240, 320x240, 480x320 等。分辨率越高,对 SPI 带宽压力越大。
- 接口:必须是SPI接口,通常包含
SCLK(时钟)、MOSI(主机输出从机输入)、DC(数据/命令)、RST(复位)、CS(片选) 和背光控制引脚。有些屏幕还带触摸功能(需要额外连接 SPI 的MISO和中断引脚)。 - 排线或插针:确保屏幕带有排线或焊好插针,以便连接到树莓派的 GPIO 排针。
- 连接线材:杜邦线(母对母或公对母,根据屏幕接口而定),用于连接屏幕与树莓派 GPIO。
- 供电与存储:为树莓派供电的 USB-C 或 Micro-USB 电源(5V/3A 以上为佳),以及一张至少 16GB 的 MicroSD 卡。
- 输入设备:用于控制游戏的 USB 游戏手柄,或者计划集成到掌机上的 GPIO 按键。
- 可选外壳:3D 打印或购买现成的树莓派掌机外壳,用于固定所有部件。
3.2 软件与系统准备
- 树莓派操作系统:从树莓派官网下载最新版的Raspberry Pi OS (Legacy, 32-bit)。这个版本兼容性最好,对老软件和驱动支持更稳定。使用 Raspberry Pi Imager 工具将其烧录到 MicroSD 卡中。
- 基础系统配置:首次启动前,可以在 Imager 工具中预先设置主机名、开启 SSH、配置 Wi-Fi 和本地化设置(时区、键盘布局),这样启动后即可通过网络 SSH 连接,无需外接键盘和 HDMI 显示器。
- 网络连接:确保树莓派可以通过有线或无线网络连接到互联网,以便安装软件包。
- 终端工具:准备一个 SSH 客户端(如 PuTTY, Terminal, MobaXterm)用于远程登录树莓派。
4. 硬件连接与 SPI 接口启用
硬件连接是第一步,务必仔细核对引脚定义。
4.1 连接 SPI LCD 屏幕
以一块常见的 40-pin GPIO 树莓派(3B+/4B)和一款 ST7789V 芯片的 1.54寸 240x240 屏幕为例,连接方式如下:
| 屏幕引脚 | 树莓派 GPIO 引脚 (BCM编号) | 物理引脚号 | 作用 |
|---|---|---|---|
| VCC | 3.3V (Pin 1) | 1 | 电源 (3.3V) |
| GND | GND (Pin 6) | 6 | 地线 |
| SCL (SCLK) | GPIO 11 (SPI0 SCLK) | 23 | SPI 时钟线 |
| SDA (MOSI) | GPIO 10 (SPI0 MOSI) | 19 | SPI 数据线 (主出从入) |
| RES (RST) | GPIO 25 | 22 | 复位信号 (可接其他 GPIO) |
| DC (RS) | GPIO 24 | 18 | 数据/命令选择 |
| CS | GPIO 8 (SPI0 CE0) | 24 | SPI 片选 0 |
| BL (背光) | 3.3V 或 GPIO 18 (PWM控制) | 1 或 12 | 背光电源 |
重要提示:
- 务必查阅你屏幕的说明书或商品页面,确认其引脚定义,切勿照搬上表。
VCC必须接3.3V,接 5V 会烧毁屏幕!GND必须连接。RST和DC引脚可以连接到任意可用的 GPIO,后续在驱动配置中需要指定这些引脚号。- 如果屏幕带触摸(通常为 XPT2046 芯片),还需要连接
T_IRQ(中断) 和T_DO(MISO) 到对应的 GPIO。
4.2 启用树莓派 SPI 接口
树莓派的 SPI 接口默认是禁用的,需要通过raspi-config工具开启。
- 通过 SSH 登录你的树莓派。
- 运行配置工具:
sudo raspi-config - 使用方向键选择
Interface Options->SPI。 - 当询问是否启用 SPI 接口时,选择
<Yes>。 - 完成后,选择
<Finish>退出,并根据提示重启树莓派。 - 重启后,验证 SPI 是否已启用:
你应该能看到lsmod | grep spispi_bcm2835等相关模块。同时,检查设备文件是否存在:
应该能看到ls /dev/spidev0.*/dev/spidev0.0和/dev/spidev0.1两个设备节点。
5. 安装与配置 SPI LCD 驱动
这是最关键的一步,目的是让 Linux 系统将 SPI 屏幕识别为一个可用的显示设备(如/dev/fb1)。
5.1 安装依赖与驱动源码
我们将使用一个非常流行的开源项目fbcp-ili9341,它是一个高性能的帧缓冲拷贝程序,支持多种 SPI 屏幕芯片。
更新系统并安装编译依赖:
sudo apt update sudo apt upgrade -y sudo apt install -y cmake build-essential libssl-dev克隆
fbcp-ili9341仓库(如果网络问题,可以考虑使用镜像源或提前下载):cd ~ git clone https://github.com/juj/fbcp-ili9341.git cd fbcp-ili9341
5.2 配置与编译驱动
编译前,需要根据你的屏幕型号和连接引脚修改CMakeLists.txt或通过 CMake 参数进行配置。
进入构建目录并运行 CMake 配置。以下是一个针对 ST7789V 240x240 屏幕的配置示例,请根据你的屏幕修改
-DSPI_BUS_CLOCK_DIVISOR(SPI速度分频,值越小越快)、-DDISPLAY_WIDTH、-DDISPLAY_HEIGHT、-DDISPLAY_INVERT_COLORS、-DDISPLAY_ROTATE等参数。最重要的是-DGPIO_TFT_DATA_CONTROL(DC引脚) 和-DGPIO_TFT_RESET_PIN(RST引脚) 必须与你实际的硬件连接一致。mkdir build cd build cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DDISPLAY_WIDTH=240 -DDISPLAY_HEIGHT=240 -DDISPLAY_INVERT_COLORS=ON -DDISPLAY_ROTATE=0 -DGPIO_TFT_DATA_CONTROL=24 -DGPIO_TFT_RESET_PIN=25 -DSTATISTICS=0 ..参数解释:
-DSPI_BUS_CLOCK_DIVISOR=20:SPI 时钟分频,数值越大速度越慢。如果屏幕出现花屏或闪屏,可以尝试增大此值(如30,40)。-DGPIO_TFT_DATA_CONTROL=24:对应 BCM GPIO 24(物理引脚18),即我们之前连接的 DC 引脚。-DGPIO_TFT_RESET_PIN=25:对应 BCM GPIO 25(物理引脚22),即 RST 引脚。-DDISPLAY_INVERT_COLORS=ON:有些屏幕需要反转颜色,如果显示颜色异常可以尝试切换 ON/OFF。-DDISPLAY_ROTATE=0:屏幕旋转角度(0, 90, 180, 270)。
开始编译:
make -j$(nproc)编译完成后,会在当前目录生成可执行文件
fbcp-ili9341。
5.3 测试驱动与配置自启动
首次测试:在启动任何图形界面之前进行测试。可以先停止可能的图形服务(如果是 Lite 版系统则不需要):
sudo systemctl stop lightdm然后运行驱动:
sudo ./fbcp-ili9341此时,SPI 屏幕应该被点亮,并显示树莓派主屏幕(可能是控制台或桌面镜像)。按
Ctrl+C可以停止程序。配置系统服务(自启动):为了让驱动在系统启动时自动运行,我们需要创建一个 systemd 服务。
sudo nano /etc/systemd/system/fbcp.service将以下内容粘贴到文件中,注意修改
ExecStart的路径为你编译出的fbcp-ili9341的绝对路径(可以使用pwd命令查看当前路径)。[Unit] Description=Framebuffer copy utility for SPI TFT After=network.target [Service] Type=simple ExecStart=/home/pi/fbcp-ili9341/build/fbcp-ili9341 Restart=always User=root [Install] WantedBy=multi-user.target保存并退出(
Ctrl+X, 然后Y, 回车)。启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable fbcp.service sudo systemctl start fbcp.service检查服务状态:
sudo systemctl status fbcp.service如果显示
active (running),说明驱动已成功在后台运行。现在,SPI 屏幕应该作为系统的第二个显示器(/dev/fb1)持续显示主显示(/dev/fb0)的内容。
6. 安装与配置 GBA 模拟器
有了显示输出,接下来安装游戏模拟器。这里提供两种主流方案:功能全面的RetroPie和轻量级的独立模拟器。
6.1 方案一:安装 RetroPie(推荐)
RetroPie 是一个集成了多种模拟器、前端界面和工具的游戏系统,管理游戏非常方便。
- 下载 RetroPie 镜像:从 RetroPie 官网下载对应你树莓派型号的预构建镜像(如 Raspberry Pi 2/3/4)。
- 烧录与首次启动:使用 Raspberry Pi Imager 或 BalenaEtcher 将镜像烧录到 SD 卡。首次启动会进行文件系统扩展和基本配置。注意:RetroPie 镜像自带系统,会覆盖我们之前安装的驱动。因此,我们需要在 RetroPie 系统上重新执行第5步,安装 SPI 屏幕驱动。
- 在 RetroPie 上安装 SPI 驱动:过程与第5步完全相同。通过 RetroPie 的终端或 SSH 连接到树莓派,安装依赖、克隆
fbcp-ili9341、根据屏幕配置并编译、最后配置自启动服务。 - 配置 RetroPie 使用 SPI 屏幕:RetroPie 默认输出到 HDMI。我们需要告诉它使用 SPI 屏幕对应的帧缓冲设备。
- 编辑启动脚本,指定帧缓冲设备。可以修改
/opt/retropie/configs/all/autostart.sh(如果存在),或者在 EmulationStation 启动前设置环境变量。一个更简单的方法是在~/.bashrc末尾添加:export SDL_VIDEODRIVER=fbcon export SDL_FBDEV=/dev/fb1 - 重启 EmulationStation 或整个系统使配置生效。
- 编辑启动脚本,指定帧缓冲设备。可以修改
- 添加 GBA 游戏 ROM:将你的 GBA 游戏 ROM 文件(.gba 格式)通过 Samba 共享(
\\RETROPIE)或 SFTP 上传到/home/pi/RetroPie/roms/gba/目录下。 - 配置手柄:首次进入 RetroPie 的 EmulationStation 界面时,会提示你配置手柄。按照屏幕提示按键即可。
6.2 方案二:安装独立 GBA 模拟器 (mgba)
如果你希望系统更轻量,或者只想运行 GBA 模拟器,可以安装mgba。
- 在原始的 Raspberry Pi OS 上安装
mgba:sudo apt update sudo apt install -y mgba-qt - 同样需要配置环境变量,使其输出到 SPI 屏幕:
echo "export SDL_VIDEODRIVER=fbcon" >> ~/.bashrc echo "export SDL_FBDEV=/dev/fb1" >> ~/.bashrc source ~/.bashrc - 运行
mgba-qt可能需要图形环境。我们可以使用xinit来启动一个极简的 X 会话并运行 mgba。或者,更简单的方法是使用mgba-sdl(如果可用)或编译支持帧缓冲的版本。一个实用的方法是使用startx并指定启动程序:- 安装 X 窗口系统最小化组件:
sudo apt install --no-install-recommends xserver-xorg xinit - 创建
~/.xinitrc文件:nano ~/.xinitrc - 添加以下内容(指定使用 fb1 并启动 mgba):
#!/bin/sh # 设置 SDL 使用帧缓冲和 fb1 export SDL_VIDEODRIVER=fbcon export SDL_FBDEV=/dev/fb1 # 运行 mgba (假设游戏ROM路径为 /home/pi/game.gba) mgba-qt /home/pi/roms/game.gba - 保存后,赋予执行权限:
chmod +x ~/.xinitrc - 现在,在命令行执行
startx,它应该会直接在全屏的 SPI 显示器上启动 mgba 并加载游戏。
- 安装 X 窗口系统最小化组件:
7. 性能优化与调校
SPI 带宽有限,直接拷贝整个帧缓冲可能无法达到流畅的帧率。以下是一些关键的优化手段:
降低主显示器分辨率:SPI 屏幕分辨率通常很低(如240x240),但树莓派主显示(HDMI或虚拟)可能默认是1080p。将主显示分辨率设置为与 SPI 屏幕相同或接近,可以极大减少
fbcp-ili9341需要拷贝的数据量。- 编辑
/boot/config.txt,添加或修改:# 将 HDMI 组设置为 DMT 模式,并指定一个低分辨率 hdmi_group=2 hdmi_mode=16 # 640x480 60Hz # 或者直接设置帧缓冲大小 framebuffer_width=240 framebuffer_height=240 - 重启生效。
- 编辑
调整 SPI 总线速度:在
fbcp-ili9341的 CMake 配置中,-DSPI_BUS_CLOCK_DIVISOR值越小,SPI 时钟越快。但过快可能导致数据错误(花屏)。需要在稳定性和速度间权衡。对于 240x240 屏幕,尝试-DSPI_BUS_CLOCK_DIVISOR=10或6。启用双缓冲与区域更新:
fbcp-ili9341默认支持双缓冲和只拷贝变化的屏幕区域。确保编译时没有禁用这些功能(默认开启)。这可以显著减少 SPI 数据传输量。优化模拟器设置:
- 在 RetroPie 的 Runcommand 菜单中,或在 mgba 的设置里,将视频渲染器设置为
SDL或Software。 - 关闭垂直同步(VSync)、平滑过滤(Shader)等消耗资源的后期处理效果。
- 对于 GBA 游戏,模拟器本身开销不大,瓶颈通常在于 SPI 的屏幕刷新。
- 在 RetroPie 的 Runcommand 菜单中,或在 mgba 的设置里,将视频渲染器设置为
超频树莓派(进阶):轻微的 CPU/GPU 超频可以提升整体性能,但会增加发热和不稳定性风险。仅在做好散热并了解风险后尝试。在
/boot/config.txt中修改:over_voltage=2 arm_freq=1400 # 对于 Pi 3B+ gpu_freq=500
8. 输入控制集成
要让其成为真正的掌机,需要集成物理按键。
- 使用 USB 手柄:最简单的方式。将 USB 手柄插入树莓派,在 RetroPie 或模拟器内配置键位即可。
- 使用 GPIO 按键:更紧凑、更“嵌入式”的方式。你需要一些轻触开关,并连接到树莓派的 GPIO 引脚和 GND。
- 电路:按键一端接 GPIO,另一端接 GND。GPIO 引脚需要配置为输入模式并启用内部上拉电阻,这样默认是高电平,按下时变为低电平。
- 软件:需要编写脚本或使用工具(如
evdev、gpio-key)将 GPIO 的按键事件映射为键盘或游戏手柄事件。一个常用的工具是retrogame(Adafruit 提供)或GPIO-to-Keyboard脚本。配置后,系统会将 GPIO 按键识别为标准的键盘输入,从而被模拟器捕获。
9. 常见问题与排查方法
在搭建过程中,你可能会遇到以下问题:
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| SPI 屏幕无任何显示 | 1. 电源接错(接了5V)。 2. 背光未开启。 3. SPI 未启用。 4. 驱动未运行。 | 1. 检查 VCC 是否接 3.3V。 2. 检查背光引脚是否接电。 3. 运行 lsmod | grep spi和ls /dev/spidev0.*。4. 运行 sudo systemctl status fbcp。 | 1. 更正电源线。 2. 将 BL 接 3.3V 或 PWM 引脚并置高。 3. 运行 sudo raspi-config启用 SPI。4. 启动 fbcp 服务。 |
| 屏幕花屏、闪屏、错位 | 1. SPI 时钟过快。 2. 驱动参数(宽高、旋转、颜色反转)错误。 3. 引脚定义(DC, RST)配置错误。 | 1. 查看驱动启动日志。 2. 核对屏幕规格书,确认控制芯片和分辨率。 3. 使用万用表或代码检查 GPIO 连接。 | 1. 增大-DSPI_BUS_CLOCK_DIVISOR值重新编译。2. 根据屏幕资料调整 CMake 参数。 3. 更正 CMakeLists.txt或连接线。 |
| 模拟器运行卡顿 | 1. 主显示分辨率过高。 2. SPI 带宽不足。 3. 模拟器设置未优化。 4. 树莓派性能瓶颈。 | 1. 检查fbcp-ili9341输出的统计信息(如果编译时开启)。2. 使用 top或htop查看 CPU 占用。 | 1. 降低主显示分辨率(见第7节)。 2. 优化 SPI 速度与驱动参数。 3. 关闭模拟器特效。 4. 考虑轻量化模拟器或超频。 |
| 按键无响应 | 1. GPIO 按键电路错误。 2. 按键映射服务未运行或配置错误。 3. 模拟器未配置该按键。 | 1. 用raspi-gpio命令检查引脚电平变化。2. 检查映射服务(如 retrogame)的状态和日志。 | 1. 检查接线,确保使用了正确的 GPIO 和 GND。 2. 修正映射配置文件,确保键值正确。 3. 在模拟器输入设置中重新映射。 |
| 系统启动后黑屏,但 SSH 可连 | 1. 驱动服务启动失败,导致系统试图在 fb1 显示但失败。 2. 环境变量 SDL_FBDEV设置错误。 | 1. 通过 SSH 登录,检查fbcp.service日志:sudo journalctl -u fbcp。2. 检查 ~/.bashrc或启动脚本。 | 1. 修复驱动配置,或暂时禁用 fbcp 服务:sudo systemctl disable fbcp。2. 注释掉错误的 SDL_FBDEV设置,或将其改回/dev/fb0。 |
10. 最佳实践与项目延伸
完成基础功能后,你可以考虑以下优化和扩展,让项目更完善:
- 电源管理:使用 TP4056 等充电模块搭配锂电池,并利用树莓派的
GPIO监测电量,或编写脚本在低电量时安全关机。 - 音频输出:虽然 SPI 屏幕不带扬声器,但你可以使用树莓派自带的 3.5mm 音频口或 HDMI 音频(如果外接显示器调试),或者连接一个 USB 声卡或 I2S 音频 DAC 模块(如 PCM5102)来获得更好的音质。
- 外壳设计:使用 FreeCAD 或 Tinkercad 等软件为你的树莓派、屏幕和电池设计一个 3D 打印外壳,使其真正便携。
- 系统精简:为了更快启动和更低功耗,可以移除不需要的系统服务和软件,使用 Raspberry Pi OS Lite 版本,并搭配轻量级窗口管理器(如
awesome)或直接运行模拟器。 - 多模拟器支持:在 RetroPie 中,你不仅可以玩 GBA,还可以轻松添加 FC(NES)、SFC(SNES)、MD(Genesis)、PS1 等更多平台的游戏。只需将对应 ROM 放入相应目录即可。
- 状态指示灯:利用一个 GPIO 连接 LED,用脚本控制其闪烁,用于指示系统状态(如启动中、游戏中、低电量)。
这个项目从硬件连接到驱动编译,再到软件配置和性能调优,完整地走通了一个嵌入式 Linux 应用的开发流程。它不仅让你获得了一个独一无二的 GBA 掌机,更重要的是,你深入理解了 SPI 通信、Linux 帧缓冲、设备驱动和服务管理的核心概念。当屏幕亮起、游戏画面流畅呈现、按键操控自如时,那种软硬件结合带来的成就感,是纯软件项目无法比拟的。建议你将所有配置文件和脚本妥善备份,并记录下每一步的关键参数,这将成为你未来进行更复杂嵌入式项目的重要基石。
