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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
8 G( S# U! n  F1 {1 S   希望大家一起交流交流。( e# F. a" x, {, s- |: B
   这是最简单一个程序,在屏幕上显示:  "Hello World"
2 C; R1 O; i$ z2 R   这是直接使用gST-Conout功能实现。; g- Z. \+ e3 C. A! w; r3 X8 J: u* ?
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。' R) `6 [2 z( D
+ U9 Q) t# G; d: w
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0( ]/ Z" y% b/ L" j5 z
   Out->OutputString (Out, L"Hello World");  //实现输出
1 _& {  U2 w# O/ e  M& R+ t5 U
   小弟不知道如何调用EFI封装好的这些输出输入库。
  `4 p& _5 z. n- \9 _   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1510

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。) ~* p1 q6 z$ `2 w
加入这个PrintLibLite库后还是不行。& P: c6 ^: I8 G' Z1 `
编译执行不会有错,但他就是不显示。4 j6 u( L1 m% `$ J( Y. ]
现在我将print.c, print.h放到同一个目前,
, s" p+ t, q) L1 |$ a- t! \直接写到make.inf中。就可以显示了。) Q7 N  r7 e# W
当然,print.h要改变一下,不然找不到函数的申明。
( g/ n; v& F- X* K# F! W
0 U/ O3 @1 ?& G明天了如何输入,但不明白为什么用printliblite不能得到输入功能。* N/ t7 b! v& r$ C" \/ Q! k
如果是生成PrintLibLite的inf文件部分。
' O6 S0 T2 G; R1 p. E/ ]5 F用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
6 x/ u% J; o7 |. C4 I[defines]
" i6 r& K% ^8 A% D: @( j. O0 hBASE_NAME           = PrintLibLite
: J3 P# c! j9 p! E4 p- b3 ZCOMPONENT_TYPE      = LIBRARY. F& I: `; k4 g" x5 @

# R5 L4 q9 |. v: V[sources.common]7 ^/ t! |  g' y( @1 a, S$ W
  BoxDraw.c/ D& A& U2 g0 n
  Print.c1 K# f" {: [* K* m4 H
  Print.h) J4 X$ c- }$ L5 L- J" e
  StdErr.c
6 c5 \0 v4 e: s5 p- R% O  Unicode\PrintWidth.h% @% u( s7 |3 `9 p# u5 B" `
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1477

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz+ b- {9 W: o7 `' ^& q9 S
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,5 t8 y% _1 a$ g. h. e4 v9 R  v
可能是其他原因,显示了但没有被看到,显示到其他的page中了。4 B7 H1 j7 g* c
重写一个print的东西,就可以输出。
0 G: K, z& w5 i3 F
, e! `7 q- W, @! D$ r9 @8 X) a' wprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
1 M: H% _. s/ P' \! `7 Y9 Ubuild...
# J3 }8 _- V: G6 L* @& @ :error 7000:Failed to start command3 d6 Y0 m7 d' J! m- U5 k
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
* C1 `5 z  b% l) \( @
& Z6 D; N8 t1 K6 x! J, X# Hbuild...
8 O+ b* {# D2 ?  : error F0002:Failed to build module
& X# J. Z6 ]; N! ^         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
5 K8 X4 b/ n! e1 c% R6 ]" @$ o# O
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
' m2 y  H3 M8 m) j1 f/ O8 klibefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co+ t: V7 u/ \2 Q/ I  G2 z$ r! F/ G; R
okie referenced in function __Print
/ O: q* R- D' W5 R& o8 n; rlibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch' v7 m: i. y7 I( ^" j5 C; k* ]4 @) M
eck_cookie@4 referenced in function __Print# J2 o/ B1 z9 b0 J) ?
D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
4 F4 O9 Q- Y; U, W! P- F9 tr LNK1120: 2 unresolved externals  p0 M' l, @- ?
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
/ j; S" e3 J: k3 _2 u( v\link.EXE"' : return code '0x460'
3 N* k$ @; w2 a3 f! eStop.
. o+ I. |: g  S  r( U( K9 s, C$ y6 `% }7 @
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-16 06:48 , Processed in 0.045306 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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