TA的每日心情 | 开心 13 小时前 |
---|
签到天数: 55 天 [LV.5]常住居民I
管理员
- 积分
- 3249
|
Java电子书:UEFI原理与编程 PDF 电子书 Java吧 java8.com
% y2 j) K: G5 g- p, o$ H' B; R
L1 z# W5 f2 v作者:戴正华出版社:机械工业出版社出版时间:2015年01月
" r' ]4 s: H, m) s0 p$ b, h- p3 K! Q3 `+ X
编号:166-Java吧资源免费-X0001【Java吧 java8.com】/ S6 Z+ ^: d6 V- g0 {& B+ }
3 ]( @$ ]; [& K; s* I" W& @4 h. v
) h0 q* m! N0 G, ]2 b% [% C
( d/ ~' Y$ I( b: C+ }3 ?1 i4 a1 W1 _目录:8 X4 S$ R8 o7 v
9 @, v4 _; O* f1 i3 j9 C3 g+ G. q4 [/ D& ]4 u6 C6 u# ]1 j
* X, S5 o5 y2 Z( M& R5 x1 o前 言
. C& ?" B! o# G4 H, i9 h% g第1章 UEFI概述 1
4 A* A" O( R p) m1.1 BIOS的前世今生 1
g3 s6 Q# F1 r% ]$ [" \- t w1.1.1 BIOS在计算机系统中的作用 1' ]( M$ u( Z2 ^0 H. m; C3 K
1.1.2 BIOS缺点 2
" ?' A) \: e( s! O+ v; o& ?9 K1.2 初识UEFI 2
/ f* S4 N8 p ^" }. a1 p1.2.1 UEFI系统组成 3* p# i8 v# w, T' R" N
1.2.2 UEFI的优点 42 k9 Y3 z% B7 Q! W0 H8 p
1.2.3 UEFI系统的启动过程 5+ k* \. z! t4 k% q. E, C
1.3 本章小结 12/ G: j! a- r- a9 w
第2章 UEFI 开发环境搭建 14" H) s# O" b: Y1 q" M; D; M
2.1 配置Windows开发环境 14
8 P9 R- k0 E7 c3 |# J' O2 d' k3 g' X5 w2.1.1 安装所需开发工具 15
8 h9 b( F% W7 k# K2.1.2 配置EDK2开发环境 15; A! g" C) E( l1 i3 ]
2.1.3 编译UEFI模拟器和UEFI工程 17
! a/ U1 }/ d! j. L8 }$ I) b0 m2.1.4 运行模拟器 19
& j# I+ H' f% S* c2.2 配置Linux 开发环境 21 C2 F& U- f. a3 N
2.2.1 安装所需开发工具 225 |9 i7 l9 B1 E- _( Y
2.2.2 配置EDK2开发环境 22' ~' e7 q0 `- n- V
2.2.3 编译UEFI模拟器和UEFI工程 23& V ^% y4 J* T& W1 }
2.2.4 运行模拟器 24
% Y' |; }1 T' g" v# ~2.3 OVMF的制作和使用 25
8 B. h* X# [, p) E: Q2.4 UEFI的启动 27
5 @" e7 A# H6 X; V# e( V/ `- Q2.5 本章小结 28. y- L4 k& k" s" `3 K5 t& b1 |2 g
第3章 UEFI工程模块文件 29 I; O0 Y. ~6 r$ e1 I* ]
3.1 标准应用程序工程模块 30) |5 b% L# r/ a0 E
3.1.1 入口函数 30
. b4 ?" i; Y. {3.1.2 工程文件 31: M- w3 O) r, p2 ^9 s/ |! P% w3 f
3.1.3 编译和运行 37
5 C% e# Z7 ^7 [3.1.4 标准应用程序的加载过程 37: N) E' R S+ M2 L
3.2 其他类型工程模块 431 ?% i% u7 D7 @3 G g1 a8 f5 M2 b
3.2.1 Shell应用程序工程模块 43, }! |& g; e; c( f, M
3.2.2 使用main函数的应用程序工程模块 46( b, k! @6 ^5 `! ]% X- v6 U
3.2.3 库模块 47* O# I6 N( N- w/ q+ y
3.2.4 UEFI驱动模块 49
8 X9 U# g& e/ n o2 C3.2.5 模块工程文件小结 50
2 u" K% I8 B$ f* ]- s3.3 包及.dsc、.dec、.fdf文件 51
4 f% y3 f2 D7 ^9 q4 Y7 }3.3.1 .dsc文件 51$ t; U$ h+ g l; n2 n
3.3.2 .dec文件 56% b. r3 J: y9 z2 L( j+ T3 U
3.4 调试UEFI 59
. r7 o# M, B; Q/ E/ J! n3.5 本章小结 61
5 A" r6 b/ |& r4 ?! j第4章 UEFI中的Protocol 62
5 g$ W$ Q+ p. C4.1 Protocol 在UEFI内核中的表示 643 j- Z; W+ T+ P( k: V
4.2 如何使用Protocol服务 65
/ E( g9 C( W5 ^, z; O, M4.2.1 OpenProtocol服务 66
! {9 o' P7 Z/ j1 v4.2.2 HandleProtocol服务 674 L1 y. R2 D: R2 q. l9 y
4.2.3 LocateProtocol服务 69; g* h- i" B! N. u* q' c
4.2.4 LocateHandleBuffer服务 69- P5 s9 X/ I/ ^ m
4.2.5 其他一些使用Protocol的服务 71
/ k5 q8 U( W$ ]) N/ k4.2.6 CloseProtocol服务 72# h: g6 O1 A6 b7 K q7 q: o" t9 C$ R
4.3 Protocol服务示例 73
& \* _6 p* {# a" T1 m. Y! F( h4.4 本章小结 75
E; z9 \: S+ M |第5章 UEFI的基础服务 760 \, A2 x! x# E5 J, X( y
5.1 系统表 76: \8 o2 h# A2 O9 n
5.1.1 系统表的构成 77
# }. q3 {, u/ p8 C0 @6 {7 }; ~5.1.2 使用系统表 79( ^' v) K% G) ?4 p2 u
5.2 启动服务 82
/ j) ?9 P' L- W Q! b5.2.1 启动服务的构成 82
" n: m! d9 `+ P! K' f/ P6 L3 G1 B5.2.2 启动服务的生存期 91
. S- p/ }* s7 L/ t9 |" Y5.3 运行时服务 93
1 S7 Q- ] u' D- x5.4 本章小结 102
) Y7 P& K; C5 L* f: h& Y第6章 事件 103
& q$ ^9 W/ D# K. V4 h5 N& o6.1 事件函数 104
) r2 r p5 g2 I2 B2 ]& r6.1.1 等待事件的服务WaitForEvent 105+ ~5 e2 E6 p8 W2 s4 G6 B8 s
6.1.2 生成事件的服务CreateEvent 1067 W0 {+ h) P2 n& W$ p+ \ J
6.1.3 CreateEventEx服务 110
1 J1 W& L+ e- z0 E" i* m! F6.1.4 事件相关的其他函数 1124 K6 @" L+ x6 o/ D$ u0 ?
6.2 定时器事件 113
+ H0 I1 E4 V5 R) |) P; `6.3 任务优先级 114
U5 r8 N/ m! t1 g. o$ B: I6 `6.3.1 提升和恢复任务优先级 115* V' x; A' y# I! R' I! W
6.3.2 UEFI中的时钟中断 116
% E$ f# S0 i% m' n& a7 o6.3.3 UEFI事件Notif?ication函数的派发 126
. u0 P: F# \$ C5 L/ Q( M$ Z' {2 P8 M6.4 鼠标和键盘事件示例 127
8 m/ o. x; v# q/ l7 z) ]6.5 本章小结 128
7 c, b8 q& z8 D; `+ p8 `. N第7章 硬盘和文件系统 129
- F. K$ k! k& R7 c0 p8 a) m7.1 GPT硬盘 1290 r' g" a( b" e9 v# V' G
7.1.1 基于MBR分区的传统硬盘 129
1 o0 [6 r" b' A3 Z7.1.2 GPT硬盘详解 130. s* d. B1 e3 g. D C
7.2 设备路径 134( j4 P- v; R B/ o: ]
7.3 硬盘相关的Protocol 139
& a# u, Q' ~3 s1 q B5 U7.3.1 BlockIo解析 140
2 D9 m2 h2 P+ Q, j& X* \8 O0 O7.3.2 BlockIo2解析 142
8 N" S5 s$ f0 a% y- k- j$ N7.3.3 DiskIo解析 146. l& Y3 W, k- r0 Z) C1 ^
7.3.4 DiskIo2解析 147/ H4 ?9 V4 u) a: j0 G
7.3.5 PassThrough解析 150 K) a" H* A; M5 ?3 A+ U9 X* _
7.4 文件系统 1525 Z8 X! |& ?5 y) h" V7 l+ A: u" l
7.5 文件操作 1535 I1 U2 g8 L/ s2 l l2 H& A K; T
7.5.1 打开文件 154
( [8 S/ G( _: I) g7.5.2 读文件 156
- N; a" A% K& d, A6 h7.5.3 写文件 159/ @) e$ `& Q( n
7.5.4 关闭文件(句柄) 160
+ Q+ F) v+ r) _' L/ y, C7.5.5 其他文件操作 1607 L+ Z H8 }/ ] B% Q
7.5.6 异步文件操作 162
$ a$ f2 I9 U8 z b: H" Y& G7.5.7 EFI_SHELL_PROTOCOL中的文件操作 166
: L9 q* \/ y, ^4 h7.6 本章小结 1704 }/ z& C, A4 h& A" h! z; R" r$ V
第8章 开发UEFI服务 1718 W( x8 d2 N1 N
8.1 Protocol服务接口设计 172+ ]# M7 Y8 D3 B8 k
8.2 Protocol服务的实现 174
: [0 s0 C# x' Y- Y( }8.3 服务型驱动的框架 178" a7 @ S4 d% @8 @( b! l& P6 _
8.4 ffmpeg的移植与编译 179
, W2 q3 W. d7 G8.4.1 libavcodec的建立和移植 181/ |5 ^1 @3 H a* T' O
8.4.2 其他库的建立与移植 182 e. S" E9 _$ D- P: y0 m h
8.4.3 在驱动型服务中使用StdLib 186
& x9 }8 F* S; _% C0 g% T8 D8.5 使用Protocol服务 188
) {$ k) D& }" [) b L, c8.6 本章小结 190
6 P8 c# T3 H+ M0 h, `4 s" U+ j第9章 开发UEFI驱动 191
8 {+ x/ \4 c3 J& I$ r9.1 UEFI驱动模型 192
$ v9 ]& ~( j1 [! ` d6 Y, V, {2 G9.1.1 EFI Driver Binding Protocol的构成 1929 ^+ |$ ~7 [ I6 g# R/ P* y7 h
9.1.2 EFI Component Name Protocol的作用和构成 196) m8 y6 r& l |% f/ T& Y
9.2 编写设备驱动的步骤 197
8 J+ q/ e' |. |7 c9.3 PCI设备驱动基础 199
: m8 J3 e6 ^7 }& g1 y { V9.4 AC97控制器芯片的控制接口 202: ^' y* V% A3 H4 U2 k0 t
9.5 AC97驱动 206. \6 ^& [6 _+ N, ]
9.5.1 AC97驱动的驱动服务EFI_AUDIO_PROTOCOL 206$ H1 O9 z+ s+ y. ~ B* Y& K$ d( _
9.5.2 AC97驱动的框架部分 213( \: G0 L3 ?4 \6 p$ j1 j2 c! ~- x, |
9.5.3 AC97驱动实验 2209 n. n7 G) `7 k, {' f/ ~4 s
9.6 本章小结 2213 M& a# M- z0 Z9 Q
第10章 用C++开发UEFI应用 222
3 [( ?5 |( Y7 U, r0 g) r8 n10.1 从编译器角度看C与C++的差异 222+ x8 f8 c' p& B) \$ v+ }) b9 D2 L
10.2 在EDK2中支持C++ 224; b- J: ]' R9 V, j% m
10.2.1 使EDK2支持C++基本特性 224$ M9 @) w) ]4 ^+ d0 X$ q3 I
10.2.2 在Windows系统下的程序启动过程 2269 ?3 I& P5 J/ R9 J/ q, n% O8 {; k
10.2.3 在Windows系统下支持全局构造和析构 229
3 K- v6 D9 G+ ^2 o. W. `7 D10.2.4 在Linux系统下的程序启动过程 231, w/ {9 S3 S' d, V. k/ G, E6 V
10.2.5 在Linux系统下支持全局构造和析构 240
S" {+ \9 g2 J9 |/ F, N10.2.6 支持new和delete 242
5 M) l2 z" U& _7 ]1 J2 ]( N( `10.2.7 支持STL 243
1 N) X/ @' a! t0 h7 N( Y( V3 {10.3 GcppPkg概览 243
& C$ _, ?3 I, ?* s& ~10.4 测试GcppPkg 2460 H: c. ~+ K& B5 \& e
10.5 本章小结 248
3 ~' B4 v" v" @7 y, s0 {第11章 GUI基础 2494 I+ l- u" W2 J
11.1 字符串 2493 r8 A4 o% z, }- m+ C! O0 ~8 t
11.1.1 字符串函数 249
* b( Q0 N$ H5 I11.1.2 字符串资源 251
5 E: i0 H! t+ S% j11.1.3 管理字符串资源 255
2 O& N* p! z3 K11.2 管理语言 260
4 w, i! I& [! @$ b( |2 U11.3 包列表 262
7 `3 n8 s6 ^& e. F# R11.4 图形界面显示 263% n( o+ T) P% R3 b
11.4.1 显示模式 2646 N+ ]' L; o/ n% m2 @. O4 Q
11.4.2 Block Transfer(Blt)传输图像 267+ ?4 b* E, Y- h" ?2 c% C2 P& u+ t3 A
11.4.3 在图形界面下显示字符串 269: f; _% @, A- K) m
11.5 用SimpleFont显示中文 272
& s8 n; w8 r5 h5 S5 w! @: _' i11.5.1 SimpleFont 格式 273
; X% D6 a6 y% \; u) j" x11.5.2 如何生成字体文件 275; _' m3 s* L, G% {% `. G
11.5.3 如何注册字体文件 276# Q& x4 b; h/ h- K) f
11.6 开发SimpleFont字库程序 2775 U. I2 w% J% x( j# }1 ]
11.7 字体Font 278" q" D: W# {7 V0 R" F. X# a5 p
11.7.1 Font的格式 279; j1 x. P! V5 U7 |- [
11.7.2 字体包的格式 2798 @* f. P* ^+ k+ L2 k" H5 \0 P
11.7.3 为什么Font性能高于SimpleFont 281
& n$ C! J9 A6 f5 _5 R1 r11.8 本章小结 284! D7 [. E3 j7 [3 V
第12章 GUI应用程序 285
, G6 B2 p8 V3 ?7 v" x( x) M$ m12.1 UEFI事件处理 285/ z; ^3 f" y; S/ s" r3 s
12.1.1 键盘事件 2856 A5 B: b9 A7 ~. E+ H, N( g2 T& R
12.1.2 鼠标事件 292
5 ^" T5 O1 P( r" ^, U# D12.1.3 定时器事件 293
4 N% P/ Y; ]7 ^12.1.4 UI事件服务类 294
. a% h U0 L C2 }, `( Y& t8 H12.2 事件处理框架 297, b* e+ U) N2 }8 L9 r* k
12.3 鼠标与控件的绘制 302
2 N: Y$ S4 s0 f. R0 d7 i _+ b12.3.1 鼠标的绘制 303; x& o( W5 m+ I' P
12.3.2 控件的绘制 305" |2 s) M Z/ Y0 X2 W: e6 w6 n
12.4 控件系统包GUIPkg 306
/ @) V1 l6 z0 U+ {12.5 简单视频播放器的实现 309
+ D$ e" z. e$ N, t0 ?$ } d12.6 本章小结 315
8 c/ H: |( ^# _1 s' K# h* t第13章 深入了解多任务 317
% v5 L! [% _$ h1 T! j- u8 v13.1 多处理器服务 3177 m* @* Q7 z& \/ n# A
13.1.1 EFI_MP_SERVICES_PROTOCOL功能及用法 317( `. M C: ~3 Q4 a
13.1.2 启动AP的过程 324: f2 T8 G& W% j7 y" i
13.2 内联汇编基础和寄存器上下文的保存与恢复 333
& l4 { V* P- |2 g! P. n9 h$ m13.2.1 内联汇编基础 333/ q7 U' k) R) I5 Q' q
13.2.2 寄存器上下文的保存与恢复 335
) P: J2 \% X X% L/ v13.3 多线程 336. O$ E& J# _- I) q F( D! s3 N
13.3.1 生成线程 337& j1 | D4 U6 R& V9 a
13.3.2 调度线程 340
6 B3 M# E- p3 v( b9 v13.3.3 等待线程结束 341
6 O2 n. E5 J; Q4 Z. g! K& ~) M13.3.4 SimpleThread服务 341& w, C$ S! M5 I
13.4 本章小结 345 java8.com- e) S0 Y" A& z5 x$ J
第14章 网络应用开发 346
) Y: f" Y8 M4 z: q14.1 在UEFI中使用网络 348
4 C n- p) |1 ~; H# C5 ~14.2 使用EFI_TCP4_PROTOCOL 350) g* f, o1 h+ T' z. R( d
14.2.1 生成Socket对象 352' J- n. y0 G/ X' o
14.2.2 连接 356
1 j$ T- L1 K8 x: h0 z2 i14.2.3 传输数据 358
) y1 Y v+ n6 q& K14.2.4 关闭Socket 361
2 `( I5 J6 H, k+ P4 t5 H( `, y: w2 Z14.2.5 测试Socket 3625 d; @3 B0 v9 H" [' o* j4 s6 J6 p
14.3 本章小结 3637 U; t/ K$ \2 J- F5 c
第15章 使用C标准库 364
& H7 P- j) Z) r. p0 J6 v ?15.1 为什么使用C标准库函数 364
- w2 h0 r# u% H' |7 n$ x" l0 o- M15.2 实现简单的Std函数 365
+ B9 f% N9 x! d15.2.1 简单标准库函数包sstdPkg 366
# }6 H5 S' f; [. o* w3 {/ k15.2.2 使用sstdPkg 368
( C# l6 y. d- O1 W& e3 r. K* K. n15.3 使用EDK2的StdLib 369
$ y& |' C. V: U( e7 f2 Y15.3.1 main函数工程 369
, Y/ q1 O$ Z: u, {* @% Q15.3.2 非main函数工程 374
- F# `$ U2 V% ?. i( e15.4 本章小结 376
7 u* u/ w" x$ R" ^& H第16章 Shell及常用Shell命令 3777 E4 E1 M* ?/ o; `8 ~# l) F
16.1 Shell的编译与执行 377
- n+ A# Y& Z! y7 Z6 e/ @& i. V# A16.2 Shell服务 379* j+ ?8 V2 [1 q
16.3 Shell脚本 385! O! x" W" o% n/ s
16.3.1 Shell脚本语法简介 385
6 [; P8 i" |3 c' \16.3.2 自动运行指定应用程序 388$ U# M4 ~+ B* w
16.4 Shell内置命令 388
' z7 e. E: k8 Z% t3 }) E16.4.1 调试设备的相关命令 3885 J% y- j8 V# Z, ^8 }
16.4.2 驱动相关命令 390
1 v2 \. `) O0 z$ j& E16.4.3 网络相关命令 392
, u/ b- D2 W/ R2 I16.5 本章小结 394
. @% ]1 O3 a3 F附录A UEFI常用术语及简略语 395% M* p9 M+ f- T" \, C" J- r3 a
附录B RFC 4646常用语言列表 397
8 j9 K1 a1 B+ j6 i S附录C 状态值 398( G7 X: [* I0 d7 e! Q
附录D 参考资料 400; P9 n/ ?8 G1 g) j
& y/ g+ h! b7 }- ~7 O
; c/ M% k, ^% m1 \8 n百度云盘下载地址(完全免费-绝无套路):
% p) Q3 \6 q% J) c6 q# K2 o1 E# H |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|