《UEFI编程实践:下一代BIOS技术揭秘与实践》罗冰 | PDF下载|ePub下载
UEFI编程实践:下一代BIOS技术揭秘与实践 版权信息
- 出版社:机械工业出版社
- 出版时间:2021-08-01
- ISBN:9787111688853
- 条形码:9787111688853 ; 978-7-111-68885-3
UEFI编程实践:下一代BIOS技术揭秘与实践 本书特色
适读人群 :固件开发者、操作系统开发者、硬件开发者、其他爱好者(1) 事实BOIS标准UEFI唯二中文图书 (2) 30多个设计精巧实例,可操作性强 (3) 资深专家撰写,十余年经验总结 (4) 软件专家张银奎、UEFI专家戴正华联袂推荐 (5)全书代码可免费获取 本书对UEFI应用和驱动的开发,特别是Option ROM的开发做了细致而深入的讲解。本书主要有3个特色: ●内容全面: 对于各类总线外设,包括USB、网络、PCI/PCIE、串口和SMBus都提供了实际操作案例。 ●偏重实操: 着重介绍了图形开发、对各种格式图像的访问,以及UEFI下GUI系统的构建,这些内容对实际项目开发有非常重要的意义。 ●结合市场: 介绍了龙芯和飞腾处理器的发展情况,以及在各种国产平台下进行UEFI软件开发的方法。
UEFI编程实践:下一代BIOS技术揭秘与实践 内容简介
本书偏重于实战,面向UEFI的爱好者和使用者。全书共12章,大致可以分为三部分。1. 部分为介绍UEFI的基础框架,搭建开发和调试环境,并熟悉代码框架的搭建和编译方法。让读者能把握整体框架,并能为后续的实践做好准备;2. 第2部分详细讲解UEFI如何访问外设、构建GUI、编写Option ROM等,并辅以实际的项目实例,加深对UEFI编程的理解。所提供的项目极具实践价值,基本上可以直接用在实际项目中;3. 第3部分介绍目前国产计算机上UEFI的发展情况,详细讲解如何在国产计算机上进行UEFI项目的开发,包括搭建开发环境、测试方法等。通过阅读本书,读者可以清晰地了解UEFI的编程方法,学习到如何以UEFI的方式去思考计算机的底层架构。书中提供了大量的实例训练,大部分来自作者曾经实战过的商业项目,极具参考价值,能有效帮助读者快速构建自己的UEFI相关产品。
UEFI编程实践:下一代BIOS技术揭秘与实践 目录
●第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
UEFI编程实践:下一代BIOS技术揭秘与实践 作者简介
罗 冰 物理隔离安全领域专家,主导开发过网络隔离卡、双网隔离机、国产隔离系统、单向光传输系统等各类安全产品,拥有十几项发明和实用新型专利。致力于UEFI技术的研究、实践,以及相关产品的开发,在CSDN和知乎上设有“UEFI开发探索”专栏。译著有《现代X86汇编语言程序设计》《21世纪机器人》,目前就职于国内某网络安全公司,担任总工程师。