学习 Verilog 的好去处:HDLBits

带着问题进行学习是掌握一门技术非常有效的方法。

https://hdlbits.01xz.net/ 网站提供了 Verilog 的一些题目,有兴趣的朋友可以尝试进行练习。同时这个网站在提供 Verilog 基础语法教程的同时,还能够在线仿真你的 Verilog 模块,将你的输出与正确的时序比较[......]

阅读全文

Step to UEFI (227)VS2019 EDK202008 下的 Libc 编译

LibC 是 EDK2 的一个库,提供了标准 C 库的支持。这个库在 VS2015 + EDK202008 的组合下工作正常,但是在 VS2019 下就会遇到一些问题,本文将介绍如何解决之。完成的目标是:完整编译 LibC 提供的 AppPkg 。LibC 可以在 https://github.co[......]

阅读全文

C# SerialPort 发送8Bits的问题

最近在使用 SerialPort 类发送串口数据,惊奇的发现PC端程序发送 0xFF 对面(ESP32)只能收到 0x7F。但是用串口工具是可以正常发送的。于是针对这个问题进行研究。Baidu上说是因为奇偶校验导致的,我设置了无校验现象依旧。

查看 SerialPort 类发现它有一个 Enc[......]

阅读全文

Step to UEFI (226)EDK2 生成 ROM 最后的打包动作(上)

编译产生 BIOS ROM的最后一个步骤是将 FV 打包,那么这个操作是在哪里?带着这个问题,以 OVMF 的 PKG 为例进行研究。

我们平时编译使用的是 BaseTools\Bin\Win32下面的 build.exe ,这个文件是使用 Python 转 EXE工具生成的。如果想研究 Bu[......]

阅读全文

推荐一个十六进制编辑器 HXD

之前我一直使用 WinHex作为十六进制编译器,但是WinHex 是收费的,经过研究找到了 HxD 这款软件,它是免费的十六进制编辑软件,主页在 https://mh-nexus.de/en/hxd/  经过一段时间的使用(主要是用于 ROM 文件的分析),感觉挺好用,有需要的朋友可以试试[......]

阅读全文

Step to UEFI (225)CSME版本检查工具

CSME 和BIOS 并没有多少关系,但是因为同属 Firmware,所以出了问题都会首先找BIOS工程师。对于大多数情况下,升级 CSME 都能解决问题。因此,BIOS工程师遇到的问题是:当前 CSME 是什么版本?通常的解决方法是进入BIOS Setup查看,更专业一点是在 Shell 或者Wi[......]

阅读全文

Rowhammer Attacks

最近看资料了解到的一种内存的攻击方式,效果是能够翻转被攻击的内存区域 Bits,如果这个 Bits 正好是用于检查权限之类的,用这种方法就能获得更高的权限。

原理:RAM的制造精度越来越高,部件在物理层面上越来越小。既能在一块芯片上集成更大的内存容量,又能让各个内存单元之间不发生电磁干扰是非常[......]

阅读全文