书籍详情

UEFI编程实践

UEFI编程实践

作者:罗冰 著

出版社:机械工业出版社

出版时间:2021-09-01

ISBN:9787111688853

定价:¥119.00

购买这本书可以去
内容简介
  本书系统地介绍了X86、龙芯、飞腾架构下的UEFI应用和驱动开发,系统调试专家、《软件调试》作者张银奎,以及UEFI专家、《UEFI原理与编程》作者戴正华联袂推荐。本书以项目开发为导向,采取“近实战,多实例”的方式,细致深入地介绍了UEFI应用和驱动开发相关的知识。 第1~3章,介绍了UEFI系统的组成、启动过程,在各种操作系统中搭建和调试开发环境的方法,以及UEFI应用和驱动开发的基本方法。第4~10章以实际的开发实践为索引,介绍了图形图像开发、汉字显示、GUI构建、访问PCI/PCIE设备、访问SMBus设备、访问串口设备、实现USB通信和网络通信等内容。这部分以贴近实际开发的方式来构建实例,并深入剖析相关硬件协议及其在UEFI上的实现。第11章和第12章,讲解了龙芯和飞腾架构,以及如何在这两类国产处理器上进行UEFI软件开发。
作者简介
  罗 冰 物理隔离安全领域专家,主导开发过网络隔离卡、双网隔离机、国产隔离系统、单向光传输系统等各类安全产品,拥有十几项发明和实用新型专利。致力于UEFI技术的研究、实践,以及相关产品的开发,在CSDN和知乎上设有“UEFI开发探索”专栏。译著有《现代X86汇编语言程序设计》《21世纪机器人》,目前就职于国内某网络安全公司,担任总工程师。
目录
●第1章 UEFI的世界 1
1.1 Legacy BIOS1
1.1.1 Legacy BIOS的启动过程2
1.1.2 Legacy BIOS的不足之处4
1.2 UEFI BIOS6
1.2.1 UEFI标准概述6
1.2.2 UEFI BIOS的优点8
1.2.3 UEFI BIOS的启动过程9
1.2.4 国产计算机与UEFI13
1.3 本章小结15

●第2章 UEFI开发和调试环境搭建16
2.1 搭建Windows下的UEFI开发环境17
2.1.1 安装开发工具17
2.1.2 配置开发环境18
2.1.3 编译UEFI模拟器和UEFI程序20
2.1.4 使用模拟器运行UEFI程序22
2.2 Windows下调试UEFI程序24
2.2.1 使用Visual Studio调试UEFI程序24
2.2.2 使用WINDBG调试UEFI程序27
2.3 搭建Linux下的UEFI开发环境30
2.3.1 安装开发工具31
2.3.2 配置开发环境32
2.3.3 编译UEFI模拟器和UEFI程序32
2.3.4 使用模拟器运行UEFI程序33
2.4 Linux下调试UEFI程序34
2.4.1 使用GDB调试UEFI程序34
2.4.2 使用Intel UDK Debugger Tool和GDB调试UEFI程序37
2.5 制作UEFI启动盘40
2.6 本章小结41

●第3章 构建UEFI应用42
3.1 模块和包概述42
3.2 搭建UEFI工程模块44
3.2.1 DSC文件44
3.2.2 INF文件50
3.2.3 3种入口函数的UEFI应用55
3.2.4 库模块的编写61
3.2.5 其他工程文件63
3.3 搭建UEFI包72
3.3.1 包的DSC和DEC文件72
3.3.2 添加并编译模块73
3.4 用C++编写UEFI应用74
3.4.1 支持基础功能75
3.4.2 支持全局类77
3.5 使用UEFI Protocol81
3.5.1 Protocol概述81
3.5.2 支持使用Protocol的函数 83
3.5.3 使用Protocol示例91
3.6 本章小结93

●第4章 图形与汉字显示94
4.1 UEFI图形显示95
4.1.1 图形显示的Protocol 95
4.1.2 图形显示基本函数的实现101
4.2 UEFI汉字显示—写像素点的方式107
4.2.1 点阵字的显示与字库提取108
4.2.2 写像素点的汉字显示110
4.3 UEFI汉字显示—HII方式115
4.3.1 HII字体与字库提取116
4.3.2 HII汉字显示119
4.3.3 HII字符串127
4.4 本章小结132

●第5章 图像显示及特效133
5.1 UEFI图像显示—写屏方式134
5.1.1 BMP图像显示 134
5.1.2 PCX图像显示140
5.1.3 JPEG图像显示145
5.2 UEFI图像显示—HII方式150
5.2.1 图像处理Protocol150
5.2.2 HII图像显示153
5.3 图像显示的特效 157
5.3.1 图像块处理基本函数的实现157
5.3.2 颜色变换特效161
5.3.3 镜像显示165
5.3.4 图像块显示与清屏166
5.4 本章小结170

