特色

招聘信息(更新Ampere Computing职位 4月12日)

1.AMD BIOS 的一个职位,具体要求在以下页面:

http://www.lab-z.com/amd-bios/

2.Ampere Computing 的一个职位 ,要求在以下页面可以看到:

3. GRL 的一个职位

硬件测试工程师

Position Description:

1. Singal Integrety Test on High/Low-Speed data signals using Oscilloscope, Networking Analyzer, BERT

2. Strictly execute validation tes[......]

阅读全文

FireBeetle 直接放声(DAC篇)

声音,是物体振动产生的,通常情况下通过空气将震动传递到耳朵我们就能听到了声音。常见的喇叭就是一种将电能转换为机械能的器件。

FireBeetle 核心是 ESP32-WROOM-32D, 主控频率高达240Mhz, Flash Rom 有 16MB。这里介绍一种直接通过它来播放声音的方法。用这种方法可以直接通过喇叭来播放音乐,但是因为 ESP32 输出功率有限,直接推动喇叭产生的声音很小。为此,这里使用“Gravity: 带功放喇叭模块”来实现更大的声音输出。

基本原理是将数据存储在 FireBeetle 的Flash 上,然后通过 ESP32 的DAC 直接输出之。

具[......]

阅读全文

FireBeetle 直接放音(PWM篇)

前面介绍了FireBeetle 通过 DAC 来播放音频,除此之外,还可以使用 PWM 方式来播放音频。

关于 PWM动力老男孩在“Arduino系列教程之 – PWM的秘密(上)”【参考1】有介绍,对于我们来说,能用到的就是下面这一段:

PWM是用占空比不同的方波,来模拟“模拟输出”的一种方式。靠,这个太拗口了,简而言之就是电脑只会输出0和1,那么想输出0.5怎么办呢?于是输出01010101….,平均之后的效果就是0.5了。早这么说就了然了嘛。

比如,当前最高电压是5V,如果输出50%的PWM信号,可以当作 2.5V 的信号输出。对于 ESP32来说,有对 PWM 的[......]

阅读全文

Magnetic Core Memory

在上古的电脑时代,计算机使用 Magnetic Core Memory 来作为 RAM 存储设备。

中文名称是“磁芯存储器”。简单的说,这种磁芯有着不同的磁化方向。用这种方式可以记录0 和 1 两种状态。当下方的导线通过电流时,不同磁化方向会对电流有着不同的影响,这样就能通过经过的电流大小得出当前存储的装态。

这种装置可以看作时现代 DRAM 的雏形。有兴趣的朋友还可以阅读下面的文章:

1.https://baike.baidu.com/item/%E7%A3%81%E8%8A%AF%E5%AD%98%E5%82%A8%E5%99%A8/10189808?fr=aladd[......]

阅读全文

ESP32 作为蓝牙音源

前面介绍过 ESP32 作为蓝牙音频接收端(蓝牙音箱),这里介绍它作为蓝牙音频的播放端。

首先需要确定蓝牙接收器的名称,用笔记本电脑连接后,可以再设备管理器中看到,这里我使用的是一款蓝牙耳机,名称是“JABRA TALK”:

接下来需要安装 ESP32-A2DP-master 这个库。下面的代码是从这个库的Example 中修改而来,代码如下:

特别注意,因为代码有音频数据需要特别选择 Huge APP 模式:

测试使用的板子是 ESP-WROOM-32,特点是价格偏移兼容性还不错(同样的我试验了 TinkerNode,播放时有卡顿,似乎后台有人一直占用 S[......]

阅读全文

Step to UEFI (230)OVMF 一个FV 的打包过程分析

前面介绍了如何EDK2在编译的最后过程中使用了 GenFds 进行打包。分析的目标是 QEMU 的 BIOS 文件 OVMF.FD,使用 UEFITool NE 打开之后,可以看到有三个 FV ,我们以中间的为例,分析它的生成方法。整体分析过程比较枯燥,对于大多数人来说了解大致的步骤就可以了。

首先,在 FDF 文件中,给出了这个 FV 的GUID 可以看到:

上面的FV 是由两个 Section 构成的,一个是 PEIFV,另一个是 DXEFV:

1.下面是对于 PEIFV 的定义:

2.下面是 DXEFV 的定义

[FV.DXEFV]

[......]

阅读全文

Step to UEFI (229)继续研究修改QEMU 显示的版本号

前面提到过 OVMF 的 Setup 首页版本号显示的代码【参考1】,在 \MdeModulePkg\Application\UiApp\FrontPage.c

就是说出了从 SMBIOS 之外,还可以在 PCD 中直接给定。实验,在\OvmfPkg\OvmfPkgX64.dsc 文件中加入下面的代码

编译之后,运行结果如下,可以看到新增加了  “Galileo 1.0.4”字样。

但是,非常奇怪的是按照之前的方法,无法在 FFS 文件中找到对应的字符串。为了进一步研究,打开生成 COD 的功能。在 \MdeModulePkg\Application\U[......]

阅读全文