ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

树莓派SPI驱动LCD屏幕与GBA模拟器实战指南

树莓派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/EmulationStationmgba/VisualBoyAdvance模拟器。
性能特点SPI 带宽有限,刷新率通常不高(30-60 fps 取决于分辨率和优化)。适合 2D 像素游戏,GBA 模拟压力不大。
主要挑战1.驱动适配:为特定 SPI 屏幕芯片配置正确的设备树覆盖或内核驱动。
2.性能优化:在 SPI 带宽限制下,通过帧缓冲拷贝、降低分辨率、双缓冲等方式提升流畅度。
3.输入集成:将游戏手柄或按键通过 GPIO 或 USB 接入,并在模拟器中正确映射。
最终成果一个由树莓派主板、SPI 屏幕、电池、外壳和按键组成的,可运行 GBA 游戏的完整便携设备。

2. 适用场景与使用边界

这个项目非常适合以下几类开发者和爱好者:

  1. 嵌入式学习与实践者:希望深入理解 Linux 下 SPI 设备驱动、帧缓冲机制和输入子系统。
  2. 复古游戏硬件改造爱好者:热衷于将老旧游戏机现代化,或制作个性化的复古掌机。
  3. 树莓派极客玩家:不满足于常规应用,喜欢探索树莓派 GPIO 和外设的极限玩法,制作紧凑型项目。
  4. 电子创客与学生:作为一个综合性的课程设计或毕业设计项目,涵盖硬件、驱动、应用三层。

它能解决的核心问题

  • 显示输出最小化:摆脱对 HDMI 显示器或大型 LCD 的依赖,用最少的连线和功耗实现图形界面。
  • 便携性:SPI 屏幕体积小,使得整个系统可以做得非常紧凑,易于装入掌机外壳。
  • 低成本入门:一块 SPI 屏幕的价格远低于带 HDMI 接口的官方屏幕,降低了硬件门槛。

需要注意的使用边界

  • 性能上限:SPI 的通信速率限制了屏幕刷新率和分辨率。不适合运行需要高帧率(如 60fps 以上)或高分辨率(如 1080p)的 3D 游戏或视频播放。
  • 驱动复杂性:不同品牌、不同控制芯片的 SPI 屏幕,其驱动配置方法可能差异很大。没有“万能驱动”,需要根据屏幕资料进行适配。
  • 软件兼容性:并非所有 Linux 桌面环境或应用程序都能在 SPI 屏幕的帧缓冲上良好运行。本项目主要聚焦于运行全屏的模拟器前端或特定应用。
  • 版权与法律:GBA 游戏 ROM 文件受版权保护。本项目仅讨论模拟器软件和硬件平台的搭建,请确保你使用的游戏 ROM 来源合法,即拥有正版游戏卡带并进行个人备份。

3. 环境准备与前置条件

开始动手前,请确保你已准备好以下硬件和软件环境。

3.1 硬件清单

  1. 树莓派主板:推荐树莓派 3B+、4B 或 Zero 2 W。它们性能足够,社区支持完善。确保已安装好散热片(尤其是4B)。
  2. SPI TFT LCD 屏幕:这是核心部件。购买时务必确认:
    • 控制芯片型号:如 ST7789V, ILI9341, ILI9486 等。这决定了后续使用的驱动。
    • 分辨率:常见如 240x240, 320x240, 480x320 等。分辨率越高,对 SPI 带宽压力越大。
    • 接口:必须是SPI接口,通常包含SCLK(时钟)、MOSI(主机输出从机输入)、DC(数据/命令)、RST(复位)、CS(片选) 和背光控制引脚。有些屏幕还带触摸功能(需要额外连接 SPI 的MISO和中断引脚)。
    • 排线或插针:确保屏幕带有排线或焊好插针,以便连接到树莓派的 GPIO 排针。
  3. 连接线材:杜邦线(母对母或公对母,根据屏幕接口而定),用于连接屏幕与树莓派 GPIO。
  4. 供电与存储:为树莓派供电的 USB-C 或 Micro-USB 电源(5V/3A 以上为佳),以及一张至少 16GB 的 MicroSD 卡。
  5. 输入设备:用于控制游戏的 USB 游戏手柄,或者计划集成到掌机上的 GPIO 按键。
  6. 可选外壳:3D 打印或购买现成的树莓派掌机外壳,用于固定所有部件。

