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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。  q9 p" V0 a( F$ b# F6 Q$ y* E6 N3 G
   希望大家一起交流交流。; F' S/ O* i5 x) h5 ^9 k
   这是最简单一个程序,在屏幕上显示:  "Hello World"/ T. X7 f  U7 g  M
   这是直接使用gST-Conout功能实现。
& Q$ ~2 c' x+ g8 {. w/ `   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。
7 v& h, g% R/ n. N1 |8 B# Q
. o5 M5 x8 r' u+ D* O* W   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 01 m- }4 P2 q* M, o" f0 L
   Out->OutputString (Out, L"Hello World");  //实现输出1 k& D5 {$ B& M* k7 |/ G% n* P

9 e3 Y. {% K+ v6 @9 c: d& Z   小弟不知道如何调用EFI封装好的这些输出输入库。9 y- T) l' ]6 f' E$ ?. \
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 892

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
0 ]6 O& S: j, L5 m2 \# d! R* Q4 d加入这个PrintLibLite库后还是不行。  [. _. U& N% ~/ f" }
编译执行不会有错,但他就是不显示。
: J; V4 z1 F; a; {* G: {$ I" E; z5 }现在我将print.c, print.h放到同一个目前,
& l7 ]" [# Z& b7 Z# D8 s6 x直接写到make.inf中。就可以显示了。  X8 ^; V% w* I
当然,print.h要改变一下,不然找不到函数的申明。6 r* \- l# M, Q8 [- B/ }
; J4 \$ A5 _, J3 i7 B
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。
; T# r5 W6 ^  F: t如果是生成PrintLibLite的inf文件部分。
% L- y4 f7 ^1 U9 w& b" d% Y/ T  l用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
+ ~6 V) Q3 @# }[defines]
8 Z# E$ P: B, {, B1 OBASE_NAME           = PrintLibLite
2 q' P5 n* l* \4 kCOMPONENT_TYPE      = LIBRARY( W" V4 T) [7 w4 E
( E# E8 b2 D- Z6 }" U5 V
[sources.common]
+ E0 K7 B7 G5 ?2 ]; f. `5 }  BoxDraw.c- d/ c" N& A& j8 u4 z8 u
  Print.c
- F. z4 J2 r7 `! e0 e# d  Print.h9 ^1 {7 B& Q: w; A, x" Z
  StdErr.c3 F( Q4 L, c1 A; f: ~
  Unicode\PrintWidth.h& z& w, m5 g  A5 b: R
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 900

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz) y' `* x; f# J% `; H
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,. e4 n  Z$ I1 S, h
可能是其他原因,显示了但没有被看到,显示到其他的page中了。6 ], \& o0 g. n& T$ j/ `: I! o
重写一个print的东西,就可以输出。
4 O6 \7 V3 V+ G: t2 b6 j! S2 J6 W7 V" L0 J* |
print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:/ B; L9 r& ]& t! r! C0 x5 r4 ]
build...
$ @* [9 V1 O) @% G; n7 Y; ?1 _ :error 7000:Failed to start command
6 d  r9 [6 s. W- p9 t% }  ?                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]3 h- M/ |" a% T: L6 V: L- F6 ]) z

# A- l+ }  H  ?4 j( Wbuild...6 b$ s/ b8 R0 W2 {& i
  : error F0002:Failed to build module
" U) x! r' Y6 O) {; c* j         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]7 `5 h& C' Z0 ~; K& Y6 e
4 j: d. a" _6 B% q/ u4 g! H
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
3 p' s% b: o& i5 y/ e' _libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
9 R4 K* h" _) _) Q: L1 xokie referenced in function __Print
) O' z& D, C0 w8 W8 Ulibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch9 c9 h2 ~+ V# l3 j* M
eck_cookie@4 referenced in function __Print
! ~& ~7 Y& n# l5 s" D( ~D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
% R! Z/ y) Z! Tr LNK1120: 2 unresolved externals
0 o( j- T0 U. X4 B8 [3 bNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN& K) [( s) ?2 h% L
\link.EXE"' : return code '0x460'
9 I: F* _+ }! v' {; \5 K) {6 B$ E. ]Stop.+ R  i- X2 }3 x2 z( u7 {1 _+ z

( L7 \: D7 w) @  Y2 j5 h) w# T请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 02:02 , Processed in 0.042750 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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