在编写调试 UEFI Shell 下的 Application 的时候,经常需要在实体机上进行测试。但是每次需要使用U盘来回拷贝,感觉非常麻烦。为了解决这个问题,最近几个月,制作了一个调试助手: UEFI Shell Helper 缩写 USH。
上面有2个 USB 接口,一个是 CH340 提供的 USB 串口(USB Type-A 公头),另外一个是 ESP32-S2 模拟出来的 U盘(USB Type-B 母头)。这个模拟 U盘中还内置了一个 UEFI Shell ,可以直接启动到 Shell 下。使用时,将母头端接入被测机,然后公头端接入Windows 主机端。之后可以通过主机对设备发送数据,发送完成后运行 Shell 下的应用程序即可取得数据;反之被测试端也可以发送数据给主机端。这样在调试的时候就可以免除插拔拷贝之苦。
工作的视频:
https://www.bilibili.com/video/BV1T64y1e7ay/
这是一个开源设备,具体设计方案可以在下面的链接看到(涉及电路图,PCB 设计, C# 编程和 Arduino 代码开发,前后搞了3个月,感觉挺复杂):
https://diy.szlcsc.com/p/Zoologist/uefi-shell#
有兴趣的朋友可以看看,不过目前还有1个问题尚未解决:
1.串口传输最高只能达到 230400 baud rate (115200*2),选用的 CH340B 应该可以达到 2000000;目前正在找 WCH Debug。
后面会介绍 USH 牵涉到的 UEFI 内容.