Step to UEFI Shell (5)----获得Shell下内存分配状况

在Shell下面可以使用 memmap 命令查看到当前的内存状况:

step51

UEFI下面没有了E820 Table。取而代之的是GetMemoryMap()。UEFI spec Version 2.4 中 P143有如下的描述,实际上是一个长得和E820很像的东西。

step52

在网上可以搜索到一个示例[参考1],原文是用Toolkit 写成的,经过一些改造成为可以直接在EDK2下面的编译的代码。

GetMap.c:

#include <Uefi.h>
#include <Library/PcdLib.h>
#include <Library/[......]

阅读全文

Step to UEFI Shell (3) ----获得命令行参数的方法

这里介绍如何获得Shell下的命令行参数。关键代码很简单,如下:

EFI_STATUS
EFIAPI
ShellAppMain (
	IN	UINTN 	Argc,
	IN 	CHAR16	**Argv
)
{
UINTN 	i;

	Print (L"Total %d args\n",Argc);
	for (i=0;i<Argc;i++)
 	{
	  Print (L"Arg[%d]= %s \n",i,*(Argv+i));
	}
	return EFI_SUCCESS;
}

 

uefistep3

完整的代码 HelloWorld2[......]

阅读全文

获得当前硬盘上全部盘符

这一系列文章是根据cutebunny 的BLOG “windows的磁盘操作” 写成的,主要是部分修改原作中的代码,使之兼容Unicode和Windows 7 64bit. 原文可以在下面的网址找到

http://cutebunny.blog.51cto.com 。 本文是参考 “windows的磁盘操作之五——获取物理磁盘上的所有逻辑分区号”写成。

程序实现了获得当前硬盘上全部盘符的功能(分区可能没有分配盘符,比如:win7一般都会隐藏起来最前面的分区)。

// emuPart.cpp : Defines the entry point for the console ap[......]

阅读全文

使用 Arduino 打造一个硬件的Watchdog

我的台式机使用梅捷 SY-D2700-U3M 的主板,固化了Intel D2700 Atom CPU。具有零噪音(无风扇),节能环保,扩展丰富等等特点。唯一的问题是:经常硬盘丢失。具体是在使用中忽然BSOD,然后自动重启之后在Setup中无法找到硬盘,重启无效,必须关机一次再开机。从我的经验来看这绝非BIOS问题,并且实验确定不是硬盘问题。有人看守的情况下遇到这样的最多只是郁闷一些,但是作为下载机的时候,上述的问题就变得令人难以忍受。于是,考虑做一个硬件的 WatchDog,当出现问题的时候自动完成关闭开关,再次重启的动作。

BOM 如下:

1. Arduino UNO
2[......]

阅读全文

用 Arduino 打造PPT遥控器

前文提到,用Arduino模拟了USB键盘。做了一个自动锁屏幕装置外,又思考了一下用途还可以做个PPT的遥控器。为了实现遥控功能,需要搭配如下的元件。发射器和接收器是配对的。发射器上面有4个按钮,对应的接收器有D0-D3四个输出Pin.这个东西的名称叫做“2262/2272四路无线遥控套件M4非锁接收板 配四键无线遥控器”,价格不超过15元……

a

首先实验这个元件,直插面包板上,5V电是从USB口上取出来的。

b

用万用表验证,当按下A按钮时,D0会输出高电平。非锁的意思就是按一下就是一下(与之对应的是锁存,按一下后面会keep一段时间)。Enough[......]

阅读全文

PuttyTel的辅助工具升级到 V2.1

最近升级了一下之前编写的一款方便串口调试的小工具 https://www.lab-z.com/puttytel%E7%9A%84%E8%BE%85%E5%8A%A9%E5%B7%A5%E5%85%B7/

V2.0 可以自己设置波特率,也可以兼容更多的能接受命令行参数的串口软件。

V2.1 上一个版本会确认当前的命令行参数,对于普通用户来说是多余的。删掉这个重新编译。另外,调整代码将 JediAPILib.inc 放在源程序的目录下。

还有就是多显示一位版本号,之前只能显示大版本,比如:2 修改之后可以显示 2.1 这样的版本号。

screen[......]

阅读全文

用 Arduino 打造一个自动锁屏装置

上大学的时候,当团支书,负责同学交入Party申请书之类的事情。想入Party有一关是“群众评议”,就是看看是否有反对的意见。当时我和班级上的同学说“一个好人,进入Party是追求进步,是好事;一个坏人,进入Party会让群众队伍更纯洁,因此也是好事。大家都不要反对哈”。所以我们班级在这一关从来没有过什么问题。后来有一次,我去帮同学交入Party申请书,顺便讨价还价一下(我记得有规定是交了之后必须间隔一段才能进入正式的城西,为此我会和辅导员商量这个申请书的时间多多提前一些)。辅导员不在,我就稍等了一下。期间无聊,顺便翻翻其他班级的评议,结果让我大吃一惊,真有班级同学特别反对某个人的,罗列了很多[......]

阅读全文

修理电饭锅的故障

我的松下电饭锅经过四年的使用出现了一个问题:每次做饭的时候伴随着蒸汽会从排气孔向外喷水,一方面这让会让电饭煲每次都脏兮兮的,另一方面做出来的米饭下面有焦糊的情况。

网上搜索了一下,有人遇到同样的现象,解释是:在这种智能电饭煲的锅盖上,有着负责感应水汽的传感器(打开之后是有三组线,一个地,一个应该是温度传感器,还有一个不认识的线)。当出现带着水的蒸汽达到锅盖的时候,传感器会通知处理器,这时候处理器会让电饭锅加热部分断电(继电器),这也就是为什么我们在正常使用的情况下经常听到的“啪,啪”的声音。停止加热后,水汽不会溢出,然后会再次加热,这个过程反复进行,直到电饭锅中的水已经被米饭之类的完全吸[......]

阅读全文