25回答

0收藏

UEFI原理与编程 PDF 电子书

电子书 电子书 2539 人阅读 | 25 人回复 | 2023-09-20

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! W
4 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
关注下面的标签,发现更多相似文章
分享到:

回答|共 25 个

我正在学习

发表于 2023-9-23 07:10:04 | 显示全部楼层

我来白漂了 多谢

明朝宝剑

发表于 2023-9-23 10:12:18 | 显示全部楼层

路过,收下了,不错的论坛

世事几许

发表于 2023-9-23 17:13:36 | 显示全部楼层

真心不错 收下下

软糖酸酸甜甜啦

发表于 2023-9-24 08:11:44 | 显示全部楼层

白漂来了

独出山林

发表于 2023-9-24 11:44:46 | 显示全部楼层

良心网站,力挺

请叫我灬葛子楗

发表于 2023-9-24 12:53:48 | 显示全部楼层

真的无套路,大赞

细雨离云

发表于 2023-9-26 08:26:44 | 显示全部楼层

真的无套路,大赞

王后

发表于 2023-9-26 18:47:42 | 显示全部楼层

免费资源 真的无套路

赵曲明

发表于 2023-9-28 13:33:24 | 显示全部楼层

学习java,就选java吧了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则