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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。; s& e: }. v3 ]) _
   希望大家一起交流交流。
4 f9 `" H. Z  H1 w/ W/ s" v   这是最简单一个程序,在屏幕上显示:  "Hello World"8 m$ M; D" c  j: C: h4 C. S
   这是直接使用gST-Conout功能实现。1 L. @; y/ N% Y# h+ g# ]  I
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。
9 r1 f! A+ e- {$ [2 R7 }
6 W6 `& [/ n$ _2 X$ c   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 00 Z/ t5 b+ c3 ]
   Out->OutputString (Out, L"Hello World");  //实现输出- q  t2 _. E$ d& E
  t* x9 T% \* G
   小弟不知道如何调用EFI封装好的这些输出输入库。; K4 s% S! o& V3 n2 H9 h2 w
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 965

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
& Q: d7 Q2 y, `1 c加入这个PrintLibLite库后还是不行。0 X, D. T9 y( |) r
编译执行不会有错,但他就是不显示。" {3 `( R, ?+ g" s+ E, Z
现在我将print.c, print.h放到同一个目前,; D  a1 ?9 ~5 M7 r1 a. b: b! H
直接写到make.inf中。就可以显示了。
! z& A4 C0 x1 x+ u- M: c  a当然,print.h要改变一下,不然找不到函数的申明。
: I' X, n& i8 q, R: g+ B+ \6 S  v5 \6 D- v
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。. Q" `% H+ s+ d' G  p6 T# y
如果是生成PrintLibLite的inf文件部分。
8 \9 T2 E, w) p0 U& S用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。! C  w; ]- x/ a' U) P  e( Q+ |
[defines]% F9 b  ~3 h: C4 g
BASE_NAME           = PrintLibLite
! n, o2 |5 w# k& |* x# t! \9 GCOMPONENT_TYPE      = LIBRARY
: P: i0 W. `# v; \: y8 b/ U$ z, W
* Y5 I* W+ z+ |[sources.common]
  N' t0 y& b6 Z0 `& K7 U  BoxDraw.c7 i6 e0 b0 Z& c
  Print.c
# C% k% d# |/ c1 y, U& i1 M3 \3 u  Print.h
) j; K/ X0 |% Q( b  v, c6 {7 [0 B) ]  StdErr.c
) A; D* t+ G$ P  Unicode\PrintWidth.h4 n0 }: W1 T% h" }0 b9 ]
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 975

EFI Print

回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,  A" w5 a6 M7 U8 c% T
可能是其他原因,显示了但没有被看到,显示到其他的page中了。4 x- n6 ~( Y9 X$ g( e+ f
重写一个print的东西,就可以输出。
5 k. ]  t# b* z5 h' L' z. Y# w9 s7 V* \
print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
4 @$ s! n  a1 y! |8 G5 A7 ^build...6 d- t" ^- N* X$ ?6 {  ]
:error 7000:Failed to start command
7 V: @# \: Y$ P- L! n6 A5 J. |$ ?6 s                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]- K. J( w4 k# \& S# ]- u

6 s1 I' G; Y( P+ h" Fbuild...0 Y3 M9 Y# m) a5 t0 `9 V: ^* I1 N" w
  : error F0002:Failed to build module. ~% |7 V; D! ^
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
4 [6 D: v9 w$ a9 Q+ a$ [7 \
5 }2 a$ D: k! q- ~4 K4 ~3 K请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下! q/ d( b  j7 M+ X
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co6 ^# e' ?+ f$ |, S3 L5 ~. r0 a
okie referenced in function __Print
# X" _% m% ^/ Alibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
# e: ~2 q7 ]; ]eck_cookie@4 referenced in function __Print' t. i. ?# H1 c/ j+ I
D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro+ @! m2 ?7 u) b; g. t  \4 V1 d! ^
r LNK1120: 2 unresolved externals
& a/ `5 P' `( e: GNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
! D! H7 z: f7 k' E/ @1 V1 B\link.EXE"' : return code '0x460'
7 b+ R; {% T- vStop.
/ V8 _1 r4 T! h, h6 v9 u  ^
# L7 B; l5 _! a, \4 y2 r请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 07:52 , Processed in 0.304671 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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