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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
( {% D  Z, U2 I0 }6 G# a7 I   希望大家一起交流交流。9 Q, w0 l& s7 N6 L* F2 k7 Q
   这是最简单一个程序,在屏幕上显示:  "Hello World"' b& L  _: Z9 o' t1 ?+ P
   这是直接使用gST-Conout功能实现。
% z  H) i- S3 I  m$ u, ~   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。: J6 Y! }6 _( @+ D6 l! x4 e

4 p0 p/ i6 j* V6 F   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
4 {4 f5 N/ L: f5 c   Out->OutputString (Out, L"Hello World");  //实现输出
. Q# R, b! c2 Z/ o/ l5 [
# G! m4 ~8 s2 ~2 Z" [   小弟不知道如何调用EFI封装好的这些输出输入库。
! ]0 ]# I9 O, @+ U   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 513

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
% s/ R! E, V; t: @3 p8 F加入这个PrintLibLite库后还是不行。
/ C+ b" b; T' Q! {. m, G2 M编译执行不会有错,但他就是不显示。
7 X* P1 S, \4 p9 ]7 k6 R2 c现在我将print.c, print.h放到同一个目前,
& r# d' C& i) G+ S. w直接写到make.inf中。就可以显示了。) J2 w* n: Y, ]
当然,print.h要改变一下,不然找不到函数的申明。7 s8 a# z2 f% s( l: I) v" x+ |

, X) t/ _' w" s" r4 }  \+ x明天了如何输入,但不明白为什么用printliblite不能得到输入功能。7 q$ h4 a; }- q; u  K' J6 I9 R3 M$ r
如果是生成PrintLibLite的inf文件部分。$ @( U+ `3 Z) D" s
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
4 U7 s) E. _1 i[defines]  C; ~2 L1 x9 b" B, v" j# U
BASE_NAME           = PrintLibLite
+ o/ Z! Z$ X% r3 [; V0 F$ CCOMPONENT_TYPE      = LIBRARY$ l- _8 P5 ?" h9 k! n  N
! W5 ?, [9 F9 q1 ]; n$ g
[sources.common]3 x: B3 ]& o$ b) R' Z0 E1 L4 |
  BoxDraw.c
1 o( g4 I( [3 }  Print.c% }( h% Y* @! u$ W) {" }: ^' T  v
  Print.h
; f) P7 R, k, D  StdErr.c" F+ U' Z8 [% G- F- q8 c2 p1 [
  Unicode\PrintWidth.h
/ ], z5 x& S% o& A2 }  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 513

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
" E! d* g: X% R0 [$ u# O你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,0 M% Q( M; W; ?2 L
可能是其他原因,显示了但没有被看到,显示到其他的page中了。: ?+ V' H- f1 n5 c+ L5 W9 d
重写一个print的东西,就可以输出。4 v+ o8 C$ W8 n+ S! }& ]( K& q6 T. b
  h* Q5 _; v- E0 ]
print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
  D4 {" Z! U) Q. Gbuild...- J0 w: \% B, B3 |
:error 7000:Failed to start command, n6 l! \: J" P! M2 U2 q
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]% A) i1 \/ V& V7 p6 n

9 F; M* l  D; m( Tbuild...
! i. d. F1 _& n$ [& k( }2 o) M  : error F0002:Failed to build module, y  N! L; r) i' B
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]1 B3 h$ p1 c1 S
; `  H" Z6 H) @" |
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
& @  T! D+ e( R2 h+ T, c- g, llibefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co5 J& E9 u$ `, S6 \0 _# F2 n4 n
okie referenced in function __Print6 [' G: u2 b, _" Q% j. f
libefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch0 B" ^$ |9 s% S7 q4 m
eck_cookie@4 referenced in function __Print
! t- c* j6 M; j  m$ LD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
  p7 y& p3 w# p2 ?) `+ ~, |r LNK1120: 2 unresolved externals
( O2 K" G3 F4 Z  R4 LNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN/ _  o6 m; q4 u! m6 K
\link.EXE"' : return code '0x460'
" y4 t6 k( Y8 w* u1 e  s* \' W0 TStop.
  \& u. r( H: o  q$ a1 A7 I/ G6 f' Y: y5 `! m. D
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 08:59 , Processed in 0.028600 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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