TA的每日心情 | 开心 16 小时前 |
---|
签到天数: 235 天 [LV.7]常住居民III
管理员
- 积分
- 8335
|
Java电子书:UEFI原理与编程 PDF 电子书 Java吧 java8.com
# i" |+ U& r! a. o; Z$ R
5 Y! E0 B! q& T& J( y* T* r% A作者:戴正华出版社:机械工业出版社出版时间:2015年01月
! j9 @0 M3 b% N% L4 O; _/ g+ k& C! \; V/ X" B; K9 z% H; W
编号:166-Java吧资源免费-X0001【Java吧 java8.com】
# G; p% E5 Z' @) }% ^' z: b1 o
' s, d9 k a* n7 x
, _8 c! M0 O3 A) m2 Q% Q, r; w3 ?0 W- c- }: M( T y9 j% n9 J
目录:, H% O ^& i' Z( \+ i% \
2 \4 h ~8 z1 E g
N; G* G, l3 e5 N) ^0 z
8 x0 t& ^5 Z5 d4 o前 言
) F- O2 a1 W& Q& e第1章 UEFI概述 1! _- k2 J$ Q! K/ u3 Q" z6 R
1.1 BIOS的前世今生 1
8 @/ ?. K( y6 }: A, u& g1.1.1 BIOS在计算机系统中的作用 1& m$ p8 T, K( a* F- h6 C! d
1.1.2 BIOS缺点 2* v" ]: A# a* i% J/ r
1.2 初识UEFI 2 X/ L ?: | r( I; Y. Z" E
1.2.1 UEFI系统组成 3
0 z+ E. F9 O5 y- d& n) u2 s1.2.2 UEFI的优点 4
( g c8 I5 \7 S% e1.2.3 UEFI系统的启动过程 5
) T4 F- b2 h. y! n, N8 U1.3 本章小结 12
$ j' J% H& a P" N第2章 UEFI 开发环境搭建 14$ a# t3 _( }- t- }
2.1 配置Windows开发环境 14
8 j" r: X) s! M" u( l: _2.1.1 安装所需开发工具 15
% H% W w* N# m' y! U7 L2.1.2 配置EDK2开发环境 15 E! g0 F( v% A& Z( W5 n
2.1.3 编译UEFI模拟器和UEFI工程 174 ~- a3 s% F, g7 u" `" j- q, s0 U
2.1.4 运行模拟器 194 O. N: d4 T' k/ S; b( M0 l2 q R
2.2 配置Linux 开发环境 21
! V7 v& R! r/ O0 k8 y2.2.1 安装所需开发工具 22
. j) b; Z+ g$ {2.2.2 配置EDK2开发环境 22" b3 n7 E# V6 g; t5 j
2.2.3 编译UEFI模拟器和UEFI工程 23
2 ?2 C- V! S% s& p b+ b' `2.2.4 运行模拟器 24
$ Z, t; E$ d C) y# U$ [7 P/ Z2.3 OVMF的制作和使用 25: Z; }0 |+ F9 v( w
2.4 UEFI的启动 277 @7 ~6 G! @, `/ t( S
2.5 本章小结 289 ~. L, J. W6 R$ ^
第3章 UEFI工程模块文件 29
. J3 @% T7 O% K% R9 U8 u3.1 标准应用程序工程模块 30
/ A# Z; C2 A6 G5 v& }# p8 p3.1.1 入口函数 30& O4 R, t: d* T8 d
3.1.2 工程文件 313 a2 P* Y# _8 _& n$ c& I
3.1.3 编译和运行 37
' e$ V g6 a/ I3 S- ^* x3.1.4 标准应用程序的加载过程 375 r& h5 l# Q/ ^! h
3.2 其他类型工程模块 43
' F' U$ r; h/ v1 {( A! N3.2.1 Shell应用程序工程模块 43
6 D' d8 u# Y9 n" t( J3.2.2 使用main函数的应用程序工程模块 46
, @' Y0 Z' c8 O+ U8 ^% |: I3.2.3 库模块 47 z( D+ {1 {) P. ]
3.2.4 UEFI驱动模块 49
; B' X# }% ?2 K+ V4 I5 I5 C3.2.5 模块工程文件小结 506 ]& B+ N' O2 e3 Q1 j
3.3 包及.dsc、.dec、.fdf文件 515 B6 ~/ v: X) {3 Z
3.3.1 .dsc文件 51
' r0 L. f7 H% J7 g3.3.2 .dec文件 560 x, F2 S6 ^6 X" N* c7 b! H
3.4 调试UEFI 59
4 P0 o" e: I' y3.5 本章小结 61
& ]: t8 a* S9 t3 v1 K第4章 UEFI中的Protocol 62, c7 e8 }8 c1 s) H) E
4.1 Protocol 在UEFI内核中的表示 64
$ f0 ?9 V# @1 g1 V/ \4.2 如何使用Protocol服务 65
8 {! \* u6 J, S- e& C: f) _4.2.1 OpenProtocol服务 66% q: }. D9 W& ^& Q [- ~7 z
4.2.2 HandleProtocol服务 67
) f/ G( o9 C9 `9 ?2 b/ @/ R4.2.3 LocateProtocol服务 69+ f, x+ d% P$ S) ?3 h( x* Q
4.2.4 LocateHandleBuffer服务 69
6 e7 Z$ n6 L. H. }8 }! q4.2.5 其他一些使用Protocol的服务 719 r% p& Q) r1 t7 A$ u4 Y% ^
4.2.6 CloseProtocol服务 726 c8 H, }% C6 z. }1 x) a3 W$ t- |
4.3 Protocol服务示例 73
. c9 y8 J- u) q+ U- [+ W4.4 本章小结 75) Y- s0 Q% o/ m
第5章 UEFI的基础服务 767 n: Q6 F$ p. Z1 p/ P# G
5.1 系统表 76( e4 r7 o9 \0 x6 Y* `0 W
5.1.1 系统表的构成 77
; K x# L7 Z5 t2 M" d5.1.2 使用系统表 79
& q4 [: [& {3 e4 T, w, S* X- T5.2 启动服务 82
^2 q; s6 O, H9 N5.2.1 启动服务的构成 823 a. x7 ?) z" N( C! l/ R
5.2.2 启动服务的生存期 913 o! o) U$ P( t
5.3 运行时服务 93
( x* I# O+ J) t N5.4 本章小结 102
8 W$ j# l- e( X; E( H第6章 事件 1034 a& C( T+ X9 ^9 k
6.1 事件函数 104
' Z$ u% Z6 G) g7 `, X6.1.1 等待事件的服务WaitForEvent 105
) a; P; s$ a0 b+ e+ f9 H. {4 O( F6.1.2 生成事件的服务CreateEvent 106
7 @) h8 u. {1 H% p7 C, S% N6 h6.1.3 CreateEventEx服务 110
6 [- h2 T! w+ F! c, H6.1.4 事件相关的其他函数 112
3 w$ o9 u; V3 k6.2 定时器事件 113
) m, m- W4 W" O7 ^6.3 任务优先级 114" C \3 ]/ [) ]9 y
6.3.1 提升和恢复任务优先级 115: F% B9 W1 s! _+ ^) T% b+ l' N; y5 i( n
6.3.2 UEFI中的时钟中断 116
9 C; U6 J* W$ W- x% \! u6.3.3 UEFI事件Notif?ication函数的派发 126. @, n" E" O p8 z \
6.4 鼠标和键盘事件示例 127
$ s8 g7 @8 m; h% x( N6.5 本章小结 1280 z/ M' W, |; n1 m% A0 j* ?
第7章 硬盘和文件系统 129
: I5 n( |4 ^6 y& I" L9 L9 }/ H; U& b7.1 GPT硬盘 129) c+ C; F" r6 v N9 h0 m6 H
7.1.1 基于MBR分区的传统硬盘 129' o& E; {8 Q( J$ m8 Z: K1 ~
7.1.2 GPT硬盘详解 130$ E1 O" t6 E* q! @
7.2 设备路径 134& |$ k0 N, {7 P6 `/ A; s, r) ]
7.3 硬盘相关的Protocol 139/ |, {1 s/ F- H
7.3.1 BlockIo解析 140. j+ z M9 w( E: } n1 }
7.3.2 BlockIo2解析 142
* R& P0 _$ W. e7.3.3 DiskIo解析 146
4 s9 E" z" X- ]7.3.4 DiskIo2解析 147
3 z- a* u) P/ c. S, ^* g/ L7.3.5 PassThrough解析 150+ F; v! t( w& X+ _4 ]
7.4 文件系统 1521 w. l/ e! ?: q
7.5 文件操作 153
& q, H9 m% G' \& f7.5.1 打开文件 154
; Y9 V: M5 G2 t& e& t7.5.2 读文件 156& C/ k8 B( j/ F" |% r* d
7.5.3 写文件 159) I0 Z. P% h; t. y9 }% y
7.5.4 关闭文件(句柄) 160
W5 P* K: o' [0 W' p& ?* c) R2 O7.5.5 其他文件操作 160: w! X u% r/ k; A' d% j0 _
7.5.6 异步文件操作 162
2 a2 | r" t! H/ d: Z7.5.7 EFI_SHELL_PROTOCOL中的文件操作 166/ m5 ^2 o3 q0 _9 F3 s1 A; ]
7.6 本章小结 1705 Q. [, d5 P/ E" n& C* A
第8章 开发UEFI服务 171% I6 p' |9 s# Q' W# R( b
8.1 Protocol服务接口设计 172
. @$ S) C L, O' i2 d8.2 Protocol服务的实现 174
. i. Z8 M* _9 x' L5 V( I8.3 服务型驱动的框架 178. t5 ]7 h& L; C8 Y: b2 ]5 q
8.4 ffmpeg的移植与编译 179
; E6 a @% ]* K" h+ ?# p8.4.1 libavcodec的建立和移植 1814 ~9 |' p l; i$ M6 j$ \ X
8.4.2 其他库的建立与移植 182
* {9 d/ |. R5 E2 D6 ^8 j! d8.4.3 在驱动型服务中使用StdLib 186; X5 {" q% b! n2 x
8.5 使用Protocol服务 188
( d# a! c& b# p( b4 X4 C1 R8.6 本章小结 1908 R7 U5 W% D8 f$ b7 w
第9章 开发UEFI驱动 191
~8 ]1 W( O' s! [" A- _9.1 UEFI驱动模型 192/ H3 q3 J* Q! ?+ @! _# r- D
9.1.1 EFI Driver Binding Protocol的构成 192
, A" E% ? {& l# N# J+ ~9.1.2 EFI Component Name Protocol的作用和构成 196
6 r$ s& M$ _/ L7 M5 U4 A% `9.2 编写设备驱动的步骤 197) J$ ~/ l1 e# N( D: ]
9.3 PCI设备驱动基础 1995 ]& I" U e9 }6 p' X
9.4 AC97控制器芯片的控制接口 202
' Y6 ^6 x) z! X# ?- d$ F2 T9.5 AC97驱动 206, }& p ^$ t! C8 Q+ }1 a! N
9.5.1 AC97驱动的驱动服务EFI_AUDIO_PROTOCOL 206
9 S* d6 |, d* M+ e9.5.2 AC97驱动的框架部分 213/ |8 |2 E7 C5 c$ e
9.5.3 AC97驱动实验 220
8 D$ v8 p: {5 G1 C9.6 本章小结 221( o& X# ?: m, Y, Q' t/ f7 M* q
第10章 用C++开发UEFI应用 2224 n% r* u L' U) b2 M; j7 H
10.1 从编译器角度看C与C++的差异 222 N7 @4 _9 M, v' [) {
10.2 在EDK2中支持C++ 224: z* O+ P+ F0 m; g \5 R
10.2.1 使EDK2支持C++基本特性 2240 f7 a5 i& n' O2 C" f2 R
10.2.2 在Windows系统下的程序启动过程 2264 c/ r' [+ [. {* y7 b0 k/ K3 e
10.2.3 在Windows系统下支持全局构造和析构 2295 g" \# Z9 f' f9 g9 Z
10.2.4 在Linux系统下的程序启动过程 231* P+ r3 v1 }" }* C* o; c
10.2.5 在Linux系统下支持全局构造和析构 240 Q# S/ o+ }$ A" i
10.2.6 支持new和delete 242! R) X1 d! ^. j1 [5 `
10.2.7 支持STL 243% C* N5 W3 N- Z' N; ^/ ^
10.3 GcppPkg概览 2434 o5 ]0 T9 U% b) V! j
10.4 测试GcppPkg 246: v: z/ C2 M r" K; F9 X
10.5 本章小结 248
" |# a) q$ b( i% l( v. e第11章 GUI基础 249
7 s1 T7 o8 c' @- ]2 E7 G2 t11.1 字符串 249
, R6 O0 w p7 `. s, F4 Z11.1.1 字符串函数 249* q. F' V/ Y, a+ i3 |8 X
11.1.2 字符串资源 251
/ W+ s. }" u1 ` w" |11.1.3 管理字符串资源 255, X% U- ]/ E! L3 e; F/ O. q
11.2 管理语言 260
& I8 N G# o$ N. I6 u& b11.3 包列表 262
4 g. N; w- k0 {, J3 |5 m, M11.4 图形界面显示 263& c0 N2 ?' r$ M1 _ ^: B7 K
11.4.1 显示模式 2647 i+ q" q7 i8 Z8 u3 x8 N
11.4.2 Block Transfer(Blt)传输图像 267) w( t' {8 v d- x
11.4.3 在图形界面下显示字符串 269
0 A; `- D1 D* Q11.5 用SimpleFont显示中文 2723 c$ U4 L) g( w( c
11.5.1 SimpleFont 格式 273
( M; a) O! @# t5 ]+ q) i. c11.5.2 如何生成字体文件 275' M2 d4 R. P7 J/ B
11.5.3 如何注册字体文件 276
* Y8 F9 ^0 O; l" c11.6 开发SimpleFont字库程序 277
0 T; q& ?3 A, m# \' r1 n0 K11.7 字体Font 278. w2 X$ w* Z. Z# k1 @
11.7.1 Font的格式 279+ Z+ d% X1 l; O, K5 s% V! Y
11.7.2 字体包的格式 279- Z' z' G7 }3 f1 K4 c
11.7.3 为什么Font性能高于SimpleFont 281
5 y- @- P* C2 }8 X8 {& ]9 P3 p! s4 w11.8 本章小结 284
+ t% p! W8 _6 R9 x第12章 GUI应用程序 285
4 s' z# w, ^! ]6 _12.1 UEFI事件处理 285! \( X' g- G2 L0 H; O& P
12.1.1 键盘事件 285
" D. b6 `0 C+ v4 Q O12.1.2 鼠标事件 292
% A; V3 T/ V& }+ b: Z+ d! h12.1.3 定时器事件 293% a7 Z! a# u4 _* i
12.1.4 UI事件服务类 294
# \) b1 k* \) P" X3 b; ] W. H12.2 事件处理框架 297
5 U; T; @ _) j' p* z12.3 鼠标与控件的绘制 302& h# k/ Z a0 P
12.3.1 鼠标的绘制 303( k9 }1 y$ B* I
12.3.2 控件的绘制 305
/ U3 f9 R, T) o9 w m12.4 控件系统包GUIPkg 306
+ u; M* Q1 v1 y; }: _5 h12.5 简单视频播放器的实现 309
, A, a0 i* {8 d3 W+ v12.6 本章小结 315+ d1 V' T7 |* |* r- k6 p6 A0 B
第13章 深入了解多任务 317
, p# q0 d! K9 S" U3 T0 T) W13.1 多处理器服务 317
1 `2 g% p0 o+ {6 G7 s13.1.1 EFI_MP_SERVICES_PROTOCOL功能及用法 317
, n- A9 p/ w r- K( ^13.1.2 启动AP的过程 324
( d: D- R! f. N- M# X13.2 内联汇编基础和寄存器上下文的保存与恢复 333
9 s/ F; f7 o7 V$ J3 v; s" B13.2.1 内联汇编基础 333
- U" B, v# F2 \& @* X9 C4 w2 c13.2.2 寄存器上下文的保存与恢复 335
( S# b% w. G& O6 S0 g13.3 多线程 336
( Y) V6 u. E1 }6 ?- u- Y5 j13.3.1 生成线程 337
! B' B. Q( R4 ?13.3.2 调度线程 340/ }; r3 V3 [& y/ K
13.3.3 等待线程结束 341
h/ z g- @: U1 o- o' Q1 P13.3.4 SimpleThread服务 3411 x3 D1 i: F% S# ]
13.4 本章小结 345 java8.com
7 T/ v; `6 u, u' i9 S第14章 网络应用开发 346
) K7 m! y* x/ m5 s; N14.1 在UEFI中使用网络 348
1 {7 _% a" N) Y( C% y14.2 使用EFI_TCP4_PROTOCOL 350
5 p: P& Z1 l8 Y3 C- \14.2.1 生成Socket对象 3524 K+ s5 v& {8 |3 W/ Y7 J! y
14.2.2 连接 3563 f; r- _- w/ `: x M& c
14.2.3 传输数据 358
1 J, n* F: l5 L$ E9 o2 E, q14.2.4 关闭Socket 3615 D% I0 n# v! Z
14.2.5 测试Socket 362
2 r- y5 ?! B: s, d& ]* I# N14.3 本章小结 3630 j1 ? ~. ~" E2 c; x
第15章 使用C标准库 364
0 r( W3 w7 a) g15.1 为什么使用C标准库函数 364" z% [+ T$ Z! j) ]
15.2 实现简单的Std函数 365
! H/ _# y7 c' F4 O* a, F15.2.1 简单标准库函数包sstdPkg 366# I: M( J' l& S
15.2.2 使用sstdPkg 3681 E- k; K, |+ K. d+ A* i! j
15.3 使用EDK2的StdLib 369; o% x3 [; m. R5 }
15.3.1 main函数工程 369
3 w* E# t) R3 ?8 @( K; t/ ^/ R) d15.3.2 非main函数工程 3748 b8 p0 a& T8 } }- l
15.4 本章小结 376' a: A" b3 \$ G/ x
第16章 Shell及常用Shell命令 377
: O7 h- V6 e$ `16.1 Shell的编译与执行 377
8 n2 N- Q( E2 ?4 \1 r: T7 h. a9 \16.2 Shell服务 379
( c( ~# n! r9 `* N2 `16.3 Shell脚本 3856 Q* x. m) ]" W9 h: y! V8 }
16.3.1 Shell脚本语法简介 385
' X% [1 C$ V$ E2 g; C0 ?5 D* H16.3.2 自动运行指定应用程序 388
+ i& O3 e* e7 \1 k' ~" T- I; y16.4 Shell内置命令 388 f, L3 P: w0 i) T2 l- M
16.4.1 调试设备的相关命令 388
4 s% i- g6 r! N l4 J16.4.2 驱动相关命令 390& n6 K% m9 q5 ?3 P5 s
16.4.3 网络相关命令 392
" M& R$ v- V& Z" H) Z9 x* W16.5 本章小结 394
3 ^0 [3 S$ [ ^0 e附录A UEFI常用术语及简略语 3955 w& L& @' P1 K9 S
附录B RFC 4646常用语言列表 3974 C$ O# ~9 Q) N
附录C 状态值 398$ Q0 [8 d' k* }/ y
附录D 参考资料 400
" ?0 r0 k. [. Y% W1 Q h/ l
% r5 L6 x" S% ^8 r- W9 s# ~! p
+ G" [; q' {! u5 \2 |3 I- K/ f百度云盘下载地址(完全免费-绝无套路):1 |7 J/ N0 B! k. N
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|