string

string
posts - 27, comments - 177, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

《UEFI原理与编程》勘误

Posted on 2015-02-08 07:45 djx_zh 阅读(2490) 评论(16)  编辑 收藏 引用
对《UEFI原理与编程》一书有疑问,或在学习UEFI的过程中有疑问,请到www.biosuefi.com#/uefi提出您的问题



第7页 (2)SEC阶段执行流程

原文 :2)从实模式转换到32位平坦模式(包含模式)
修订 :2)从实模式转换到保护模式、32位平坦内存模型

 

第15页 2.1.1安装所需开发工具
原文 3)安装IASL编译器(https://www.acpica.org/downloads/binary_tools)
4)IASL用于编译.asl文件。.asl是高级配置与电源接口(Advanced Configuration and Power Interface)源文件。
修订 3)安装IASL编译器(https://www.acpica.org/downloads/binary_tools)
    IASL用于编译.asl文件。.asl是高级配置与电源接口(Advanced Configuration and Power Interface)源文件。
4)安装NASM编译器(www.nasm.us)


第15页,2.1.2 配置EDK2 开发环境

原文 :C:\> EDK2Edksetup.bat
修订C:\EDK2> Edksetup.bat

 

第35页 5.[Protocol]块 (1)语法
原文[LibraryClasses]
修订[Protocols]

 

第35页 5.[Protocol]块 (2)示例
原文 :工程文件的[LibraryClasses]
[LibraryClasses]
修订 :工程文件的[Protocols]
[Protocols]

 

第89页 [示例 5-5] 分配指定地址处的3个页面
原文 :Status = gBS->(AllocateAddress, EfiBootServicesData, 3, &pages);
修订 :Status = gBS->AllocatePages(AllocateAddress, EfiBootServicesData, 3, &pages);

 

第115页 6.3.1提升和恢复任务优先级
原文 :RaiseTPL和RestoreTPL必须成对出现,执行了RaiseTPL后,必须尽快调用RaiseTPL将任务优先级恢复到原来的值
修订 :RaiseTPL和RestoreTPL必须成对出现,执行了RaiseTPL后,必须尽快调用ResoreTPL将任务优先级恢复到原来的值

 

第129页 7.1GPT硬盘
原文 :20世纪90年代末,英特尔(Inter)公司开发了
修订 :20世纪90年代末,英特尔(Intel)公司开发了

 

第221页,6)执行如下命令播放视频
原文fs0:> testc.efi piano 2.wav
修订fs0:> testc.efi piano.wav

  

第278页
原文 :Print(L"字体加载成功");
修订 :Print(L"字体卸载成功");

 

第278页
原文 :Print(L"Failed to load font: %r\n", Status);//字体注册失败
修订 :Print(L"Failed to unload font: %r\n", Status);//字体卸载失败

 

-----------------------------------------------------------------------------------

感谢

感谢robin.xu

感谢kurtqiao

感谢Max

Feedback

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-03-16 21:30 by kurtqiao
Page 278

//卸载字体
Status = UnLoadFont();
if(EFI_SUCESS(Status)
Print(L"字体加载成功");
else
Print(L"Failed to load font: %r\n", Status);//字体注册失败
}

这边貌似是在卸载字体...

# re: 《UEFI原理与编程》勘误[未登录]  回复  更多评论   

2015-03-17 23:27 by djx_zh
@kurtqiao
多谢更正。^_^

# re: 《UEFI原理与编程》勘误[未登录]  回复  更多评论   

2015-03-23 11:43 by Max
Page 35

5. [Protocols]块
讲的是Protocol,但是语法说明和示例都是[LibraryClasses]

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-03-27 11:15 by kurtqiao
page 207
播放音频的函数原型
typedef EFI_STATUS(EFIAPI* EFI_AC97_VOLUME)

名字跟下面调节音量的一样了

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-03-29 11:31 by kurtqiao
page 89
”[示例 5-5] 分配指定地址处的3个页面“ 代码

Status = gBS->(AllocateAddress, EfiBootServicesData, 3, &pages);
应为
Status = gBS->AllocatePages(AllocateAddress, EfiBootServicesData, 3, &pages);

page 115

RaiseTPL和RestoreTPL必须成对出现,执行了RaiseTPL后,必须尽快调用RaiseTPL将任务优先级恢复到原来的值

应为 必须尽快调用 RestoreTPL将任务优先级恢复...

page 120 第7章 硬盘和文件系统

20世纪90年代末,英特尔(Inter)公司开发了....

应为 英特尔(Intel)公司...

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-07-15 13:21 by Chanson
第6页图1-2中的“EFI驱动派遗”应该是“EFI驱动派遣”吧

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-07-16 02:23 by djxzh
@Chanson
非常感谢

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-08-14 14:34 by winux
我下载的UDK2014里面,怎么没有UnixPkg,以及UnixPkg.dsc,导致在LINUX下没办法编译出来,是什么原因呢?

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-08-16 09:42 by djx_zh
@winux
UnixPkg已经被EmulatorPkg取代了

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-09-15 10:08 by bearabby
我下载的最新EDKII,Linux平台下编译EmulatorPkg没有在Build/Emulator/DEBUG_GCC49/IA32/下生成SecMain,build过程中没有看到报错啊,现在没有SecMain模拟器run不起来

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-09-16 09:40 by djx_zh
@bearabby

查看原帖 Linux环境下如何编译、运行模拟器
1. edksetup.sh
2. EmulatorPkg/build.sh -a IA32
3. EmulatorPkg/build.sh -a IA32 run
第二步执行完毕后,会在Build/EmultatorPkg/Debug_GCC44/IA32/目录下生成Host文件。
第三步相当于cd Build/EmultatorPkg/Debug_GCC44/IA32/;./Host

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-09-19 17:32 by 刘栋
第42页
“使用gBS、gST、gImageHandle前需加入#include<include/UefiBootServicesTableLib.h>”
这句错误,应为#include <Library/UefiBootServicesTableLib.h>

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-09-21 10:12 by djx_zh
@刘栋
非常感谢。仲秋快乐。

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-12-21 20:58 by 刘栋
Page 370
示例 15-4
inf的内容里,version_string 这一行有误
1,掉了“string”
2,后面的版本号应为 1.0

# re: 《UEFI原理与编程》勘误[未登录]  回复  更多评论   

2015-12-22 10:27 by djx_zh
非常感谢。
祝新年快乐

# re: 《UEFI原理与编程》勘误  回复  更多评论   

2015-12-22 13:19 by 刘栋
Page 376
代码示例中
Status = InitStdLib();这一句应改为如下
Status = InitStdLib(0,NULL);
否则编译会报错。

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理