推荐一本书《深入浅出SSD:固态存储核心技术、原理与实战》

最近比较忙,暂时没时间继续研究 UEFI编程,另外业余时间在琢磨如何制作一个双机共享(UEFI Shell 和 Windows)文件的小东西,这样能够极大方便在实体机上测试 UEFI Application。

偶然看到《深入浅出SSD:固态存储核心技术、原理与实战》这本书,感觉内容深入浅出非常适合需要了解SSD相关知识的人士。特别是 “第8章 SSD电源管理” 和当前的 Modern Standby 有很大关系(我忽然觉得未来有一天支持 S3可能会成为某个笔记本的卖点)。推荐有兴趣的朋友阅读此书。

版权信息
赞誉
推荐序一
推荐序二
前言
第1章 SSD综述
1.1 引子
1.2 SSD vs[......]

阅读全文

ESP32 GC9A01 测试代码

最近买了一个圆形的液晶显示屏,这个造型很特别是表盘的原型。它的主控是 GC9A01,我在网上搜了一圈没有找到现成的库于是只能自己研究。查看了一下 SPEC发现Command 之类的和ST7789基本相同,但是直接使用 ST7789 无法驱动显示。为此只能从头研究。

测试使用 FireBeetle(ESP32),特别需要注意的是从资料上看这个屏幕只支持 3.3V,因此使用 UNO 这样的板子有烧毁的可能,我也并没有试验过UNO 这样的5V 的板子,具体建议询问卖家。

硬件连接:

FireBeetle(ESP32)GC9A01 3.3VVCC GN[......]

阅读全文

Windows 版本对照表

来自 https://docs.microsoft.com/zh-cn/windows/release-information/

目前常见的版本有 19H1(1903) 19H2(1909) 20H1(2004)。

所有的日期都按照 ISO 8601 格式列出:YYYY-MM-DD)上次更新时间: 2020-06-18

半年频道

Version服务选项上市日期OS build最后修订日期终止服务:家庭版、教育版、专业教育版、专业工作站版和 IoT 核心版服务终止日期:企业版、教育版和 IoT 企业版2004半年频道2020-05-2719041.3312020-06[......]

阅读全文

Step to UEFI (215)AudioPkg 测试

GitHub 上的John Davis开发出了能够在 UEFI Shell下播放声音的驱动AudioPkg。具体项目可以在 https://github.com/Goldfish64/AudioPkg 看到(从19年开始我就开始关注他的项目,但是一直没有实验成功。现在他这个项目完全 Move 到另外的项目中了)。偶然之间我发现需要将当前系统的 Audio 设置为 (非SST。区别上简单的说就是 Intel 做出来一个 HD-Audio 的标准,然后又改进出来另外一套称作 SST 的标准,在 SST中大量使用 DSP ,更节省 CPU 更节省电力。唯一的问题是相比前者外界不知道如何实现只能通过I[......]

阅读全文

获得 ModernStandby ResumeTime 的方法

微软大力推广 MS的一个原因是这个功能能够让系统更快的从睡眠状态醒来,因此,需要有一种方法来测量这个时间。

在微软的网站上有介绍使用 Windows Performance Analyzer的方法【参考1】,这里用实例介绍一下。对于WPA 的安装,可以在【参考4】看到。

1.到 WPA 的安装目录下使用 wpr -start Power 开始记录

2.使用 Power Button 让系统进入MS,推荐十五分钟以上,然后使用  wpr -stop MSA.etl 生成记录文件“msa.etl”

3.双机打开这个文件后,展开 System Activit[......]

阅读全文

ESP32 SPI 速度测试

使用DFRobot 的 FireBeetle 测试 SPI速度,代码在\DFRobot_FireBeetle-ESP32\0.0.9\libraries\SPI\examples  下面:

其中的 spiClk 指定的是SPI 通讯速度,最高可以设置为 80000000(80M),示波器测量如下:

40M 波形测试如下

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_master.html

[......]

阅读全文

Secure Boot 导致的蓝屏问题

最近在 Debug 一个问题,在刷坏了一个主板之后我更换了同型号的另外的主板。开机之后出现了无法进入系统的问题。

试验无法进入安全模式。接下使用之前的 WinPe 盘【参考1】启动,查看上图提到的 SrtTrail.txt 内容如下:

从上面可以看到是因为 msdmfilt.sys 导致的,搜索了一下这个文件是 WTDF 的文件。没有办法进入安全模式也就没有办法卸载。忽然想起来可能是因为BIOS版本不同导致的。尝试启动到 Shell 来刷BIOS。但是又遇到数字签名不对的问题。这时候我意识到安装 WDTF 的时候 Secure Boot 是Disabled的,更换主板后默认[......]

阅读全文

TinkerNode 恢复方法

因为 TinkerNode 内置U盘功能,所以在某些状况下U盘出现问题会导致系统被拖慢,开发板无法上传等等情况。遇到这样的问题可以通过下面的几个方法尝试修复:

1.Arduino IDE 上传 Blinker 或者一个空的文件;

2.使用 sptool.exe --chip esp32 --port 端口号 --baud 512000 erase_flash尝试烧写

例如:sptool.exe --chip esp32 --port COM43 --baud 512000 erase_flash

3.使用 Arduino IDE 下载 ESP32 支持包选择低波特率烧写[......]

阅读全文

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[......]

阅读全文