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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
+ U# D6 f& |' m8 q. d   希望大家一起交流交流。  m8 P* L+ \% k( @5 x* V4 z
   这是最简单一个程序,在屏幕上显示:  "Hello World"! S' Q9 T0 y& H" [# x5 Z4 V. k
   这是直接使用gST-Conout功能实现。
6 a( U9 n: M/ m9 I1 H   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。, h5 ~* p; n- c1 o2 r" g: b

+ \! g0 d; }# U# q   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
8 `+ s7 i& k6 r3 o6 N   Out->OutputString (Out, L"Hello World");  //实现输出4 J8 c) i( y5 e7 s
# z- O1 W7 {3 Y( i, k
   小弟不知道如何调用EFI封装好的这些输出输入库。
# M2 k7 M, B0 N5 d6 c   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1518

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。- G& {$ c$ l, m; p8 M5 Q& q2 K+ b
加入这个PrintLibLite库后还是不行。, i) x9 V$ Z- ?2 u9 Z  H
编译执行不会有错,但他就是不显示。/ B; a3 V9 Y; h( O
现在我将print.c, print.h放到同一个目前,
1 V* X6 m& Y: v7 f% C4 v! c直接写到make.inf中。就可以显示了。' o; F' \3 z+ V5 \% `8 o6 ]
当然,print.h要改变一下,不然找不到函数的申明。6 l1 J" m5 \  n$ H) o5 r
7 ^* C, q- b  F
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。$ y0 A9 J7 e% n- x. i+ S
如果是生成PrintLibLite的inf文件部分。% b& ?$ N9 V5 k, _, y& s
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。! y9 C0 W8 i& N- Q! J# J0 F
[defines]
5 I- ~& a1 y% b- G% l6 j& cBASE_NAME           = PrintLibLite4 X9 Q; D  g3 _
COMPONENT_TYPE      = LIBRARY8 D9 Q; Z0 i! X3 A2 r+ g1 n6 z
5 d% q$ ~- \1 o5 S2 o6 N6 k6 ~2 O' {
[sources.common]
' ^" V/ P+ h0 i: a1 e) ^8 m/ R  BoxDraw.c
1 d3 [$ m, v/ f. @  Print.c
( {" o0 G# m; ?3 j! N9 a& G1 {  Print.h
! U1 ~$ @6 A) x4 c  StdErr.c
/ G# L7 A" R. j& i  Unicode\PrintWidth.h6 \. y: a# I: v2 i1 O- W. @- H
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1486

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz. `% ~0 {( X9 K% @% K
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,# b& ]+ h1 ~. D( V; o
可能是其他原因,显示了但没有被看到,显示到其他的page中了。0 N8 M8 W5 Z' |0 }8 f
重写一个print的东西,就可以输出。- L' ~3 U" n- s: j& J( Q

( V% S& e) Z) t1 K5 F) Xprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
5 n8 h' ?9 r. g" kbuild...
' }4 e* k# @) b9 H. } :error 7000:Failed to start command
+ b; {, p+ O! _  q  G. S; {$ }% g9 C                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
: y4 e( t" ?# Q- P3 Y) X: f- Z/ |* W2 \, ?0 R, E6 `+ A9 h' M
build...5 z1 E& ?" f' w: M- K2 R- C
  : error F0002:Failed to build module0 ?3 Y7 l* M% h( d9 ^. P2 S( Y
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]: e( [; B' @# u) r7 ^* V  A: M& a$ b
0 ]- f* l/ n! |0 ?$ G* o5 I
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下( d( l6 N& W7 l; \- B- j' T1 Y
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co9 g8 f7 T8 w# a( f7 ]/ j
okie referenced in function __Print
4 k* o9 ]  e! A  llibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
: H7 ]2 A) ]. a5 B$ leck_cookie@4 referenced in function __Print
; {( r9 H+ C- L6 r, _/ Z6 p! [  SD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
2 Q. `$ o, }6 Ir LNK1120: 2 unresolved externals
- X3 X8 V& Q" a" D6 U0 `NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN3 w5 _. B8 W1 U! [$ l
\link.EXE"' : return code '0x460'
3 ^* A+ E  O3 h' X0 w9 JStop.
6 p+ i/ Z( F0 g3 s$ f. ?6 R: i# _' z; Z4 [2 S! e+ A, A
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 23:38 , Processed in 2.671205 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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