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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
3 D5 c/ ~; F2 [   希望大家一起交流交流。, r& O- E) f4 |! H9 U, C* b1 ]8 T, l+ l7 _4 J
   这是最简单一个程序,在屏幕上显示:  "Hello World"
8 `  t7 u) Z9 i% ^& o0 ~  l% c   这是直接使用gST-Conout功能实现。
) P+ U3 U1 u& ?4 w6 b* R   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。
. a' e3 |; _3 o$ j  J
9 h0 H9 ]7 O; Q. |' @   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 00 L( [' ^5 c, t
   Out->OutputString (Out, L"Hello World");  //实现输出/ `% X* z% B8 ]
8 N* r& I. g, r3 o0 _6 S; k
   小弟不知道如何调用EFI封装好的这些输出输入库。9 ^5 Z: Y  L7 x. M0 I
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1394

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
7 G  n! @* s. j  a: Z加入这个PrintLibLite库后还是不行。6 s" c- D8 G7 P. L% C- V- L
编译执行不会有错,但他就是不显示。
5 R. C$ ^& y& s* z4 `" j* d现在我将print.c, print.h放到同一个目前,
8 f0 |1 c4 N: D3 [% Z+ F( t直接写到make.inf中。就可以显示了。% X* f1 R( h+ B6 L- _5 E
当然,print.h要改变一下,不然找不到函数的申明。
% v5 x, L  v& Y& o6 ~) d5 Y9 K) S
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。
0 q( s0 H: @$ \( z( _如果是生成PrintLibLite的inf文件部分。) G2 g8 B: V  |% f7 q2 Z$ b
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。% C* Z8 l8 O3 Y- x/ f
[defines]
4 X* F2 c' I' x2 P$ O: hBASE_NAME           = PrintLibLite4 T0 b. G: i$ _6 X+ V$ O
COMPONENT_TYPE      = LIBRARY
" w  E2 B. Q, |3 L5 O6 {6 R2 n, W& B& K0 ~
[sources.common]
0 R0 V/ P7 j3 [1 g" J# p* L8 ~  BoxDraw.c
! Z- O" [' a. c/ h5 }6 d$ j" n  Print.c
$ M3 o& k2 p7 e4 d' W+ C4 b  Print.h
$ U& [& K2 P( `7 L0 w  StdErr.c" V- ~& j) T5 V5 C- S
  Unicode\PrintWidth.h
: a7 t. b- z9 `# N/ s0 L: L, d  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1371

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
1 f1 @% L. T! a9 j& j( ?你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,7 L. @" o, N9 e) y
可能是其他原因,显示了但没有被看到,显示到其他的page中了。
0 j- j7 @% Y0 j+ }1 A重写一个print的东西,就可以输出。9 J7 ]9 q8 V2 \# G* z8 [' J: s

) R( j9 j- M# }( n& P* o# J  ?print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:6 w  n) `$ G" }  w) i! ^
build...
9 _" S) l% z0 v* h4 b :error 7000:Failed to start command
$ m5 ^# _. f( U: i8 d: X                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]& X1 x9 g# {9 k: V7 U% E9 Y

" R& e7 J4 U( h* [% nbuild...6 X  _* t0 p* Q7 x' ^& p
  : error F0002:Failed to build module1 `! w3 c% v3 i
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
0 H& I+ F5 d1 d0 {2 g/ w$ g6 Y# f
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下# ~" t' T- u# v6 Y" M+ ^' J! R% y
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co/ w  D% R7 {$ ?" X
okie referenced in function __Print
3 L0 ]& O- _: K$ ^: Q: V0 P8 plibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch! ]* t- A8 ]- {6 _
eck_cookie@4 referenced in function __Print
" \: N. `4 }# L+ Y( o8 a- lD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
( L% \, |/ F$ Qr LNK1120: 2 unresolved externals
  r5 U3 I/ G5 `4 S- w5 mNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
0 |1 b' q5 t8 ?" h\link.EXE"' : return code '0x460'
) Y1 d5 U! z9 u4 K# p" eStop.4 i" {1 O- ]8 j$ ?, T

" @+ R' Z0 \# I请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 05:23 , Processed in 0.183088 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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