25回答

0收藏

UEFI原理与编程 PDF 电子书

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

Java电子书:UEFI原理与编程   PDF 电子书 Java吧 java8.com% V' V  c' T( a2 x* Y6 X

1 _5 @0 `% K( [3 O* w+ y; z/ S+ H( Y作者:戴正华出版社:机械工业出版社出版时间:2015年01月 : {* t) f! M/ [% q/ Q

& J) s/ n7 w5 o7 v$ C1 B4 _' w$ w- ?编号:166-Java吧资源免费-X0001【Java吧 java8.com】
4 F- N5 |1 ^( o' P6 t. Q8 o
! e3 E0 S. C9 u) S

+ Q  k0 X8 Q. S# ?7 [
: r5 P  O/ U1 V+ U5 u
目录:  e7 w( t) u4 w; Y& q2 x* g
    7 z3 z# F, k, T4 ?  ~. x/ E

    0 \1 N2 S$ y0 d
    1 m: C6 l) U' n% S& R7 `前 言8 y8 |1 w4 i. [6 Q" ^
    第1章 UEFI概述 1
    ! {& M5 t1 j! e# N; b+ `1.1 BIOS的前世今生 1$ m9 C6 V$ V( F6 h% X
    1.1.1 BIOS在计算机系统中的作用 1/ P9 r7 X# A( c
    1.1.2 BIOS缺点 2" |2 Z4 D# g' ]
    1.2 初识UEFI 2. j6 W- G9 q) J
    1.2.1 UEFI系统组成 3
    / G& Z, K& S/ Q, R1.2.2 UEFI的优点 4) j) x. Q9 v$ q& [7 m
    1.2.3 UEFI系统的启动过程 5
    . a: c" M0 t5 d. e# @& A1.3 本章小结 12% _/ W$ I/ Y/ f) V1 S4 t% c
    第2章 UEFI 开发环境搭建 149 N0 R* Q  j# N3 g% o7 E9 A
    2.1 配置Windows开发环境 14: E) O8 N6 \' u# U/ D: R- ~4 k
    2.1.1 安装所需开发工具 15
    8 M: Y& Z( w- a2.1.2 配置EDK2开发环境 15  p" S. F% K8 |  A
    2.1.3 编译UEFI模拟器和UEFI工程 17
    $ ]+ Q6 c" ]$ I5 k0 b7 q2.1.4 运行模拟器 19
    - o" ~- x5 i$ F' [# L2.2 配置Linux 开发环境 21
    / ^+ v! I, y: j2.2.1 安装所需开发工具 22
    9 e8 |2 G% A: t- @1 F: q2.2.2 配置EDK2开发环境 22  T$ W% ]1 q; O3 Z7 f- i
    2.2.3 编译UEFI模拟器和UEFI工程 23
    8 O' q2 f+ v( H( S3 m) t2.2.4 运行模拟器 24- K. z  Z' O' }" F- S
    2.3 OVMF的制作和使用 251 M: W8 {7 U! o2 F' J1 J$ a$ W
    2.4 UEFI的启动 27! E3 a  O6 q; G5 m
    2.5 本章小结 28, r. F5 G; |9 _/ }4 [- A
    第3章 UEFI工程模块文件 29
    + ]7 `( O4 u( G5 g3.1 标准应用程序工程模块 30% i" s8 Z+ o2 m2 |
    3.1.1 入口函数 301 C5 R2 `" u' A4 w8 G5 @
    3.1.2 工程文件 31
    " P) a! m+ a/ F. |/ q  @* E8 d3.1.3 编译和运行 37
    ) Y8 _) G8 ~6 p6 b" {3.1.4 标准应用程序的加载过程 373 m8 w. |' l5 k) N2 e; ^. A5 @
    3.2 其他类型工程模块 437 ?6 d/ e/ P- S! d7 \
    3.2.1 Shell应用程序工程模块 43& p4 C" _. i2 n- y) W5 _6 l
    3.2.2 使用main函数的应用程序工程模块 46$ B* @5 {. I, [7 I  e7 h% g  X
    3.2.3 库模块 47& L1 ^& H+ ]) h
    3.2.4 UEFI驱动模块 491 }9 c  w( e4 t4 o; l( k
    3.2.5 模块工程文件小结 50* X% w6 Y. p7 a! {; s
    3.3 包及.dsc、.dec、.fdf文件 516 L( {) U5 Z6 w; m! n
    3.3.1 .dsc文件 51
    " l, x: P8 M  |& r: u* _6 e3.3.2 .dec文件 56! L& u0 ^3 W2 a
    3.4 调试UEFI 59
    5 S1 i! v5 P6 `- e4 D& ~. D3.5 本章小结 611 r" |6 d5 k* A. i) @
    第4章 UEFI中的Protocol 62
    + V4 O, w+ r7 {) f0 J. Z4 a4.1 Protocol 在UEFI内核中的表示 647 k  y8 c9 ^+ L; ]
    4.2 如何使用Protocol服务 65" `; T# t5 e  E' C; u/ Y; [  j
    4.2.1 OpenProtocol服务 66
    3 G7 N4 g& A: c9 h. I* u4.2.2 HandleProtocol服务 67
    # l! F. g/ ?" b4.2.3 LocateProtocol服务 699 C/ ~0 l6 W! u9 E
    4.2.4 LocateHandleBuffer服务 697 H$ ^5 {& r. A4 _* G) V7 b
    4.2.5 其他一些使用Protocol的服务 71. P2 B  [7 y8 i6 b$ B- J; v, D
    4.2.6 CloseProtocol服务 72
    4 k$ M' i, O9 e5 b$ [/ {/ a, t4.3 Protocol服务示例 73
    ; M% z9 z0 @4 b' [4.4 本章小结 75, ^2 o- o1 x. E+ ]! F
    第5章 UEFI的基础服务 760 F% X7 g3 P) i* G. p% M
    5.1 系统表 76! {0 ?$ y& u) l3 ~
    5.1.1 系统表的构成 77
    ( r* Q" t$ K4 C: m( z5 [6 q# Q5.1.2 使用系统表 792 _7 k6 L/ x4 H% F3 A+ Q
    5.2 启动服务 82' @9 z' Z" B0 d, ^0 L' x: x
    5.2.1 启动服务的构成 82. [% V- B1 U6 }( V
    5.2.2 启动服务的生存期 91
    9 U$ v$ }, Q' r: E/ R. g5.3 运行时服务 93
    ' F- P" d2 k9 h. i  L. N' }5.4 本章小结 102
      n& W; w! n. @. r7 @6 T第6章 事件 103
    - o9 a: k- m  ]9 \4 h6.1 事件函数 104! ^. t, a% q  [+ {" Z  F- d
    6.1.1 等待事件的服务WaitForEvent 105
    ! r4 M0 ^7 y' T! g- i) g4 T& ]6.1.2 生成事件的服务CreateEvent 106
    4 g+ y  k7 i6 P6.1.3 CreateEventEx服务 110+ _4 Q/ d# {. V3 I& r* Q* l
    6.1.4 事件相关的其他函数 1121 Y. c/ g4 I5 o; t% t$ V% d
    6.2 定时器事件 113
    ! M8 i# b  n7 y2 s  G6.3 任务优先级 114( u5 b' z9 u) }# o) j9 ]7 D0 X/ c
    6.3.1 提升和恢复任务优先级 1154 Z% U. H: E8 E
    6.3.2 UEFI中的时钟中断 116; c! M8 m6 k# a" k/ e) b! t( h
    6.3.3 UEFI事件Notif?ication函数的派发 126
    0 k) w) I8 Y8 \( z2 z2 U6.4 鼠标和键盘事件示例 127' b, [, i% [& i6 M& y( l' V
    6.5 本章小结 1287 f  ]& \/ Y1 M" g7 O8 Q
    第7章 硬盘和文件系统 129
    ; z. q, s1 q5 b$ B9 i7.1 GPT硬盘 129( }' Y( z2 i) \7 C0 w
    7.1.1 基于MBR分区的传统硬盘 129
    % s- k, p! L  `4 G8 ~7.1.2 GPT硬盘详解 130
    ( h% a# q: O$ |$ F8 \8 A4 r5 p7.2 设备路径 1340 b& D5 N! e1 L) _2 M3 I
    7.3 硬盘相关的Protocol 1396 `' A: F/ c! n4 ^. }' S- b
    7.3.1 BlockIo解析 1404 ]/ e8 a0 a/ n% P0 u
    7.3.2 BlockIo2解析 142! Z; |. }- [* [  l$ C$ y1 N
    7.3.3 DiskIo解析 146$ d+ M/ u3 i, o: o9 U5 S5 P5 H
    7.3.4 DiskIo2解析 147
    7 _6 j+ y: l2 O( v* v7.3.5 PassThrough解析 150
    & K. U! y/ e4 I) q6 B3 Y7.4 文件系统 1521 K# g- |8 ?* u7 e0 z% n
    7.5 文件操作 153! w, c1 t7 J/ w  c9 M! Y
    7.5.1 打开文件 154
    " i  t! z9 W; \) }0 f4 |6 y7.5.2 读文件 156
    ' A: I, x9 m2 m; D4 J* w7.5.3 写文件 159
    # R' L' f8 A9 D+ K' y# n$ i. j( |7.5.4 关闭文件(句柄) 160& t( k( t% f8 v3 L* _1 ~
    7.5.5 其他文件操作 1609 \3 h( P9 W# n- _% R/ D
    7.5.6 异步文件操作 162
    2 f1 h+ V5 p7 ]: ]& I/ Q7.5.7 EFI_SHELL_PROTOCOL中的文件操作 166/ e+ ^; r! o) R
    7.6 本章小结 170
    + J6 w3 ^2 t8 k# T, [5 a第8章 开发UEFI服务 171; S6 x5 c4 W) Y$ Z5 p
    8.1 Protocol服务接口设计 172% D6 d& b  Y1 x" N; D  a
    8.2 Protocol服务的实现 174
    + o4 i# c; V# H7 f8.3 服务型驱动的框架 1787 C: w3 y9 p- S
    8.4 ffmpeg的移植与编译 179
    ; a# x8 C' p; v' v1 L8.4.1 libavcodec的建立和移植 181
    % V' A& l8 F5 J! Z" }6 R: r9 z! z8.4.2 其他库的建立与移植 182  T9 f. K) x7 p# A
    8.4.3 在驱动型服务中使用StdLib 186
    " W! N. b3 \+ N5 Z8.5 使用Protocol服务 188
    . t5 G1 T) ^9 F9 Y! B* p% Y' \8.6 本章小结 190
      M, ?6 G6 r$ C- v3 q第9章 开发UEFI驱动 191  w( M/ {) X, l, }4 o
    9.1 UEFI驱动模型 1929 i; G) h7 E- o+ k7 `
    9.1.1 EFI Driver Binding Protocol的构成 1922 d0 O7 C" b8 O( H
    9.1.2 EFI Component Name Protocol的作用和构成 196( v6 K! H' l4 ~  H- p* O5 K; \; e
    9.2 编写设备驱动的步骤 1976 K/ E. o4 v; G3 {! a) [
    9.3 PCI设备驱动基础 199
    3 E" o2 o( [. E$ t# a0 r9.4 AC97控制器芯片的控制接口 202
    / G/ o- K, k. A3 g; k$ [# j) S9.5 AC97驱动 206
    1 A( f) i1 l" x0 X+ a3 q, j' x9.5.1 AC97驱动的驱动服务EFI_AUDIO_PROTOCOL 206+ ?+ }* B% V8 l3 ^
    9.5.2 AC97驱动的框架部分 213
    6 g* }3 A0 c( |5 y: j( f0 h' u9.5.3 AC97驱动实验 220
    # k! K7 s$ u0 S1 d; b0 s6 S1 C9.6 本章小结 221+ ]1 @$ \/ u! Y& g
    第10章 用C++开发UEFI应用 222
    / n8 P! T) o5 n' n3 x/ P0 y; ?* M10.1 从编译器角度看C与C++的差异 222
    ' K" [' G3 O( Q( v' m$ U6 @10.2 在EDK2中支持C++ 224
    6 Z$ H4 v. I, q! @; s10.2.1 使EDK2支持C++基本特性 224" Y% ^. ?1 o6 D- B$ l
    10.2.2 在Windows系统下的程序启动过程 226
    $ H& f' a3 T/ R+ ^% j- q& b) V10.2.3 在Windows系统下支持全局构造和析构 229
    7 o. V% o! z: }  N0 W! H10.2.4 在Linux系统下的程序启动过程 2314 g; F! f! o; M. y2 ]- Y" N, O  C
    10.2.5 在Linux系统下支持全局构造和析构 240; W5 d& s# M- @; L' L
    10.2.6 支持new和delete 242
    : R8 L9 O! I& o0 D) ]10.2.7 支持STL 243, g  h" }( Y1 a% q8 ]. m' x7 Y
    10.3 GcppPkg概览 243
    $ L2 B9 k7 l' U5 @2 [& T10.4 测试GcppPkg 2462 k* p6 k2 X2 j- O& G! S
    10.5 本章小结 248
    : [9 V5 b& W) {3 W0 s, k第11章 GUI基础 249
    " ~, w) ]- \+ g( |" C" m0 r. y11.1 字符串 249" ?9 B3 F& T4 `; \& `
    11.1.1 字符串函数 249
    - }& ~5 r! j. m5 H11.1.2 字符串资源 2516 I6 @% e0 y2 C
    11.1.3 管理字符串资源 255
    1 A5 g2 M0 I/ \2 \0 O6 x11.2 管理语言 260
    . J0 G0 Q" Y  W. V11.3 包列表 262
    ; I. e1 i& ~; {# Y( e8 Z( [3 r11.4 图形界面显示 263
    6 |- A3 p, F- ?8 L5 q- H4 s& @7 q1 t* a11.4.1 显示模式 264) s1 T1 p- {$ a* \. L
    11.4.2 Block Transfer(Blt)传输图像 2671 [: c& E5 Y" u* ^8 q
    11.4.3 在图形界面下显示字符串 269
    3 V, v; S) W- _" S' w4 y11.5 用SimpleFont显示中文 272) P* e* Y+ i- o8 U
    11.5.1  SimpleFont 格式 273
    6 q+ A' P+ B+ j11.5.2 如何生成字体文件 275
    & Q6 W8 D, g" O# C1 M- y11.5.3 如何注册字体文件 276
    , E" P* v. l4 w( N8 ?! q3 P1 k11.6 开发SimpleFont字库程序 2775 P* j. |% B/ O" H
    11.7 字体Font 278) Q, I1 _# I$ `4 L+ W% g* ]" y7 Q
    11.7.1 Font的格式 279
    ( Q: I' q* G, w11.7.2 字体包的格式 279. _  J" }/ a0 \2 u
    11.7.3 为什么Font性能高于SimpleFont 2815 k0 M- g* F2 a( [& a3 A" F
    11.8 本章小结 2841 T2 f2 g: k4 C3 k0 a5 g
    第12章 GUI应用程序 285( E! p# k; l7 k6 E9 _! f
    12.1 UEFI事件处理 285
    ) z# G4 T% r% C, ^& s8 ^$ m# y' ]12.1.1 键盘事件 285
    2 k9 _% t& |& Y4 S12.1.2 鼠标事件 292
    3 |3 M9 y7 L/ c, u8 S2 G6 \) E9 @12.1.3 定时器事件 293
    $ F) a2 @" D2 I) N1 f12.1.4 UI事件服务类 294
    1 ~$ I: t) |" P: X" Y) J. Q12.2 事件处理框架 297/ x0 @+ p& X4 a
    12.3 鼠标与控件的绘制 3026 D8 }7 N& Q# n" |
    12.3.1 鼠标的绘制 303
    & j8 d4 A8 F5 `3 W12.3.2 控件的绘制 305
    $ B5 e. T+ T3 n% T- v( X12.4 控件系统包GUIPkg 306& v$ D% E4 K2 V* \
    12.5 简单视频播放器的实现 3091 j' e9 U2 \2 I
    12.6 本章小结 315
    $ m% {% c; p" o" q2 D  ?5 C. u3 y  z第13章 深入了解多任务 317
    ) ~# J# a5 @  m13.1 多处理器服务 317
    5 b- E; Z9 S- [: t8 }! }$ Z13.1.1 EFI_MP_SERVICES_PROTOCOL功能及用法 317. b5 d6 P7 g- f( N
    13.1.2 启动AP的过程 3247 E8 q' }, H+ ]6 Z
    13.2 内联汇编基础和寄存器上下文的保存与恢复 333
    ) ~( C( M3 a! V3 M13.2.1 内联汇编基础 333( T/ \8 |) w; I9 Y
    13.2.2 寄存器上下文的保存与恢复 335
    : |/ p" t8 t$ X: a8 [& m" i13.3 多线程 336
    1 o1 I" d' I: C! L% \3 e13.3.1 生成线程 3372 g2 T( D% e5 V7 l5 V5 Q0 t6 i
    13.3.2 调度线程 3409 a9 A9 n, k! ^/ y+ r9 d7 _
    13.3.3 等待线程结束 3417 T' k; f0 ]/ ^+ B% Y& ]
    13.3.4 SimpleThread服务 341
    & J5 [- A, k- [0 o) c3 f1 ?! _6 k* n; ]13.4 本章小结 345 java8.com
    5 _" Y/ c2 |- N, ]% @2 H第14章 网络应用开发 346, B3 H1 y4 i6 {, x
    14.1 在UEFI中使用网络 348
    0 U0 b1 ?! f6 k! K* `# K14.2 使用EFI_TCP4_PROTOCOL 350/ m" i5 n5 D/ ?! @% ~3 T6 m# \" r
    14.2.1 生成Socket对象 352
    ) ~" Q  }8 D/ [, T/ @14.2.2 连接 356
    / {8 G' r( D; T1 U+ p; T14.2.3 传输数据 358
    % K, T/ C5 \* I, b14.2.4 关闭Socket 3614 Y, x1 k8 X4 y7 T+ b! ?! f, E$ R
    14.2.5 测试Socket 362
    # b- |& `9 Y8 j# Q3 i14.3 本章小结 363
    " {$ X1 D, U& g1 F5 ^+ ~$ x第15章 使用C标准库 3646 l& H2 N8 i7 N' [. D' J
    15.1 为什么使用C标准库函数 3647 a: ]& P1 S( v& j7 D! ?% R
    15.2 实现简单的Std函数 365
    0 m4 T* q; Y- U2 q8 b15.2.1 简单标准库函数包sstdPkg 3662 Q! L. K. b2 A# O2 m# ?: u. r
    15.2.2 使用sstdPkg 368# L1 z/ Q8 y; q+ \
    15.3 使用EDK2的StdLib 369' F9 d+ `) g( c( E. b6 W
    15.3.1 main函数工程 369
    4 o7 Z  G+ s2 m. G15.3.2 非main函数工程 374
    & t/ ?2 F+ y; L; o  Q  {15.4 本章小结 376
    4 ?+ l3 d3 |- r第16章 Shell及常用Shell命令 377" N! y* P: X* g7 _# |. W' h
    16.1 Shell的编译与执行 377
    ' a+ n8 Y8 n3 h' W16.2 Shell服务 379
    / b& w" R. {2 {9 i# `8 c16.3 Shell脚本 385
    * p# Z9 b; O1 m' ?16.3.1 Shell脚本语法简介 385$ L# y( C# n  M% i2 h! l5 D
    16.3.2 自动运行指定应用程序 388& _/ T2 {  a9 L; {# m
    16.4 Shell内置命令 388
    * {4 R2 g1 A/ V16.4.1 调试设备的相关命令 388
    6 |6 [4 }- l9 [. G+ A0 ]7 z16.4.2 驱动相关命令 390
    % e! ~. z2 a2 \4 Z  G! ~9 c2 Y16.4.3 网络相关命令 392
    % M8 `/ \* W, b" x16.5 本章小结 394( u$ u+ J5 R: h! g0 A* a$ i' u) I
    附录A UEFI常用术语及简略语 395
    . p! e! ?- X6 q8 W6 p, h# A附录B RFC 4646常用语言列表 397
    ( z. j2 S9 p6 A附录C 状态值 398
    ' u6 f" A2 O$ C% r$ @: [8 H  v7 e附录D 参考资料 400# g& c  e. ]" T, }6 a
+ i& H: s6 \( e# S# Z& x4 X. B
' n; D, y5 d8 B
百度云盘下载地址(完全免费-绝无套路):
游客,如果您要查看本帖隐藏内容请回复

9 S4 w$ N' F; i* E; G0 y% y

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

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吧了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则