## BoxLambda USB HID 支持总结
本项目成功地将 USB 人机界面设备 (HID) 支持集成到 BoxLambda FPGA SoC 中,利用了 NAND2Mario 的 `usb_hid_host` 核心。最初计划使用 PS/2 接口,但 USB 实现提供了一条更简单的路径,只需要一个 Wishbone 前端和时钟域交叉 (CDC) 逻辑,即可将 12MHz USB 时钟与系统 50MHz 时钟接口。键盘和鼠标功能很快建立起来。
一个关键挑战来自于原始核心缺乏键盘 LED 控制。这导致了扩展核心的 UKP 处理器指令集,以实现发送 SetReport 消息来控制 LED,需要深入研究 USB HID 规范。测试是通过基于 J1 处理器运行 Forth 的 USB 键盘/鼠标模拟器进行的,这是一个令人惊讶的优雅解决方案。
该项目还涉及仔细的时钟和复位域管理,以及用于软件交互的最小硬件抽象层 (HAL)。成功的测试发生在 Verilator 仿真和 Arty A7 FPGA 板上。该集成展示了使用 NAND2Mario 核心的 USB 连接的简易性,同时也突出了隐藏在看似简单接口下的复杂性。该项目的 GitHub 仓库已公开,供进一步探索。
Claude Code 在 bash 命令输出中错误显示大整数,显示的值与命令实际输出的值不同。
重现步骤:
在 Claude Code 中运行以下命令:echo '348555896224571969'
或者使用 jq:echo '{"value": 348555896224571969}' | jq -c .value
预期行为:
Claude Code 应显示:348555896224571969
实际行为:
Claude Code 显示:348555896224571970 (差 1)
验证:
在原生终端中运行相同的命令可以正确输出:348555896224571969
环境:
Claude Code 版本:v2.0.37
模型:Sonnet 4.5 (Claude Max)
平台:macOS (Darwin 24.3.0)
截图