TA的每日心情 | 开心 5 小时前 |
---|
签到天数: 366 天 [LV.9]以坛为家II
管理员
- 积分
- 12190
|
Java电子书:UEFI原理与编程 PDF 电子书 Java吧 java8.com+ r, l4 z: Y0 n6 F2 d A
$ \8 E/ ~( U! Y6 U
作者:戴正华出版社:机械工业出版社出版时间:2015年01月
! V* y. r* w1 G6 s& X( }
; K9 A8 X" ~) I+ N编号:166-Java吧资源免费-X0001【Java吧 java8.com】
6 u( E: H( \5 e
' i, z0 t4 T# e1 O2 C6 I4 s0 P! W4 s$ {! M: w3 p) y/ [
0 k% N3 e/ [# q) L目录:' G+ W6 z, W, y) f. e
/ o( C& S0 ~" f" D
$ m$ D% H4 F. l7 { V& X
- _' I4 B) s4 w+ L! |前 言" m) D; g( S( s5 e1 _
第1章 UEFI概述 1, r Y) o2 ^! N6 w
1.1 BIOS的前世今生 1
6 z4 m& |+ k9 k+ _' b* @% F1.1.1 BIOS在计算机系统中的作用 1
2 a3 Q8 ]* ~" W5 Z* V: Q/ y1.1.2 BIOS缺点 2/ S8 S3 M* n: r) a' t- t- l& R
1.2 初识UEFI 22 W( ?$ z4 m; V: O+ U+ l( F5 d
1.2.1 UEFI系统组成 3. u) }# m+ a, a! ]# U# r
1.2.2 UEFI的优点 4
2 Y% }% E* G, ?2 g+ h, A1.2.3 UEFI系统的启动过程 5
& m6 Q, b! p5 G5 }. u2 w1.3 本章小结 12* G; w/ u6 x$ @9 d2 Q& n0 ~- F
第2章 UEFI 开发环境搭建 14
( U$ m }3 h8 t% {% s& I/ Q2.1 配置Windows开发环境 142 |' e4 y, q( }$ {$ s' R1 m. ~
2.1.1 安装所需开发工具 15; {( O: I1 f( B4 v4 K6 _
2.1.2 配置EDK2开发环境 15
" N, S$ C' L- v) Z+ J, R1 X6 f+ f2.1.3 编译UEFI模拟器和UEFI工程 17. i6 Z* {- q0 b+ L* I/ ?3 q
2.1.4 运行模拟器 19
5 K Y U1 H' b5 x# X; ]" o7 u7 A2.2 配置Linux 开发环境 21/ G7 N$ T* f9 Z+ [, `5 N l3 c
2.2.1 安装所需开发工具 22. \! n6 H) y+ w' a. \* A& E
2.2.2 配置EDK2开发环境 22
8 D& v3 f) w# G% j/ ^2.2.3 编译UEFI模拟器和UEFI工程 23" ?% D& h [, b" ?3 U. ]
2.2.4 运行模拟器 24, ~8 y3 O* Y5 T! Q( \
2.3 OVMF的制作和使用 25- N" y7 S' s, v1 P/ z
2.4 UEFI的启动 27
9 h5 R1 m6 f6 ~4 S5 x( |5 ?2 ?2.5 本章小结 28
* P/ y2 h, I5 f5 {' G第3章 UEFI工程模块文件 29& y4 t& f* C) U, L
3.1 标准应用程序工程模块 30( w4 x9 o; V; Z& `/ m( W- ~
3.1.1 入口函数 30& M- y+ I* A- _ M# l; S7 Z1 A
3.1.2 工程文件 31
5 U: H4 k2 i" B3 f3.1.3 编译和运行 37
5 w. P) w3 I$ D3.1.4 标准应用程序的加载过程 37& L( h: z' q* A" o! `9 W5 y# N' y
3.2 其他类型工程模块 43
1 H( A) o8 b' ?, ]7 u3 P3.2.1 Shell应用程序工程模块 43
! Q! L; c# l4 }, N5 y3.2.2 使用main函数的应用程序工程模块 46
f4 K& u3 ^) c! |! p4 b( _3.2.3 库模块 47
6 M9 a" \0 L# t8 C) N7 v3.2.4 UEFI驱动模块 49( `3 H' i; [# f& f
3.2.5 模块工程文件小结 500 B# I$ A1 M+ A
3.3 包及.dsc、.dec、.fdf文件 51
* h: }: W2 ^; g- P. g+ E& x8 C3.3.1 .dsc文件 51! b2 F" g$ i- E( x: H' h5 }3 I
3.3.2 .dec文件 566 e8 x1 B4 _+ M3 Z+ Z3 E' U
3.4 调试UEFI 59, N' q% E* [6 R1 U+ `4 K
3.5 本章小结 61: ]. O; O0 z6 p- I g Q
第4章 UEFI中的Protocol 620 n6 X( ?% h% a) A! q: m. }
4.1 Protocol 在UEFI内核中的表示 640 C- e: h5 Y' ~$ ?3 V0 @* E) o4 `
4.2 如何使用Protocol服务 65
; ?4 P# O8 `7 v+ Z8 p6 o) I. J2 H" d4.2.1 OpenProtocol服务 666 G( k7 Z$ N" o- m
4.2.2 HandleProtocol服务 671 R N+ a" d% E' s. W n
4.2.3 LocateProtocol服务 695 L( g/ y7 F3 J3 ]1 o# P
4.2.4 LocateHandleBuffer服务 69
) n4 }: Q# r7 `* l- ^6 G- Q4.2.5 其他一些使用Protocol的服务 71
4 c' N# x0 _/ c3 s) y2 B& D4.2.6 CloseProtocol服务 72
7 ~" o! k [& c3 u4.3 Protocol服务示例 73 f3 t$ L. \ U6 D( ~9 q8 d
4.4 本章小结 75* a( c$ P, K4 |% a+ \0 G7 c
第5章 UEFI的基础服务 767 ]8 s, v" `" l. r
5.1 系统表 76$ a. i8 U7 J9 ]9 d: A' o, V: [
5.1.1 系统表的构成 77+ L# v& K0 [; O) J
5.1.2 使用系统表 79
& Q q c2 y' ?2 L6 b; B5.2 启动服务 82
% c( F, }' [4 X2 P) w7 J5.2.1 启动服务的构成 82$ x' i! I' e1 K
5.2.2 启动服务的生存期 91% C# B6 p) i! w" n. [: V" P/ @
5.3 运行时服务 939 G# f* w1 C- ^
5.4 本章小结 102
: q k: `& L/ V3 \第6章 事件 103
! c+ W0 G* E3 |# L6.1 事件函数 1042 p* Z, \4 g4 p( S$ ]; {
6.1.1 等待事件的服务WaitForEvent 105" y$ T/ [$ V7 v0 b4 G$ X
6.1.2 生成事件的服务CreateEvent 106
/ }" b* d# L; s. B# Y6.1.3 CreateEventEx服务 1102 O3 [* J3 G8 b
6.1.4 事件相关的其他函数 112
) s) q- Y" B3 _) v6.2 定时器事件 113
* W7 X9 E3 |. I t, p2 D$ [6.3 任务优先级 1143 H0 P/ j L. e: n' e% r
6.3.1 提升和恢复任务优先级 115/ ]/ ~4 |# u: ?% V
6.3.2 UEFI中的时钟中断 116
! w9 \4 V) H! w6.3.3 UEFI事件Notif?ication函数的派发 126- S @* P* @4 [: U
6.4 鼠标和键盘事件示例 127
& S3 e8 x* L4 ~, w! j6.5 本章小结 1281 U. V9 @4 a2 T
第7章 硬盘和文件系统 129
0 [! @0 X5 `8 i6 }; s4 ]7.1 GPT硬盘 129+ d0 ?9 S. b# }' ]! v
7.1.1 基于MBR分区的传统硬盘 129
% }4 w( | u& Q7.1.2 GPT硬盘详解 130: T( U4 R5 U2 l j6 i( ]2 o
7.2 设备路径 134
, B- ^# f& n% K7.3 硬盘相关的Protocol 139. s' n$ w: O' K6 O& O( @1 B }; N
7.3.1 BlockIo解析 140
8 ^3 }' g% {& e1 `1 E& w7.3.2 BlockIo2解析 142
: U7 C- C) o, R6 D0 ]: t7.3.3 DiskIo解析 146
4 t* @7 `8 Y3 {, j! P7.3.4 DiskIo2解析 147
& G+ ~' N+ T# a7.3.5 PassThrough解析 150
3 z3 n: S) I8 k: q* I3 a7.4 文件系统 152
% b# C% E) r2 b5 F$ }7.5 文件操作 153
9 x. d/ F6 j% r4 d7.5.1 打开文件 1548 S/ K( A7 L# Y* _/ T8 z8 ~% l8 R& s
7.5.2 读文件 156
' v' ^- P3 ~0 a' c- G' k7.5.3 写文件 159
7 ?& A0 N7 n! Z3 W) N0 K7.5.4 关闭文件(句柄) 160+ D6 Z* W9 H' a. ^
7.5.5 其他文件操作 160
% c5 b2 x [9 V7 G5 U7.5.6 异步文件操作 162- X. H/ _5 A4 Z8 x3 Z" w
7.5.7 EFI_SHELL_PROTOCOL中的文件操作 1669 ~# j! R8 G1 N% V8 h! i
7.6 本章小结 1706 S0 ]0 }; s' i0 i( W' X) u4 X
第8章 开发UEFI服务 171
9 I" |. A2 b( M; t7 j8.1 Protocol服务接口设计 172
" q, `' Y5 @5 _6 Z$ z8.2 Protocol服务的实现 174/ O& U# \5 \6 _! x7 f- j
8.3 服务型驱动的框架 178. A& X- b1 @( P
8.4 ffmpeg的移植与编译 1792 [! |' K" J2 L& Y
8.4.1 libavcodec的建立和移植 181* a# x7 |6 G, ?1 f( N% w+ m/ ?& E
8.4.2 其他库的建立与移植 182
$ T7 B8 ]6 U, v$ G& j0 w1 {8.4.3 在驱动型服务中使用StdLib 1861 ?% T X( N/ } W
8.5 使用Protocol服务 188
8 Q7 x) |, j+ Y6 z+ _/ ]* |% Z8.6 本章小结 190
; ~+ ^9 k3 n( p- I8 \# c第9章 开发UEFI驱动 191
, S4 A. @) F9 ~& I* G J9.1 UEFI驱动模型 192
' P; q3 ^" ?% t5 }3 p' K9.1.1 EFI Driver Binding Protocol的构成 192" K0 e8 H5 G: e. n
9.1.2 EFI Component Name Protocol的作用和构成 196
4 z: V9 \& e/ W0 R4 v0 [9.2 编写设备驱动的步骤 197: ?8 y! l' g; n1 C, G2 L w, B4 w- l
9.3 PCI设备驱动基础 199
; k ]4 q) Q5 ^3 g; A, T8 P2 v9.4 AC97控制器芯片的控制接口 202. y: P, c6 r3 p% ^# P4 Y+ @" i
9.5 AC97驱动 2068 V( n5 n; u1 M( `% [' V) K
9.5.1 AC97驱动的驱动服务EFI_AUDIO_PROTOCOL 206
+ E$ f8 e9 P$ y% p8 x% D9.5.2 AC97驱动的框架部分 213
6 E: a; L3 z) K* L" N2 e9.5.3 AC97驱动实验 220* z c8 t* U; R: J- \' U
9.6 本章小结 2214 l9 o. a' \( X. B
第10章 用C++开发UEFI应用 222
! o5 Q; Y S1 e5 B10.1 从编译器角度看C与C++的差异 222
0 J7 T* Z3 ?9 Q- H10.2 在EDK2中支持C++ 2241 w8 r5 m5 _! ~7 N$ C1 }/ z) G9 b
10.2.1 使EDK2支持C++基本特性 2241 q5 v. y* {; M( F' c+ Y
10.2.2 在Windows系统下的程序启动过程 226: |3 V* U9 M0 ?& k: H7 o( _ ^
10.2.3 在Windows系统下支持全局构造和析构 229
2 Z& z* l% w1 n2 C7 F# O! `10.2.4 在Linux系统下的程序启动过程 231 ^4 [* |$ o& ?/ k
10.2.5 在Linux系统下支持全局构造和析构 240+ b" T% j! m$ w0 b% L% O
10.2.6 支持new和delete 242. L m* {" ~4 ]& Q5 H
10.2.7 支持STL 2436 d5 o, p& H) `4 O5 n9 y# J
10.3 GcppPkg概览 243
; t0 o I; ^! N/ O10.4 测试GcppPkg 2467 d8 o: K N* m' F" I
10.5 本章小结 248
1 b& z# u. F0 T- g1 w' V第11章 GUI基础 2491 e6 E L3 z; f+ s6 y7 Q
11.1 字符串 249) _* t2 B* I8 C2 i: f
11.1.1 字符串函数 2490 Z p g& K% L4 H4 i
11.1.2 字符串资源 2511 E% f* h, O' J0 V4 X
11.1.3 管理字符串资源 255# D6 Q t5 Q& x, \* _( m% X% j
11.2 管理语言 260( K4 c5 B ~# H
11.3 包列表 262
* }" E5 C- l+ k& q: j11.4 图形界面显示 263$ k7 q% Z3 K7 L T/ ?2 Z
11.4.1 显示模式 264
+ n" U0 H7 g6 a; B11.4.2 Block Transfer(Blt)传输图像 267
- R+ j9 Z* n {$ |. v" K11.4.3 在图形界面下显示字符串 269
+ ?$ w; L1 t: L1 W. C% e* q+ C11.5 用SimpleFont显示中文 272
/ G" d, I1 W# j% f11.5.1 SimpleFont 格式 2736 f; w% c2 W( W' p3 d ]% m
11.5.2 如何生成字体文件 275
6 N3 } ?- P' D) L$ j" T2 R11.5.3 如何注册字体文件 276
) [6 F( d9 O2 \' G9 ]* h. _' F11.6 开发SimpleFont字库程序 277
6 U: J/ L* ], [- A11.7 字体Font 278: T/ |6 M) l( S% `% W* E0 V' `
11.7.1 Font的格式 279
+ T. A! W, |% w5 t: q. O. g& Z0 C11.7.2 字体包的格式 2797 q8 V1 [; j/ W! {( j
11.7.3 为什么Font性能高于SimpleFont 281' u3 }+ [+ {6 ~1 _% ^6 c* k! n
11.8 本章小结 284
5 a' R: W5 u8 ?) ], d1 v' w# s第12章 GUI应用程序 285
- G8 ?! y2 ~3 A* [9 q4 d, V4 j12.1 UEFI事件处理 285
: y8 z: u. x2 U$ O2 `12.1.1 键盘事件 2850 V4 G" q8 l$ R, i8 E$ P" u
12.1.2 鼠标事件 292) r9 k) y1 g' @+ X: t5 ]$ H
12.1.3 定时器事件 293
3 ?: W& e: F0 ]- s% K12.1.4 UI事件服务类 294
5 I9 A- s" V$ v' o6 o12.2 事件处理框架 2978 Z/ _# P# i) J2 h4 N7 E
12.3 鼠标与控件的绘制 302
6 L% D, Z6 c0 e3 d# z$ N12.3.1 鼠标的绘制 303
/ @# C& y* `2 l! m12.3.2 控件的绘制 3059 x& `% G1 @; S1 }- }
12.4 控件系统包GUIPkg 306
2 y: a0 R. `" K. L+ G- n12.5 简单视频播放器的实现 309
7 Q( y- ^, `8 I) z12.6 本章小结 3159 E8 @) Q4 T' G7 ] @$ B
第13章 深入了解多任务 317
/ J; ~ m, [ d! ]# |13.1 多处理器服务 317. o3 t: K8 Y8 P( n. Q8 g
13.1.1 EFI_MP_SERVICES_PROTOCOL功能及用法 317
" t6 K. S- Z7 z0 a13.1.2 启动AP的过程 3245 k2 X7 _5 O7 @- B
13.2 内联汇编基础和寄存器上下文的保存与恢复 3333 z2 `0 m' f/ K
13.2.1 内联汇编基础 333
1 ^" ~" u9 F$ e6 `6 _13.2.2 寄存器上下文的保存与恢复 335
# F) S4 ?% M5 z0 h/ \$ [( c4 e13.3 多线程 336
; _- v" Q4 y& U m' L8 S4 x7 n13.3.1 生成线程 337; ] O) s/ j- ^
13.3.2 调度线程 340
' G' d/ b+ V; g4 s+ s' ?& w" x13.3.3 等待线程结束 341
$ e s8 T6 Z! ]6 G5 M9 R4 x% [7 f13.3.4 SimpleThread服务 3417 ~, j* ?- K' W ?
13.4 本章小结 345 java8.com
0 L6 \0 j4 U; ?0 m$ w& N8 v/ o, Y" a8 h! ~第14章 网络应用开发 3463 S8 s! G; E; n3 k. D8 b. p9 c
14.1 在UEFI中使用网络 348% q! h# ]- [' R* C: t, ~7 x- W
14.2 使用EFI_TCP4_PROTOCOL 350# X, l% ]: k$ Y$ t
14.2.1 生成Socket对象 3525 z; |) @$ I8 t2 u! S. ?+ |
14.2.2 连接 356
& T# m+ K0 X1 H1 S6 R14.2.3 传输数据 358
6 c0 d! x# q, q0 R14.2.4 关闭Socket 361
* Q1 d8 e4 b8 n; x9 B0 E5 C) B/ l14.2.5 测试Socket 362
' L9 l( b/ T! B5 s; I14.3 本章小结 3638 A Q% C( d, a- Q' X/ n, S
第15章 使用C标准库 364
7 {# Q+ M% [) P15.1 为什么使用C标准库函数 364) y) u) J+ z4 l
15.2 实现简单的Std函数 3655 m2 g: I% @' P. U0 a
15.2.1 简单标准库函数包sstdPkg 366: B+ z- U8 V! g {6 B$ }$ `( H
15.2.2 使用sstdPkg 368
. n* f1 i4 h& r4 C15.3 使用EDK2的StdLib 369
2 Q7 ~& m1 v Q& c15.3.1 main函数工程 369
& W. B; l# t/ v% ?4 T$ W15.3.2 非main函数工程 374
6 l1 X# e9 T5 d15.4 本章小结 376
5 h" v) [8 u9 C# T2 Q" w4 q/ s第16章 Shell及常用Shell命令 3778 ^, b2 U# M, k5 t- d
16.1 Shell的编译与执行 3778 H+ S* w$ f6 c3 s+ Y; i3 I
16.2 Shell服务 379- t- }: Q l# L8 m
16.3 Shell脚本 385
+ U/ t+ M7 O8 G- k4 t16.3.1 Shell脚本语法简介 385
3 B" k/ V7 }) ]) R( c6 A* d& q16.3.2 自动运行指定应用程序 3880 ~2 j( y- p" K: B. X1 V
16.4 Shell内置命令 388
, w: C' L6 q$ X, Z6 U5 @16.4.1 调试设备的相关命令 388
0 V! |9 e: s- P; f; B/ K, l16.4.2 驱动相关命令 390
5 D2 ~ ]; ~6 ]" a3 w6 J16.4.3 网络相关命令 3920 P% |& c0 T O7 f2 ?. _ J" b
16.5 本章小结 394
7 Q/ b2 B, t$ P# V1 |附录A UEFI常用术语及简略语 395
. O% s; @. M. | {. n8 \5 l- N$ U附录B RFC 4646常用语言列表 397# e' ] h- l# N1 X# u3 r
附录C 状态值 398
3 p4 _1 J; t& U2 M* F附录D 参考资料 4007 p: p0 h, Q9 T: t: D
# A$ b; o! _# D) p5 k5 D0 {3 X3 o" ~7 _) n# ^. V
百度云盘下载地址(完全免费-绝无套路):
$ Q8 J8 u1 t" G; M; P1 y9 u1 C |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|