使用 EasyX 生成动画的方法

第一步:编写代码,在代码中需要将每一帧保存为图片格式。比如,下面是一个在圆中绘制另外一个圆的程序:

运行这个程序之后,你会在目录下找到 00000.jpg 到 01000.jpg 文件

第二步,使用 FFMPEG 将这些文件“粘”成一个视频。在 https://github.com/BtbN/FFmpeg-Builds/releases 下载编译好的 FFMPEG 工具(对应 ffmpeg-master-latest-win64-gpl 这个名称的文件)。

使用的命令是:

其中 -r 25表示1秒25帧, -b:v 4M 设定输出视频码率。具体请根据[......]

阅读全文

Step to UEFI (284)最小的UEFI Application编译环境

前面介绍过一个最小的 UEFI Application编译器【参考1】,美中不足的是它还要依赖于 EDK2 的环境。这次介绍如何从 EDK2 中抽取所需的最小文件,从而实现一个最简单的编译环境。换句话说,之前介绍的是一个最小的用于生成 UEFI Application的编译器,这次介绍的是编译器和编译所需的环境。

实现的方法很简单:研究上一次的编译命令

可以看到,指定了MdePkg/Include作为Include 路径,因此,只要我们将这个路径下依赖的文件提取出来即可。

最终实验发现提取如下的文件和目录就够了:

运行命令,编译之(需要注意使用 cmd 窗口):[......]

阅读全文

如何下载 Windows 11 指定版本

如果你只是想下载安装最新的 Windows 11 ,可以到 https://msdn.itellyou.cn/ 进行下载。但是如果你想获得一个指定的版本或者说不是正是发布的版本,上面的网站未必能够找到。这次推荐的使用 https://uupdump.net/ 这个网站。

以获得 Windows 11 22621.1250版本为例,介绍使用方法:

1.打开网站搜索 “22621 1250”

2.在搜索的结果中选择你需要的版本,比如:Windows 11 Insider Preview 10.0.22621.1250 (ni_release) amd64

3.点击链[......]

阅读全文

Step to UEFI (283)QEMU下面的 LVGL 测试

LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。LVGL的项目作者是来自匈牙利首都布达佩斯的 Gábor Kiss-Vámosi 。Kiss 在2016年将其并发布在 GitHub 上。

当时叫 LittlevGL而不是LVGL,后来作者统一修改为 LVGL 甚至连仓库地址都改了。 像一般的开源项目的那样,它是作为一个人的项目开始的。 从那时起,陆续有近 100 名贡献者参与了项目开发,使得 LVGL 逐渐成为最受欢[......]

阅读全文

ch569 上手测试

为了玩转 Ch569 ,需要准备如下硬件和软件:

硬件要求:

1.官方的 Ch569 开发板,官方买到的是两块插接在一起的,大多数情况下我们的实验都只使用到一块。

CH559 开发板

2.USB 3.0 A-A 线一根

软件要求(都可以在官网下载到):

1.项目管理和编译工具:MounRiver

2.官方 Demo: CH569EVT

3.烧写软件:WCHISPTool

安装完成CH569 后,以\CH569EVT\EVT\EXAM\USBSS\USBD\CH372Device为例。这个代码能够将Ch569模拟为Ch372设备。

[......]

阅读全文

Step to UEFI (282)如何修改 Emulator 的分辨率

在测试一些简单的 UEFI Application 时,EDK2 自带的Emulator 还是非常方便的。这次介绍的就是如何修改 Emulator的默认分辨率。

首先,使用 build -a X64 -p EmulatorPkg\EmulatorPkg.dsc -t VS2019 编译 Emulator

接下来运行 Build\EmulatorX64\DEBUG_VS2019\X64 中的 WinHost.exe,在 Shell 中运行【参考1】提供的 Application 检查当前的分辨率,可以看到默认为 800x600。

接下来修改分辨率,在 \EmulatorPk[......]

阅读全文

Step to UEFI (281)Emulator Debug Message 的输出

几年之前,研究过 EDK2 的调试信息输出的问题【参考1】【参考2】。最近偶然之间发现目前的 EDK2 的 EmulatorPkg 生成的 WinHost.exe 无法使用“>>”进行输出重定向。这次针对这个问题进行研究。

首先说说具体的现象。使用 winhost >> out.txt 命令,尝试抓取Debug 信息,仍然能在屏幕上看到 Debug 信息:

打开 out.txt 可以看到抓到了部分的信息:

根据之前的知识,我们在 EmulatorPkg 中搜索 STD_OUTPUT_HANDLE,可以找到三个位置:

1. \EmulatorPkg[......]

阅读全文

Step to UEFI (280)计算精确时间

一些情况下,我们需要得知操作消耗的时间,比如:通过硬盘读写操作耗费的时间能够计算出硬盘的速度。针对这个问题,之前有过研究,例如:GetTime 研究【参考1】、EADK clock()【参考2】。这里再次进行研究。

首先,在MdePkg\Include\Library\TimerLib.h给出了下面两个函数:

其中的GetPerformanceCounter() 返回CPU 当前经过的计数值或者说多少个 Ticks,GetTimeInNanoSecond() 函数能将经过的计数值转化为纳秒为单位的时间。

编写一个 UEFI Shell代码进行测试:

1. 在Ap[......]

阅读全文

可以指定压缩后文件大小的JPEG工具

大部分JPEG 工具都可以指定图片的压缩质量,从0-100 。但是有时候我们需要一个绝对的数值,比如:500KB 的照片我们期望压缩到40KB。经过努力找到了一个这样的开源工具,在

https://github.com/tjko/jpegoptim

命令行方式工作,比如,我找了一副3.39MB的图片:

使用如下命令:

压缩之后大小为 193KB

只要不是特别夸张的参数,例如:要把上述图片压缩为40KB,个人感觉都还是可以接收的。

[......]

阅读全文