添加README进行补充使用

This commit is contained in:
jff 2026-01-08 16:17:30 +08:00
parent 10c9e8002e
commit 7e2f1c7914
1 changed files with 137 additions and 0 deletions

137
README.md Normal file
View File

@ -0,0 +1,137 @@
# RP2350
## 前提:
### 编译基础:
`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-AGPIO 16 连接 WS2812B RGB LED已加入支持ws2812B其他的自救
注意26年以前的微雪RP2350是A2版本存在安全漏洞建议考虑A4版
移植来自微雪RB2350 RGB例程出bug自救
## fido-pico2支持的模拟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是0xFEFFPID0xFCFD
参考文件pico-fido2/pico-keys-sdk/pico_keys_sdk_import.cmake
cmake 参数:`cmake .. -DVIDPID=Yubikey5`或者 `cmake .. -DVIDPID=NitroFIDO2`
## pico-fido2其他参数
一键查看参数grep -n "Pico Key|picokeys|PRODUCT|string_desc"
参考文件:
pico-fido2/pico-keys-sdk/src/usb/usb_descriptors.c
pico-fido2/pico-keys-sdk/src/led/led_ws2812.c
main 文件pico-keys-sdk/src/main.c
已经微调加入参数:
| CMake参数 | 类型 | 示例 | 作用 |
|----|----|----|----|
| `-DUSB_MANUFACTURER` | 字符串 | `'"SPM-A2"'` | 设备名称 |
| `-DVIDPID` | 字符串 | `'"Yubico"'` | 制造商PID/VID |
| `-LED_BRIGHTNESS_DIV` | 数字 | `20对应下方5% ` | LED亮度越大越暗 |
亮度值说明
参考CMake编译命令
`cmake -DUSB_PRODUCT='"YubiKey-Alice"' \ -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
## 编译
```javascript
PICO_SDK_PATH=~/pico/pico-sdk cmake .. \
-DPICO_BOARD=pico2 \
-DVIDPID=Yubikey5 \
-DUSB_MANUFACTURER="Yubico" \
-DUSB_PRODUCT_NAME="SPM-A2" \
-DLED_BRIGHTNESS_DIV=20
make -j$(nproc)
```
注意每次重新编译建议把build文件清空
## 刷机
长按BOOT接电把uf2文件复制到RP2350分区即可自动重启
备注支持查看本仓库的SupportList.md文件