Step to UEFI (214)Ps2键盘的LED 分析

之前研究过Shell下如何控制USB 键盘上的 LED【参考1】,这次研究如何实现 PS2 键盘的 LED 控制。

和 USB 键盘一样,PS2 键盘同样需要实现Shell 下键盘 LED 的同步。意思是如果系统中有一个 USB 键盘和一个PS2键盘,当USB键盘 Num 键按下后,键盘LED状态也要同步到PS2 键盘上。

对应的代码可以在\MdeModulePkg\Bus\Isa\Ps2KeyboardDxe\Ps2KbdCtrller.c 的 UpdateStatusLights 函数中看到。根据代码基本想法如下在这个头文件中有如下定义\MdeModulePkg\Bus\I[......]

阅读全文

Arduino 上通过串口控制CH376

CH37X 系列是南京沁恒出品的一系列USB控制类的芯片,主要用途是用作 USB Host 实现 USB 设备的控制。具体列表如下【参考1】:

上面不同型号主要差别在于提供的接口,目前支持三种对单片机的接口,分别是并口 SPI和串口。此外就是是否硬件集成文件系统。如果集成了,那么可以通过简单的命令来实现文件系统级别的操作,否则需要主控芯片自己来实现,这对于主控的内存要求比较高,整体程序也会复杂得多。

从上面可以看到,CH378 是当前最强的,但是因为封装更加负责以及比较新的原因(缺少资料),所以市面上最常见的还是 CH376,淘宝上的价格在20以内,应该也是比较容易接受的。这次[......]

阅读全文

查看 PMC Firmware版本的工具

很多时候,我们需要得知当前系统中的 PMC Firmware版本。最简单的方法是进入 Setup 查看。但是不幸的是很多时候BIOS会主动隐藏这个选项。因此,编写一个 Shell 下的工具。用户可以直接获得当前系统 PMC版本号:

当然,除此之外还可以使用 MEInfo.efi (在 CSME Release Package 中)看到 PMC 的版本信息:

[......]

阅读全文

Arduino USB Host Shield PL2302 Debug Message

问题:当我运行USB Host Shield Library 中关于 Pl2303 的例子(比如 pl2303_gprs_terminal)的时候,在串口会有下面的 Debug 信息:

经过研究,产生的位置在  Usb.cpp 下面函数中

下面这个代码处:

但是很明显,这里是调用设定的 callback 函数。

经过查找,最终确定实际生效的代码是hexdump.h 文件中下面的代码:

因为其他地方对 UsbDEBUGlvl 赋值为 0x80,所以会输出一下信息用于Debug。

最近阅读 USB Host Shield 感觉风格不是很[......]

阅读全文

Windows10 Lite

最近下载了一个 Windows10 lite,专门用在虚拟机中配合 PHM 查看 Log (我不建议在工作机上安装 PHM ,因为在安装过程中会安装后一些服务会拖慢系统,导致系统降低,因此建议大家用额外的机器安装PHM 查看Log)。镜像来自下面的链接:

https://www.majorgeeks.com/files/details/windows_10_lite.html

这个版本具体的参数如下:

Technical Setup Details

Full NameWindows 10 LiteFull Setup Size2.4 GB (For 32 Bit), 2[......]

阅读全文

ESP32 上使用 USB Host Mini

之前介绍过祖国版的 USB Host Mini 【参考1】,这里介绍一些如何在 ESP32 上使用USB Host 功能。试验的板子是 DFRobot 的 FireBeelte:

来自【参考2】

USB  Host Mini 上有24个Pin, 但是实际用到的只有9个,按照下图将它和 FireBeelte 接起来即可:

USB Host Library 直接兼容 ES32 ,. 建议先运行 例子中的Board_QC 来验证板子是否工作正常。

下面是取得 USB 描述符的例子运行结果:

参考:

  1. https://www.lab-z.co[......]

    阅读全文

WPA 的安装

WPA 是 Windows Performance Analyzer的缩写,主要用途是用来分析代码性能【参考1】。在Debug Modern Standby S0 相关问题的时候非常有用,比如:​它可以告诉你谁在占用 CPU 使其处于S0状态,或者哪个中断将CPU 唤醒到S0。本文介绍一下这个工具的安装:

  1. 这个工具在 SDK 中,另外在ADK 中也有。

 2.选择路径

3.选择不要发送

4.选中 “Windows Performance Toolkit” 这就是我们需要的 WPA。从提示可以看出,其中包括 Windows Performance R[......]

阅读全文

Arduino ESP32 安装指南

理论上 Arduino 支持 ESP32 的主控板是非常简单的事情,在IDE 中操作就可以了。但是因为众所周知的原因经常会出现错误,这里就介绍一下另外的方法。

  1. 在首选项中“附加开发板管理器网址”中加入下面这个网址:

https://dl.espressif.com/dl/package_esp32_index.json

2.这里设置好之后可以直接到开发板管理器中搜索 ESP32,如果能够正常搜索到ESP32,然后顺利完成下载,那么久无需阅读下面部分。

上面Step2 失败,出现错误,需要手工操作如下:

A. 将 package_esp32_index.json[......]

阅读全文