3.2 软件与系统准备

  1. 树莓派操作系统:从树莓派官网下载最新版的Raspberry Pi OS (Legacy, 32-bit)。这个版本兼容性最好,对老软件和驱动支持更稳定。使用 Raspberry Pi Imager 工具将其烧录到 MicroSD 卡中。
  2. 基础系统配置:首次启动前,可以在 Imager 工具中预先设置主机名、开启 SSH、配置 Wi-Fi 和本地化设置(时区、键盘布局),这样启动后即可通过网络 SSH 连接,无需外接键盘和 HDMI 显示器。
  3. 网络连接:确保树莓派可以通过有线或无线网络连接到互联网,以便安装软件包。
  4. 终端工具:准备一个 SSH 客户端(如 PuTTY, Terminal, MobaXterm)用于远程登录树莓派。

4. 硬件连接与 SPI 接口启用

硬件连接是第一步,务必仔细核对引脚定义。

4.1 连接 SPI LCD 屏幕

以一块常见的 40-pin GPIO 树莓派(3B+/4B)和一款 ST7789V 芯片的 1.54寸 240x240 屏幕为例,连接方式如下:

屏幕引脚树莓派 GPIO 引脚 (BCM编号)物理引脚号作用
VCC3.3V (Pin 1)1电源 (3.3V)
GNDGND (Pin 6)6地线
SCL (SCLK)GPIO 11 (SPI0 SCLK)23SPI 时钟线
SDA (MOSI)GPIO 10 (SPI0 MOSI)19SPI 数据线 (主出从入)
RES (RST)GPIO 2522复位信号 (可接其他 GPIO)
DC (RS)GPIO 2418数据/命令选择
CSGPIO 8 (SPI0 CE0)24SPI 片选 0
BL (背光)3.3V 或 GPIO 18 (PWM控制)1 或 12背光电源

重要提示

  • 务必查阅你屏幕的说明书或商品页面,确认其引脚定义,切勿照搬上表
  • VCC必须接3.3V,接 5V 会烧毁屏幕!
  • GND必须连接。
  • RSTDC引脚可以连接到任意可用的 GPIO,后续在驱动配置中需要指定这些引脚号。
  • 如果屏幕带触摸(通常为 XPT2046 芯片),还需要连接T_IRQ(中断) 和T_DO(MISO) 到对应的 GPIO。

4.2 启用树莓派 SPI 接口

树莓派的 SPI 接口默认是禁用的,需要通过raspi-config工具开启。

  1. 通过 SSH 登录你的树莓派。
  2. 运行配置工具:
    sudo raspi-config
  3. 使用方向键选择Interface Options->SPI
  4. 当询问是否启用 SPI 接口时,选择<Yes>
  5. 完成后,选择<Finish>退出,并根据提示重启树莓派。
  6. 重启后,验证 SPI 是否已启用:
    lsmod | grep spi
    你应该能看到spi_bcm2835等相关模块。同时,检查设备文件是否存在:
    ls /dev/spidev0.*
    应该能看到/dev/spidev0.0/dev/spidev0.1两个设备节点。

5. 安装与配置 SPI LCD 驱动

这是最关键的一步,目的是让 Linux 系统将 SPI 屏幕识别为一个可用的显示设备(如/dev/fb1)。

5.1 安装依赖与驱动源码

我们将使用一个非常流行的开源项目fbcp-ili9341,它是一个高性能的帧缓冲拷贝程序,支持多种 SPI 屏幕芯片。

  1. 更新系统并安装编译依赖:

    sudo apt update sudo apt upgrade -y sudo apt install -y cmake build-essential libssl-dev
  2. 克隆fbcp-ili9341仓库(如果网络问题,可以考虑使用镜像源或提前下载):

    cd ~ git clone https://github.com/juj/fbcp-ili9341.git cd fbcp-ili9341

5.2 配置与编译驱动

编译前,需要根据你的屏幕型号和连接引脚修改CMakeLists.txt或通过 CMake 参数进行配置。

  1. 进入构建目录并运行 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)。
  2. 开始编译:

    make -j$(nproc)

    编译完成后,会在当前目录生成可执行文件fbcp-ili9341

