找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 28063|回复: 6

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
( J8 M& i1 H! v4 P* r0 P   希望大家一起交流交流。& R) `; C, F: y# z9 n! z! V0 t" v& r+ Y
   这是最简单一个程序,在屏幕上显示:  "Hello World"9 F/ K; _3 Q* b: m: Z9 j
   这是直接使用gST-Conout功能实现。  [% Y) x$ P% `" }0 A: Q1 L7 f: o' N( [
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。: P! Q/ h4 ?) F

9 S4 [. K% l- g4 x   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
5 M2 ?. F4 N; \2 J6 F$ x   Out->OutputString (Out, L"Hello World");  //实现输出
! D$ U, r/ @9 K! j3 U% c! d! }+ {! a& P- q, G" B
   小弟不知道如何调用EFI封装好的这些输出输入库。
6 n, e$ u5 Z- \   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1138

EFI Hello World

发表于 2008-6-24 16:38:48 | 显示全部楼层
PrintXY是EfiPrintLib里的东西,看看你的程序的inf文件,有没有把EfiPrintLib加进来。
回复

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。- J- O# i6 j  s6 H* ~' n% F4 z
加入这个PrintLibLite库后还是不行。# c" U# M- o. A" i6 K' V& y
编译执行不会有错,但他就是不显示。
$ v/ k0 _4 w2 v) ~$ v现在我将print.c, print.h放到同一个目前,& a' [- b: U3 w% k( e) I
直接写到make.inf中。就可以显示了。( ]- d( ^' r2 u& X
当然,print.h要改变一下,不然找不到函数的申明。5 @$ o$ B4 \1 `3 Z5 a3 w8 [' d
8 g  G( }) p, ]) ~/ T& d
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。5 L5 ?$ k+ u/ C3 }" v
如果是生成PrintLibLite的inf文件部分。. u+ F5 a; E, ]1 d# d* o
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
" y7 d+ ]- }# J4 a[defines]
& B# M* f7 L# DBASE_NAME           = PrintLibLite7 W! ]- Y. t9 C  f0 y8 U/ S
COMPONENT_TYPE      = LIBRARY5 f$ s: L: g- p9 |

, \; p2 G5 t" s& X[sources.common]
4 {# Z: Z/ R+ D5 q/ n, T9 B  BoxDraw.c5 m/ q8 s) Y: q4 {: n) @
  Print.c
7 P  g8 S* l9 {: F7 O  Print.h1 j" W. L; j; ]2 I' F
  StdErr.c. h( u5 c0 X! ], p
  Unicode\PrintWidth.h. U- E5 K; \* U1 y3 x& n
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1157

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz7 z; A* f- h0 q. A$ s& G
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,
# g& f8 Y2 z& B+ q) O' c可能是其他原因,显示了但没有被看到,显示到其他的page中了。. y2 ~& W* i& A6 J
重写一个print的东西,就可以输出。
9 v, N# \6 Q+ _9 J+ u9 p  x
- Q5 H$ @/ D$ c% a% hprint()是在grouph,可以正常使用。
回复

使用道具 举报

发表于 2012-4-25 16:51:59 | 显示全部楼层

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
1 C( n( @3 q* R' U1 p( a; h, _8 k6 Wbuild...
. {; u  A+ K5 Z  z! o9 H :error 7000:Failed to start command, [8 E/ Y) M7 A& I: Q7 s. ]" P) T
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
9 V; G/ w9 u4 O: ^8 m. \3 ~  M  w. B
build...% h# ^/ S" r$ q$ J
  : error F0002:Failed to build module
4 ~& M. Z( o; k6 W         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]- b: M. d# b0 }# u% \

1 }( B9 D; _+ |请指教啊
回复

使用道具 举报

发表于 2012-4-28 07:56:32 | 显示全部楼层

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下. i% i2 B" @' Z5 M/ \7 g
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
0 D* I2 U9 O6 X! g1 Bokie referenced in function __Print
5 G$ N% O: I, N3 S% o9 ?libefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
  Y  @; f! I  H$ m9 B0 geck_cookie@4 referenced in function __Print
, M$ J7 u  x- a/ j) zD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro; E; a- l, t( n. x1 O
r LNK1120: 2 unresolved externals
  _5 I" ~3 @+ G8 |. Z, x: Y: iNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
: B! o2 d, E% m' ^. h0 ]+ r$ Z\link.EXE"' : return code '0x460': d4 K, b5 S6 X/ `* s+ P
Stop.
8 f5 K9 V; ]2 c0 t* G6 S& k  k9 f. t/ O# M. ]0 Z' g" k) t; m. E. `8 K
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-2-1 04:16 , Processed in 0.065394 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表