●第6章 GUI开发与移植172
6.1 支持GUI的基础服务 172
6.1.1 UEFI事件处理 173
6.1.2 UEFI键盘处理179
6.1.3 UEFI鼠标处理 185
6.1.4 构建GUI框架186
6.2 开源GUI框架191
6.2.1 GuiLite介绍191
6.2.2 使用GuiLite编程 195
6.3 GUI框架的移植200
6.4 本章小结203

●第7章 UEFI环境下访问外设205
7.1 访问PCI/PCIE设备205
7.1.1 与PCI/PCIE设备通信的机制206
7.1.2 支持访问PCI/PCIE设备的Protocol209
7.1.3 访问PCI/PCIE设备示例213
7.2 访问SMBus设备216
7.2.1 SMBus协议简介216
7.2.2 支持访问SMBus设备的Protocol218
7.2.3 访问SMBus设备示例220
7.3 访问串口设备223
7.3.1 串口协议简介223
7.3.2 支持访问串口设备的Protocol225
7.3.3 访问串口设备示例228
7.4 本章小结230

●第8章 UEFI驱动与Option ROM232
8.1 服务型驱动233
8.1.1 安装与卸载Protocol233
8.1.2 构建服务型驱动236
8.1.3 访问示例Protocol242
8.2 UEFI驱动模型243
8.2.1 EFI Driver Binding Protocol 243
8.2.2 EFI Component Name Protocol247
8.2.3 完成驱动框架及其测试248
8.2.4 构建UEFI驱动及其测试程序251
8.2.5 测试UEFI驱动256
8.3 编写Option ROM258
8.3.1 PCI Option ROM简介258
8.3.2 编写UEFI Option ROM264
8.3.3 编译及测试Option ROM268
8.4 本章小结272

●第9章 UEFI与USB273
9.1 USB规范简介274
9.1.1 USB通信原理276
9.1.2 USB描述符280
9.1.3 USB标准命令285
9.1.4 USB HID设备287
9.2 支持USB访问的Protocol292
9.2.1 EFI_USB2_HC_PROTOCOL292
9.2.2 EFI_USB_IO_PROTOCOL294
9.2.3 列举USB控制器和设备297
9.3 访问USB HID设备299
9.3.1 制作USB HID设备299
9.3.2 在UEFI下访问USB HID设备305
9.4 本章小结307

●第10章 UEFI与网络309
10.1 准备UEFI网络测试环境311
10.1.1 搭建Nt32模拟器的网络环境311
10.1.2 在真实UEFI环境下使用网络313
10.1.3 在虚拟机UEFI环境下使用网络:VirtualBox314
10.1.4 在虚拟机UEFI环境下使用网络:QEMU314
10.1.5 IPv6网络测试环境搭建316
10.2 使用UEFI Protocol开发网络程序317
10.2.1 开发Windows的TCP4服务端程序318
10.2.2 开发UEFI的TCP4客户端程序323
10.3 使用StdLib的Socket接口开发网络程序334
10.3.1 使用Socket编写UEFI TCP4客户端程序334
10.3.2 开发Windows的TCP6服务端程序337
10.3.3 使用Socket编写UEFI TCP6客户端程序340
10.4 本章小结342

●第11章 龙芯平台上开发UEFI程序343
11.1 龙芯平台概述343
11.1.1 龙芯产品介绍344
11.1.2 3A4000的CPU架构简介346
11.2 龙芯汇编语言348
11.2.1 安装Linux Lab349
11.2.2 龙芯汇编语言实验351
11.3 龙芯平台UEFI开发环境354
11.3.1 搭建龙芯平台UEFI开发环境355
11.3.2 编译示例工程356
11.4 本章小结357

●第12章 飞腾平台上开发UEFI程序358
12.1 飞腾平台概述359
12.1.1 飞腾产品介绍359
12.1.2 FT-2000/4的CPU架构简介361
12.2 搭建飞腾平台UEFI开发环境363
12.2.1 准备EDK2环境364
12.2.2 使用Linux系统与gcc-arm365
12.2.3 使用Linux系统与Linaro UEFI工具367
12.3 飞腾平台的UEFI程序测试368
12.3.1 Windows系统下的UEFI测试环境369
12.3.2 Linux系统下的UEFI测试环境372
12.3.3 测试示例工程372
12.4 本章小结374
附录 UEFI Shell内置命令375
猜您喜欢

读书导航