3.5 KiB
RP2350
基于RP2350进行功能整合,修复部分bug,时间所限,结束时间:20260108。 归档处理
前提:
编译基础:
apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential git python3 libstdc++-arm-none-eabi-newlib -y
获取Pico SDK
git clone -b master https://github.com/raspberrypi/pico-sdk.git
git submodule update --init
export PICO_SDK_PATH=~/pico/pico-sdk
获取本项目源码:
git clone http://192.168.201.136:3000/jb/spmkey.git
git submodule update --init --recursive
本项目优先使用:微雪RP2350-USB-A(GPIO 16 连接 WS2812B RGB LED,已加入支持ws2812B,其他的自救)
注意:26年以前的微雪RP2350是A2版本,存在安全漏洞,建议考虑:A4版
移植来自微雪RB2350 RGB例程,出bug,自救
支持的模拟PID/VID
| 平台名称 (VIDPID 参数) | VID (厂商 ID) | PID (产品 ID) | 说明 |
|---|---|---|---|
| NitroHSM | 0x20A0 |
0x4230 |
Nitrokey HSM |
| NitroFIDO2 | 0x20A0 |
0x42B1 |
Nitrokey FIDO2 |
| NitroStart | 0x20A0 |
0x4211 |
Nitrokey Start |
| NitroPro | 0x20A0 |
0x4108 |
Nitrokey Pro |
| Nitro3 | 0x20A0 |
0x42B2 |
Nitrokey 3 |
| Yubikey5 | 0x1050 |
0x0407 |
Yubico YubiKey 5 |
| YubikeyNeo | 0x1050 |
0x0116 |
Yubico YubiKey NEO |
| YubiHSM | 0x1050 |
0x0030 |
Yubico YubiHSM |
| Gnuk | 0x234B |
0x0000 |
Gnuk Token |
| GnuPG | 0x1209 |
0x2440 |
GnuPG Smartcard |
默认值:VID是:0xFEFF,PID:0xFCFD
参考文件:pico-keys-sdk/pico_keys_sdk_import.cmake
cmake 参数:cmake .. -DVIDPID=Yubikey5或者 cmake .. -DVIDPID=NitroFIDO2
其他参数
一键查看参数:grep -n "Pico Key|picokeys|PRODUCT|string_desc"
参考文件:
pico-keys-sdk/src/usb/usb_descriptors.c
pico-keys-sdk/src/led/led_ws2812.c
main 文件:pico-keys-sdk/src/main.c
注意:存在多个CMakeLists.txt文件
已经微调加入参数:
| CMake参数 | 类型 | 示例 | 作用 |
|---|---|---|---|
-DUSB_MANUFACTURER |
字符串 | '"SPM-A2"' |
设备名称 |
-DVIDPID |
字符串 | '"Yubico"' |
制造商PID/VID |
-LED_BRIGHTNESS_DIV |
数字 | 20(对应下方5%) |
LED亮度(越大越暗) |
亮度值说明
参考CMake编译命令:
cmake -DUSB_PRODUCT='"SPM-PMC"' \ -DUSB_MANUFACTURER='"Yubico"' \ -DUSB_LANDING_URL='"www.baidu.com"' \ -DLED_BRIGHTNESS_DIVISOR=20 \
亮度参考表
| LED_BRIGHTNESS_DIV | 实际亮度 | 效果 |
|---|---|---|
| 1 | 100% | 非常亮 |
| 2 | 50% | 很亮 |
| 5 | 20% | 适中 |
| 10 | 10% | 较暗 |
| 20 | 5% | 默认,暗,仍可见 |
| 50 | 2% | 最暗(自动限制) |
| >50 | 2% | 自动限制为最小 |
启用WS2812B(默认已配置)
LED 配置(主CMakeLists.txt)启用ws2812
编辑文件:pico-fido2/CMakeLists.txt
endif(ENABLE_OTP_APP)下方加入
WS2812 LED 配置
add_definitions(-DPICO_DEFAULT_WS2812_PIN=16)
message(STATUS "WS2812 LED Pin: \t\t 16")
验证:
cmake 输出显示:-- WS2812 LED Pin: 16
编译
PICO_SDK_PATH=~/pico/pico-sdk cmake .. \
-DPICO_BOARD=pico2 \
-DVIDPID=Yubikey5 \
-DUSB_MANUFACTURER="Yubico" \
-DUSB_PRODUCT_NAME="SPM-PMC" \
-DLED_BRIGHTNESS_DIV=20
make -j$(nproc)
注意:每次重新编译建议把build文件清空
刷机
长按BOOT接电,把uf2文件复制到RP2350分区即可(自动重启)
备注支持查看本仓库的SupportList.md文件