5.3 测试驱动与配置自启动

  1. 首次测试:在启动任何图形界面之前进行测试。可以先停止可能的图形服务(如果是 Lite 版系统则不需要):

    sudo systemctl stop lightdm

    然后运行驱动:

    sudo ./fbcp-ili9341

    此时,SPI 屏幕应该被点亮,并显示树莓派主屏幕(可能是控制台或桌面镜像)。按Ctrl+C可以停止程序。

  2. 配置系统服务(自启动):为了让驱动在系统启动时自动运行,我们需要创建一个 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, 回车)。

  3. 启用并启动服务:

    sudo systemctl daemon-reload sudo systemctl enable fbcp.service sudo systemctl start fbcp.service
  4. 检查服务状态:

    sudo systemctl status fbcp.service

    如果显示active (running),说明驱动已成功在后台运行。现在,SPI 屏幕应该作为系统的第二个显示器(/dev/fb1)持续显示主显示(/dev/fb0)的内容。

6. 安装与配置 GBA 模拟器

有了显示输出,接下来安装游戏模拟器。这里提供两种主流方案:功能全面的RetroPie和轻量级的独立模拟器

6.1 方案一:安装 RetroPie(推荐)

RetroPie 是一个集成了多种模拟器、前端界面和工具的游戏系统,管理游戏非常方便。

  1. 下载 RetroPie 镜像:从 RetroPie 官网下载对应你树莓派型号的预构建镜像(如 Raspberry Pi 2/3/4)。
  2. 烧录与首次启动:使用 Raspberry Pi Imager 或 BalenaEtcher 将镜像烧录到 SD 卡。首次启动会进行文件系统扩展和基本配置。注意:RetroPie 镜像自带系统,会覆盖我们之前安装的驱动。因此,我们需要在 RetroPie 系统上重新执行第5步,安装 SPI 屏幕驱动。
  3. 在 RetroPie 上安装 SPI 驱动:过程与第5步完全相同。通过 RetroPie 的终端或 SSH 连接到树莓派,安装依赖、克隆fbcp-ili9341、根据屏幕配置并编译、最后配置自启动服务。
  4. 配置 RetroPie 使用 SPI 屏幕:RetroPie 默认输出到 HDMI。我们需要告诉它使用 SPI 屏幕对应的帧缓冲设备。
    • 编辑启动脚本,指定帧缓冲设备。可以修改/opt/retropie/configs/all/autostart.sh(如果存在),或者在 EmulationStation 启动前设置环境变量。一个更简单的方法是在~/.bashrc末尾添加:
      export SDL_VIDEODRIVER=fbcon export SDL_FBDEV=/dev/fb1
    • 重启 EmulationStation 或整个系统使配置生效。
  5. 添加 GBA 游戏 ROM:将你的 GBA 游戏 ROM 文件(.gba 格式)通过 Samba 共享(\\RETROPIE)或 SFTP 上传到/home/pi/RetroPie/roms/gba/目录下。
  6. 配置手柄:首次进入 RetroPie 的 EmulationStation 界面时,会提示你配置手柄。按照屏幕提示按键即可。

6.2 方案二:安装独立 GBA 模拟器 (mgba)

如果你希望系统更轻量,或者只想运行 GBA 模拟器,可以安装mgba

  1. 在原始的 Raspberry Pi OS 上安装mgba
    sudo apt update sudo apt install -y mgba-qt
  2. 同样需要配置环境变量,使其输出到 SPI 屏幕:
    echo "export SDL_VIDEODRIVER=fbcon" >> ~/.bashrc echo "export SDL_FBDEV=/dev/fb1" >> ~/.bashrc source ~/.bashrc
  3. 运行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 并加载游戏。

7. 性能优化与调校

SPI 带宽有限,直接拷贝整个帧缓冲可能无法达到流畅的帧率。以下是一些关键的优化手段:

  1. 降低主显示器分辨率: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
    • 重启生效。
  2. 调整 SPI 总线速度:在fbcp-ili9341的 CMake 配置中,-DSPI_BUS_CLOCK_DIVISOR值越小,SPI 时钟越快。但过快可能导致数据错误(花屏)。需要在稳定性和速度间权衡。对于 240x240 屏幕,尝试-DSPI_BUS_CLOCK_DIVISOR=106

  3. 启用双缓冲与区域更新fbcp-ili9341默认支持双缓冲和只拷贝变化的屏幕区域。确保编译时没有禁用这些功能(默认开启)。这可以显著减少 SPI 数据传输量。

  4. 优化模拟器设置

    • 在 RetroPie 的 Runcommand 菜单中,或在 mgba 的设置里,将视频渲染器设置为SDLSoftware
    • 关闭垂直同步(VSync)、平滑过滤(Shader)等消耗资源的后期处理效果。
    • 对于 GBA 游戏,模拟器本身开销不大,瓶颈通常在于 SPI 的屏幕刷新。
  5. 超频树莓派(进阶):轻微的 CPU/GPU 超频可以提升整体性能,但会增加发热和不稳定性风险。仅在做好散热并了解风险后尝试。在/boot/config.txt中修改:

    over_voltage=2 arm_freq=1400 # 对于 Pi 3B+ gpu_freq=500

8. 输入控制集成

要让其成为真正的掌机,需要集成物理按键。

  1. 使用 USB 手柄:最简单的方式。将 USB 手柄插入树莓派,在 RetroPie 或模拟器内配置键位即可。
  2. 使用 GPIO 按键:更紧凑、更“嵌入式”的方式。你需要一些轻触开关,并连接到树莓派的 GPIO 引脚和 GND。
    • 电路:按键一端接 GPIO,另一端接 GND。GPIO 引脚需要配置为输入模式并启用内部上拉电阻,这样默认是高电平,按下时变为低电平。
    • 软件:需要编写脚本或使用工具(如evdevgpio-key)将 GPIO 的按键事件映射为键盘或游戏手柄事件。一个常用的工具是retrogame(Adafruit 提供)或GPIO-to-Keyboard脚本。配置后,系统会将 GPIO 按键识别为标准的键盘输入,从而被模拟器捕获。

9. 常见问题与排查方法

在搭建过程中,你可能会遇到以下问题:

问题现象可能原因排查方式解决方案
SPI 屏幕无任何显示1. 电源接错(接了5V)。
2. 背光未开启。
3. SPI 未启用。
4. 驱动未运行。
1. 检查 VCC 是否接 3.3V。
2. 检查背光引脚是否接电。
3. 运行lsmod | grep spils /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. 使用tophtop查看 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. 最佳实践与项目延伸

完成基础功能后,你可以考虑以下优化和扩展,让项目更完善:

  1. 电源管理:使用 TP4056 等充电模块搭配锂电池,并利用树莓派的GPIO监测电量,或编写脚本在低电量时安全关机。
  2. 音频输出:虽然 SPI 屏幕不带扬声器,但你可以使用树莓派自带的 3.5mm 音频口或 HDMI 音频(如果外接显示器调试),或者连接一个 USB 声卡或 I2S 音频 DAC 模块(如 PCM5102)来获得更好的音质。
  3. 外壳设计:使用 FreeCAD 或 Tinkercad 等软件为你的树莓派、屏幕和电池设计一个 3D 打印外壳,使其真正便携。
  4. 系统精简:为了更快启动和更低功耗,可以移除不需要的系统服务和软件,使用 Raspberry Pi OS Lite 版本,并搭配轻量级窗口管理器(如awesome)或直接运行模拟器。
  5. 多模拟器支持:在 RetroPie 中,你不仅可以玩 GBA,还可以轻松添加 FC(NES)、SFC(SNES)、MD(Genesis)、PS1 等更多平台的游戏。只需将对应 ROM 放入相应目录即可。
  6. 状态指示灯:利用一个 GPIO 连接 LED,用脚本控制其闪烁,用于指示系统状态(如启动中、游戏中、低电量)。

这个项目从硬件连接到驱动编译,再到软件配置和性能调优,完整地走通了一个嵌入式 Linux 应用的开发流程。它不仅让你获得了一个独一无二的 GBA 掌机,更重要的是,你深入理解了 SPI 通信、Linux 帧缓冲、设备驱动和服务管理的核心概念。当屏幕亮起、游戏画面流畅呈现、按键操控自如时,那种软硬件结合带来的成就感,是纯软件项目无法比拟的。建议你将所有配置文件和脚本妥善备份,并记录下每一步的关键参数,这将成为你未来进行更复杂嵌入式项目的重要基石。

返回列表