该固件专为集成 VGA/HDMI、SD 卡和键盘输入的 RP2350 开发板设计:
- Raspberry Pi Pico 2(RP2350)或兼容开发板
- 8MB PSRAM(扩展内存所需)
- VGA 或 HDMI 接口
- SD 卡模块(SPI 模式)
- PS/2 键盘(直连)- 或 - USB 键盘(通过原生 USB 端口)
- 音频输出(可选):I2S DAC 或 PWM
注意: 启用 USB HID 后,原生 USB 端口将用于键盘/鼠标输入。此模式下 USB 串口控制台(CDC)被禁用;请使用 UART 进行调试输出。
支持四种 GPIO 布局:M1、M2、PC(Olimex)和 Z2(Waveshare)。
信号 M1 GPIO M2 GPIO
基址 6 12
范围 6-13 12-19
SD 卡(SPI 模式)
信号 M1 GPIO M2 GPIO
CLK 2 6
CMD 3 7
DAT0 4 4
DAT3/CS 5 5
PS/2 键盘
信号 M1 GPIO M2 GPIO
CLK 0 2
DATA 1 3
PS/2 鼠标
信号 M1 GPIO M2 GPIO
CLK 14 0
DATA 15 1
NES/SNES 游戏手柄
信号 M1 GPIO M2 GPIO
CLK 14 20
DATA 16 26
LATCH 15 21
I2S 音频
信号 M1 GPIO M2 GPIO
DATA 26 9
BCLK 27 10
LRCLK 28 11
SD 卡设置
目录结构
在 SD 卡上创建一个 386/ 目录:
SD 卡根目录/ └── 386/ ├── config.ini # 配置文件 ├── bios.bin # SeaBIOS ROM(必需) ├── vgabios.bin # VGA BIOS ROM(必需) ├── dos622.img # 硬盘映像 ├── boot.img # 软盘映像 └── ... # 其他磁盘映像
BIOS 文件
从 SeaBIOS 发布页下载 SeaBIOS 和 VGA BIOS,或使用 sdcard/386 中的 bios.bin/vgabios.bin。
[pc] mem=8M bios=bios.bin vga_bios=vgabios.bin
[frank-386] cpu_freq=504 psram_freq=166
准备磁盘映像
软盘映像(.img):
启动时:
如上所示在 config.ini 中配置磁盘映像。
通过磁盘管理器所做的更改会自动保存到 config.ini。
键盘快捷键
快捷键 操作
Win+F12 打开磁盘管理器
Win+F11 打开设置菜单
Ctrl+Alt+Delete 系统复位(发送给客户操作系统)
设置菜单(Win+F11)
在运行时配置模拟器设置:
设置保存到 config.ini,重启后生效。
前提条件
- 安装 Raspberry Pi Pico SDK(2.0 及以上版本)
- 设置环境变量:export PICO_SDK_PATH=/path/to/pico-sdk
- 安装 ARM GCC 工具链
构建步骤
# 克隆仓库
git clone https://github.com/rh1tech/frank-386.git
cd frank-386
# 使用默认设置构建(M2 开发板、378MHz、PS/2 键盘)
./build.sh
# 为 M1 开发板构建
./build.sh -M1
# 构建支持 USB 键盘的版本
./build.sh --usb-hid
# 自定义构建
./build.sh -b M1 -c 504 -p 166 --debug
构建选项(build.sh)
选项 说明
-b, --board <M1|M2|PC|Z2>
开发板型号(默认:M2)
-c, --cpu <MHz>
CPU 频率:378(默认)、504
-p, --psram <MHz>
PSRAM 频率:133(默认)、166
--usb-hid
启用 USB 键盘(禁用 USB 串口)
--hdmi
强制 HDMI 输出
--debug
启用调试输出
-clean
先清理构建目录
构建选项(CMake)
选项 说明
-DPICO_BOARD=pico2
针对 RP2350 构建(默认)
-DBOARD=M1
使用 M1 GPIO 布局
-DBOARD=M2
使用 M2 GPIO 布局(默认)
-DBOARD=PC
使用 Olimex PICO-PC 布局
-DBOARD=Z2
使用 Waveshare RP2350-PiZero 布局
-DCPU_SPEED=378
CPU 时钟频率,单位 MHz(378、504)
-DPSRAM_SPEED=133
PSRAM 时钟频率,单位 MHz(133、166)
-DUSB_HID_ENABLED=ON
启用 USB 键盘(禁用 USB 串口)
-DDEBUG_ENABLED=ON
启用详细调试日志
-DFORCE_HDMI=ON
强制 HDMI 输出
发布版本构建
构建所有固件变体:
交互式(提示输入版本号)
./release.sh
指定版本号
./release.sh 1.02
这会在 release/ 目录中生成固件文件: