TA的每日心情 | 开心 7 小时前 |
---|
签到天数: 393 天 [LV.9]以坛为家II
管理员
- 积分
- 12895
|
Java电子书:UEFI原理与编程 PDF 电子书 Java吧 java8.com
2 T$ Q1 k o9 ?: v. L5 {3 k' B/ V" Q, A |$ I7 y
作者:戴正华出版社:机械工业出版社出版时间:2015年01月 : ^3 V, v8 j; E) L" F
0 V9 u6 N; i, P% p0 K# j
编号:166-Java吧资源免费-X0001【Java吧 java8.com】
. C7 _+ R' s5 k" J+ B' W+ `
6 o! H9 U+ T* N0 @# |, h7 w8 e
( r. |7 x& V# _" d, l目录:2 A# V7 H0 T, n0 m' c' |4 g
( i8 n7 F! a8 ~. M' r3 e0 G
' w% G1 ~9 K' V A" ]9 y( z8 g/ B
' |6 M6 {& R1 t3 o/ \7 @前 言$ \9 }9 E) Y/ O2 p) W, u- \ d
第1章 UEFI概述 1
% ^* f% O- `6 L) K: M0 d; p u1.1 BIOS的前世今生 1
6 C! j& S: O3 G. I& M/ E1.1.1 BIOS在计算机系统中的作用 18 L1 _: G S/ v; ~* ^2 X. w
1.1.2 BIOS缺点 2
+ J* t6 s9 a) r1.2 初识UEFI 2
& _1 V8 M6 a1 T1.2.1 UEFI系统组成 39 x b3 @2 l8 q( Z+ t. M
1.2.2 UEFI的优点 4
$ Q7 q6 ?6 m! o9 P& O- b1.2.3 UEFI系统的启动过程 57 d6 }1 s& L0 Z2 G, _3 N {" D {
1.3 本章小结 12. s4 f+ }' J1 l* \+ P
第2章 UEFI 开发环境搭建 14
' y; E$ A- t6 f8 }* z2.1 配置Windows开发环境 14; q- ~/ g8 N* ^/ X* V
2.1.1 安装所需开发工具 15
1 c r& g# ~! G' R; R m2.1.2 配置EDK2开发环境 157 z" t, Q/ o: C1 w0 Z4 V3 D
2.1.3 编译UEFI模拟器和UEFI工程 17
# v# Z6 Y, ?" u9 G2.1.4 运行模拟器 19
9 E+ f1 K) u. f2.2 配置Linux 开发环境 21
( o' y9 R: {! L+ m$ Z* r8 I- I2.2.1 安装所需开发工具 22
" _* K" y( F+ S% K. ^6 D/ T2.2.2 配置EDK2开发环境 22
3 w% n7 J2 t( M, o( \: p5 |$ @2.2.3 编译UEFI模拟器和UEFI工程 23
1 a1 M/ {. H0 B7 D2.2.4 运行模拟器 24
- X j0 G- c! P6 r5 q! i& k2.3 OVMF的制作和使用 25, g* [& N5 v1 V
2.4 UEFI的启动 272 X8 |' a& t& Q5 [, s4 d q
2.5 本章小结 28
* V# c) E9 s, ]4 e' W第3章 UEFI工程模块文件 295 W6 ]" H! G, K$ a% U7 `5 w
3.1 标准应用程序工程模块 30
. l- x% o! W) L7 @3 s3.1.1 入口函数 30
; n8 @- z; h% E3.1.2 工程文件 31
) X+ R) l' z7 P; E7 F5 E& n3.1.3 编译和运行 37
6 Q1 ^1 T8 d7 W) F8 r3.1.4 标准应用程序的加载过程 37! b3 n" b2 R) `: L
3.2 其他类型工程模块 43
' }' G: f; m2 \0 t! o0 ?3.2.1 Shell应用程序工程模块 43
: j6 N; |/ o7 ^7 |/ s4 {3.2.2 使用main函数的应用程序工程模块 464 m K- Z/ b, h& O8 P5 e% O
3.2.3 库模块 47
! E8 ?" @3 M. w# A. Y B- s/ R3.2.4 UEFI驱动模块 49
5 I' K7 Z* A7 n9 {, x% o3.2.5 模块工程文件小结 50 U- Y4 s2 e( L( d
3.3 包及.dsc、.dec、.fdf文件 51
9 n+ P6 l/ w4 s- w* [3.3.1 .dsc文件 51) M% T0 }2 q/ N' [4 }* Z$ h
3.3.2 .dec文件 56
" F0 i9 G' y# t+ [9 W( s- P3.4 调试UEFI 59
; k, ?/ @; d' T& b. c3.5 本章小结 61
8 z* i! n- Q8 V# q第4章 UEFI中的Protocol 62
' ]; m1 O3 ], l) B0 `) w4.1 Protocol 在UEFI内核中的表示 64" H0 Q) [+ ~: `; ^
4.2 如何使用Protocol服务 65* J w, ]2 P! j! _% U
4.2.1 OpenProtocol服务 66
- B( O) y" i6 e! `6 h4.2.2 HandleProtocol服务 67
. U, v: v7 m3 _4.2.3 LocateProtocol服务 69
( ^# J1 {9 G& G8 C. w c4.2.4 LocateHandleBuffer服务 69
+ o- Y7 E- T" Z4.2.5 其他一些使用Protocol的服务 71' Y( j# n' O' a! W( U
4.2.6 CloseProtocol服务 72$ i% n( K; L; S! s" R) D, Z4 `
4.3 Protocol服务示例 73
) z' |, z) ?; R) b4.4 本章小结 750 z0 o% b$ ]8 L Q! b- l, ]
第5章 UEFI的基础服务 76
# b% z( G# s4 f G4 ?1 N! W, r: ^5.1 系统表 76
0 S+ w5 `# O: T2 _4 k! C+ w+ D5.1.1 系统表的构成 77
1 d* [7 j/ ^, r6 m, ?2 u* R5.1.2 使用系统表 79+ p) f$ x/ M- ^* T! ]/ v# J3 s/ K5 D
5.2 启动服务 82! x! u' c. A& r1 q7 P
5.2.1 启动服务的构成 82 b V5 y- x% R v1 j
5.2.2 启动服务的生存期 91
0 D4 [$ [' G- V5.3 运行时服务 93
" _' U; N6 T+ w$ M8 m: t! {5.4 本章小结 102" Z, z& T% _+ e/ m8 @9 {' Z/ j
第6章 事件 103
& C9 ~. m7 Z* [, z7 x. u& J6.1 事件函数 1043 {2 @: g( w) w# t2 n1 c' ~5 m8 h% |
6.1.1 等待事件的服务WaitForEvent 105
5 N8 _/ ?% r+ ^0 V. A0 }6.1.2 生成事件的服务CreateEvent 106
; ~* Z( X; n/ J1 G, \8 k6 m( W6.1.3 CreateEventEx服务 110& T& k6 P; v! B/ d' F0 X
6.1.4 事件相关的其他函数 112
% l i9 ?2 }2 I# C" K# p. `7 @6.2 定时器事件 1139 \$ ~" ~0 A, i, i3 N
6.3 任务优先级 114* c; x% E0 W! k' P$ m8 R; t
6.3.1 提升和恢复任务优先级 115$ ^1 ^/ m1 o4 V: a8 z
6.3.2 UEFI中的时钟中断 116
& |+ s: v6 a5 ^6.3.3 UEFI事件Notif?ication函数的派发 126$ Q! Y% j6 a3 v( K* m& w$ E3 Q
6.4 鼠标和键盘事件示例 127# A" U# _0 s- [+ J
6.5 本章小结 1281 ?( j. Q% d, S. e
第7章 硬盘和文件系统 1299 L. p/ ^6 F8 K. }) K8 ?
7.1 GPT硬盘 1294 J5 `3 M1 z D7 K) h( A
7.1.1 基于MBR分区的传统硬盘 129
- f: ^& y" w$ `& b4 M6 ^7.1.2 GPT硬盘详解 130' t7 O; k9 D3 ]# _3 k% G6 \
7.2 设备路径 134
( W+ [- _5 C: U7.3 硬盘相关的Protocol 139
3 V: m6 q: K- |6 R* a S7.3.1 BlockIo解析 140
* J" {& ^5 R" @1 q& j) b8 q7.3.2 BlockIo2解析 142; @1 k5 }5 X* r8 K4 J6 Y4 n
7.3.3 DiskIo解析 1467 g" N# U, c) Z
7.3.4 DiskIo2解析 147) K9 A6 N/ ?$ l1 F' e& d; M5 @& i' J
7.3.5 PassThrough解析 150
~( @0 t. u4 s/ |7 n) ~7.4 文件系统 152
) E& K5 o/ G+ d b7.5 文件操作 1534 z; _% i$ f5 @6 Z Q/ Y" [
7.5.1 打开文件 154
' u$ L' m; d, H2 m6 L3 l) E7.5.2 读文件 1566 F0 k: M& X1 ] g
7.5.3 写文件 159
9 l9 ~5 x }( h0 }, ?+ j) F! Y3 ~7.5.4 关闭文件(句柄) 160
' m8 O2 t8 S+ R7.5.5 其他文件操作 160
# M' \" i3 L# @6 C3 _7 o# J7.5.6 异步文件操作 162
9 Y% ?1 V' z! c# Z G8 {7.5.7 EFI_SHELL_PROTOCOL中的文件操作 166
$ M5 m9 A, Z. n# B5 K2 c1 O7.6 本章小结 170
% C. q. X) A9 \% e! D: {1 F第8章 开发UEFI服务 171/ M, B& u' n! [
8.1 Protocol服务接口设计 172
# U8 I8 ~5 l7 e( N( e4 H8 S8.2 Protocol服务的实现 174
$ |. ]( L/ P# X5 U9 X' r. ^8.3 服务型驱动的框架 178. i$ X6 p' z4 d5 A
8.4 ffmpeg的移植与编译 179. f! ~" Y) k p& h% T
8.4.1 libavcodec的建立和移植 181! R( G$ L0 J G, r
8.4.2 其他库的建立与移植 182# G; u1 @% K C, Y' S/ R
8.4.3 在驱动型服务中使用StdLib 186* K" n4 D! l; C( l9 \5 r
8.5 使用Protocol服务 1884 [- f4 N/ {7 j# ]* D9 j! r' ]
8.6 本章小结 190
: y. ]' h- A2 o @0 l" w4 \7 y第9章 开发UEFI驱动 191- p5 H- q) J! M& X/ N4 X, D: y
9.1 UEFI驱动模型 192% F' t) T& V% R1 q) T, b3 k9 T7 K
9.1.1 EFI Driver Binding Protocol的构成 1920 `1 s3 @. a4 f0 n2 Z) n0 `3 i
9.1.2 EFI Component Name Protocol的作用和构成 196$ O0 M2 R* ~7 @
9.2 编写设备驱动的步骤 197 J" _+ _0 b4 Z' c+ U6 g
9.3 PCI设备驱动基础 199
: @4 F, _. D$ u0 E9.4 AC97控制器芯片的控制接口 2024 ]9 f6 D" ?, h
9.5 AC97驱动 206$ z! b ~$ ?. n$ U
9.5.1 AC97驱动的驱动服务EFI_AUDIO_PROTOCOL 206( }9 m8 ^6 n5 N3 v! V
9.5.2 AC97驱动的框架部分 213: H- V9 d2 g; W" H$ ~, ?, d- Y$ c
9.5.3 AC97驱动实验 220
* q( z- D* N& _) |7 ~9.6 本章小结 221
9 o' Y9 c" j) Q3 t$ |4 ]第10章 用C++开发UEFI应用 222, N2 ?2 X8 a; l0 j4 o+ _5 c
10.1 从编译器角度看C与C++的差异 222& V3 j8 c$ k, m* s& q' P
10.2 在EDK2中支持C++ 2245 ?5 V! D! H: n0 i3 S
10.2.1 使EDK2支持C++基本特性 224
. j6 H/ l: H% j' q+ A- G) Z* \3 G P10.2.2 在Windows系统下的程序启动过程 226
% t% @" R) ~/ _" L7 J3 [10.2.3 在Windows系统下支持全局构造和析构 229
6 F0 B0 H3 F# z10.2.4 在Linux系统下的程序启动过程 231
6 ?- E& b7 i( R$ a- Y, C# H+ ]10.2.5 在Linux系统下支持全局构造和析构 240
/ c. y e7 E/ R0 N8 M10.2.6 支持new和delete 2423 z7 E; M6 s5 d: C' p8 g+ [
10.2.7 支持STL 243
+ C( P2 ~ P" V m10.3 GcppPkg概览 2438 C' h7 U* N. r" Q1 c
10.4 测试GcppPkg 246" k7 Y8 L# N7 O- ]8 w7 v5 j
10.5 本章小结 248
+ U1 S8 G: v" C7 [2 u* V+ y第11章 GUI基础 249
+ i# F) X; g G$ Y11.1 字符串 249
( D3 u3 |1 I) ~2 z8 w11.1.1 字符串函数 249
$ F9 U6 E0 h3 ?. l! H11.1.2 字符串资源 2511 _% y5 r7 A3 O. z5 H- E/ @ W! F
11.1.3 管理字符串资源 255
5 [" V9 K7 o' f! ^5 I8 `11.2 管理语言 260( r! a6 a! \! Y/ p
11.3 包列表 262
4 f( N9 ?( w- e" }2 i11.4 图形界面显示 263+ r5 H. a, X0 {9 g. K: U o8 k* z
11.4.1 显示模式 264
' q' ~& o) Y9 L2 B! ~' s { p, F11.4.2 Block Transfer(Blt)传输图像 267, o: s. O, n' j2 ~4 K& z3 G
11.4.3 在图形界面下显示字符串 269
# x! g$ Z/ O6 q0 d$ i2 |$ d11.5 用SimpleFont显示中文 2720 i! Z5 k( ~# g; g: N
11.5.1 SimpleFont 格式 273
7 M* o j3 u4 O; H11.5.2 如何生成字体文件 2756 I0 W2 |% D; c5 s2 P6 }% U
11.5.3 如何注册字体文件 276
) g. s5 s8 S+ [/ m( f4 |5 o11.6 开发SimpleFont字库程序 277
/ t" w1 u' _% y- w; S0 f9 c- p11.7 字体Font 2784 }5 o0 a! K$ ?3 ^& ~5 c( \
11.7.1 Font的格式 279. k( D; q( r0 d- Z
11.7.2 字体包的格式 279
0 ]5 i" U% z) |, v11.7.3 为什么Font性能高于SimpleFont 281
* [8 ?, S p; \9 S% L11.8 本章小结 284
6 y9 B3 Z* J/ c( \8 Q; B: `第12章 GUI应用程序 2851 t; K. Z" J4 y) ?! f
12.1 UEFI事件处理 285: t* t- i! Z# S' \1 j
12.1.1 键盘事件 2855 y F& H/ E( Q
12.1.2 鼠标事件 292
4 o& N8 Y# v8 g: ?. |12.1.3 定时器事件 293
2 B/ k% [5 r5 _12.1.4 UI事件服务类 294 t& K# U' u$ h) m/ E+ f
12.2 事件处理框架 297
% ~ G5 j, e, z- F12.3 鼠标与控件的绘制 302
5 T5 f1 c0 s" h0 J: X5 [; o- X12.3.1 鼠标的绘制 303
. B q$ H4 v& _* d7 }( W3 n1 p12.3.2 控件的绘制 305' F% A, \/ K! X5 u- x/ @" S7 N! }
12.4 控件系统包GUIPkg 306& A% R3 R: R Z! z# P1 C+ k! w
12.5 简单视频播放器的实现 309; m2 s# d+ C! _- j
12.6 本章小结 315: l% M7 P+ U9 A9 E$ {' M1 y! f, z
第13章 深入了解多任务 3172 ]% @6 e v3 G m* \4 G+ _! G
13.1 多处理器服务 317 C$ h* h4 c. P$ j
13.1.1 EFI_MP_SERVICES_PROTOCOL功能及用法 317 }0 q' Y+ O8 y; O1 e a
13.1.2 启动AP的过程 324
' o/ s7 ?) m4 H$ i7 b; K9 X13.2 内联汇编基础和寄存器上下文的保存与恢复 333- I8 R! [9 P* b# e8 Z7 m
13.2.1 内联汇编基础 333
" M/ R5 H$ q* N, \! c/ m13.2.2 寄存器上下文的保存与恢复 335% M# B+ b% s, \* |/ H$ T* h
13.3 多线程 336: b7 i5 S0 O9 l' @" Q8 X6 H
13.3.1 生成线程 3379 ?" \3 P% m" P, N! L) x {* i
13.3.2 调度线程 340& f% \$ d8 `. e+ H7 G9 o) j
13.3.3 等待线程结束 341# Y7 ^1 L8 l- k
13.3.4 SimpleThread服务 341
- F5 ?& ]) R; w1 M7 I5 g# u4 w13.4 本章小结 345 java8.com
' @3 y! ^. R: [5 X$ m( K! D( I; [2 ^$ {第14章 网络应用开发 346& C7 o7 W- f$ l6 ?
14.1 在UEFI中使用网络 348
9 n( W8 ]1 \/ a# I0 |7 z- v14.2 使用EFI_TCP4_PROTOCOL 350
# v7 b ~) d+ w4 |14.2.1 生成Socket对象 352! v; W* V! O; S; P4 L, B% I0 }% x# A
14.2.2 连接 3565 i* u/ b! |/ {2 K) E
14.2.3 传输数据 358
& [* Q) v! q' A' k14.2.4 关闭Socket 361! a1 }# P7 o5 R6 q; _
14.2.5 测试Socket 3627 W$ p" i5 [, j* ?2 ^* l) u. D- N
14.3 本章小结 363( S \; y) E/ X& L, \
第15章 使用C标准库 364
! J/ P z% S( @15.1 为什么使用C标准库函数 364
. o& v7 v: c1 L$ N" L15.2 实现简单的Std函数 365
/ H9 L3 N0 u) T15.2.1 简单标准库函数包sstdPkg 366) v# @- P: N) j5 y8 t3 p6 h
15.2.2 使用sstdPkg 368
3 e7 |6 Q) G9 ~0 S5 @15.3 使用EDK2的StdLib 369$ A8 E, r$ z" U
15.3.1 main函数工程 369
+ y: Z3 h' d3 }; N15.3.2 非main函数工程 374: O7 ~5 t" h" N2 q, X' U) z: k3 Q
15.4 本章小结 376
- t, f9 x9 ?- y6 U4 W第16章 Shell及常用Shell命令 377$ o2 }* O! g2 P0 F. N
16.1 Shell的编译与执行 377
6 W: G, g( \* \% N6 z9 f% X16.2 Shell服务 379( k4 ~, p* Q0 U3 m+ z- j5 Q2 D; u
16.3 Shell脚本 385
' E1 v% E# h6 Q# U& Y16.3.1 Shell脚本语法简介 385) D) C; z6 Q) X7 t- `3 y
16.3.2 自动运行指定应用程序 388 t9 q9 c. V' O5 B! z" o
16.4 Shell内置命令 388: i: V5 M( G0 @ {5 U
16.4.1 调试设备的相关命令 388
5 b4 N7 K6 o8 Q/ {* x$ o; a16.4.2 驱动相关命令 3904 e5 P4 p( J: e5 G. Y
16.4.3 网络相关命令 3920 g: J2 L3 |- f6 q- ^8 U& V9 P
16.5 本章小结 394
" F7 `; C# l2 g4 a0 E3 d$ n% }! b+ Y附录A UEFI常用术语及简略语 3957 W* K) i) b7 w! x; [3 I
附录B RFC 4646常用语言列表 397; ]! y5 O2 D# \) F! d4 B
附录C 状态值 398
6 H' N7 a4 X. H: L9 k/ z附录D 参考资料 400% m0 b- y6 J* L. p$ _
( G9 V, }2 T, V0 }" ~5 w7 V
+ V+ ]1 n5 _; q; M. i8 S& u; F百度云盘下载地址(完全免费-绝无套路):+ E/ P4 k- Q/ t5 R1 f
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|