UEFI 編程實踐

  • 出版商: 機械工業
  • 出版日期: 2021-10-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • 頁數: 377
  • 裝訂: 平裝
  • ISBN: 7111688856
  • ISBN-13: 9787111688853
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

相關主題

商品描述

《UEFI編程實踐》系統地介紹了X86、龍芯、飛騰架構下的UEFI應用和驅動開發,系統調試專家、《軟件調試》作者張銀奎,以及UEFI專家、《UEFI原理與編程》作者戴正華聯袂推薦。

《UEFI編程實踐》以項目開發為導向,採取“近實戰,多實例”的方式,細緻深入地介紹了UEFI應用和驅動開發相關的知識。

第1~3章,介紹了UEFI系統的組成、啟動過程,在各種操作系統中搭建和調試開發環境的方法,以及UEFI應用和驅動開發的基本方法。

第4~10章以實際的開發實踐為索引,介紹了圖形圖像開發、漢字顯示、GUI構建、訪問PGI/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