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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。9 U& d, }/ J' `4 J! L
   希望大家一起交流交流。
8 t, {3 z3 U  ~) P$ G. J3 ~# g   这是最简单一个程序,在屏幕上显示:  "Hello World"
) I* |6 e8 l0 t9 G* j   这是直接使用gST-Conout功能实现。
& m7 [% K2 @  e, S. O: M; `* j* b   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。; v( i/ a2 O* j& R3 n+ I; R  C

3 [. d. G& ~6 \' s* E! X; {   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 06 I' J# D8 [) n2 u
   Out->OutputString (Out, L"Hello World");  //实现输出' r9 S6 `# t# x6 K: d
) A1 `" E  \- q1 R5 u/ x
   小弟不知道如何调用EFI封装好的这些输出输入库。
6 {9 z, G) `$ [8 L; W5 b   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 917

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。+ ^9 d* A6 t9 I1 O; I0 e
加入这个PrintLibLite库后还是不行。, o( X# {( O. W/ H! k5 h& Y! W; ~9 ?
编译执行不会有错,但他就是不显示。
6 `- {9 m. k7 T9 V现在我将print.c, print.h放到同一个目前,) Q% ]; u, V7 r4 \
直接写到make.inf中。就可以显示了。7 C9 o1 Q8 \9 p9 d+ f; ~- K3 o& x0 `
当然,print.h要改变一下,不然找不到函数的申明。8 r: o# S! S9 U3 f5 {6 L

; x* j2 x1 f& {明天了如何输入,但不明白为什么用printliblite不能得到输入功能。# k  S8 [1 |+ b' Q# w0 z% v2 _
如果是生成PrintLibLite的inf文件部分。
+ C- B3 k) }8 f% p用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
  \! x9 M, H0 a. y; c5 _3 [* _[defines]
) l' F+ W5 a& E% S' GBASE_NAME           = PrintLibLite
4 n) D9 w3 f/ \) B0 R/ n; V" WCOMPONENT_TYPE      = LIBRARY: h, J$ \3 K, h& g
0 f# A/ _6 [& I6 N# G: ]
[sources.common]
- V6 F4 f$ }7 _6 i6 D  BoxDraw.c
/ {# u& g. m( O9 C: W7 M# i3 C  Print.c
/ l$ y( B0 c; d* j7 e4 `- `  Print.h/ M' t; o) T, \$ o1 l/ c1 u1 @5 F
  StdErr.c
" h) _- z- X0 @5 {1 l4 K7 k' h7 o  Unicode\PrintWidth.h  j' {1 b1 P# m" }: `1 a
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 928

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz  z, {% b) n4 T% I2 n, u
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,
, I" @4 V7 l9 M: \/ q9 G可能是其他原因,显示了但没有被看到,显示到其他的page中了。
& `4 H3 Z/ s7 ]7 P$ d# X  }- U5 W重写一个print的东西,就可以输出。
/ p) E5 H1 c) P: R
. v7 w2 X" W$ g. M9 I0 z# Sprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:( o( C) Y8 p! e5 p4 ~* O
build...
9 n9 P0 g- K% W- F* H- V( r :error 7000:Failed to start command
! k" w+ U6 o8 T3 Q, ~                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
1 I# I% a; b6 J$ [1 H4 l7 }, A% g# _' O% e8 F, C: \
build...
% v1 M6 @5 z* c  : error F0002:Failed to build module
: X4 e* L% u$ {/ A         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]% B6 V3 y# O9 C7 k! x

; {' h2 m: W% b- `6 l: }  y请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下8 w! r! C) h7 b/ z, |" ]& ^
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
  |* ^  Y: Y' H2 Xokie referenced in function __Print& ?4 p& h/ O4 N1 r: m  u
libefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
' a; c: {, X3 H' `/ heck_cookie@4 referenced in function __Print0 m2 N' ?, {- h$ g2 w
D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro- N! |, }5 o- Q  Y+ b1 M1 n0 Q
r LNK1120: 2 unresolved externals: Z1 e9 v& R+ p. |2 N) n
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
7 E9 q& C1 O5 b4 d6 G2 a\link.EXE"' : return code '0x460') [3 ]4 @5 r6 t$ f5 v5 m  M
Stop.8 r5 I5 \0 X# A9 s8 v
( i- m( T& J5 q
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-13 07:15 , Processed in 0.029861 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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