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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
0 o/ Q5 j9 f1 W" V8 W0 k* I   希望大家一起交流交流。7 ~3 `& ?* J; q
   这是最简单一个程序,在屏幕上显示:  "Hello World"& f% s" g. E' u" T1 i
   这是直接使用gST-Conout功能实现。, L$ K) Q. F! q( M4 y  l
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。, k' W4 e' E6 i( ]' U
) l8 k( Z( O; H
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
# w5 D7 P: k% X   Out->OutputString (Out, L"Hello World");  //实现输出/ O, D5 r6 S0 U5 x/ v
% I9 B4 A% Y0 D- n
   小弟不知道如何调用EFI封装好的这些输出输入库。/ l7 n% I5 D) m( G: j
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1583

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。2 X$ |% b+ A% D' h! B/ N  _
加入这个PrintLibLite库后还是不行。8 k7 h" |% u8 Y8 t
编译执行不会有错,但他就是不显示。7 T0 j* S) I7 w0 R! T
现在我将print.c, print.h放到同一个目前,1 I8 B& m+ _+ ?+ H+ V$ b
直接写到make.inf中。就可以显示了。
" _, e8 W: a' @6 a5 r当然,print.h要改变一下,不然找不到函数的申明。
7 V. ^) J7 ^7 s8 o0 l% _% M8 U3 }3 n
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。% b  c3 V% J" Y6 x
如果是生成PrintLibLite的inf文件部分。
6 L$ E4 ~# f% ^5 M用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
, e( k  r- F3 E  o# V. S2 H* [[defines]( t: B9 N5 e: k% A/ r
BASE_NAME           = PrintLibLite: }& O# \: E! @, a3 ]& I( z
COMPONENT_TYPE      = LIBRARY: Z! t) _: u( ?& n  o5 w( Q3 ~+ e
) M7 m$ B# D+ C6 Q2 Z6 J& p8 c
[sources.common]: c3 x2 U# d" V1 \9 e
  BoxDraw.c
3 y6 O, k/ n: v# ^- [  Print.c
3 C  L" A3 ]) X$ I  Print.h
: s% G) S/ [* }. _0 O; n. t  StdErr.c
5 k7 \0 h. [6 U, l3 P0 M  Unicode\PrintWidth.h
; E- [0 n. |% l4 t5 L6 W  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1546

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
0 N$ }& o! R! I1 M% d8 K) [你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,5 G: s6 g: ~, y% N/ e8 _. @; G9 f7 D
可能是其他原因,显示了但没有被看到,显示到其他的page中了。- D; |+ d5 {% y3 c
重写一个print的东西,就可以输出。
4 h. C$ |+ }1 u0 S1 V1 E# n7 C& J3 v" C0 l1 J" e
print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:4 P$ b, i/ u2 F% v* e
build...
3 t! o; ~5 ~# S :error 7000:Failed to start command
+ L6 F1 u* ~+ O( c                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
5 V8 a8 @2 @+ y. N5 H9 A4 Q: g( P- G2 T
build...
- h8 Y# Z7 o# _6 v: v# u  : error F0002:Failed to build module0 V) ~4 X0 K2 q
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
  r- V) ~& `# B  b4 g7 M' b) r; _; H% ~! S# b; {% z, l" |
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
% }1 Z9 h5 I! b: x& j) ~0 C6 K' mlibefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co) l9 f, U+ t$ Q( {5 A
okie referenced in function __Print9 ^( e/ |9 ?+ S& Q+ L, D
libefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch( C6 O$ ~8 O1 a
eck_cookie@4 referenced in function __Print
) h' \: F) r! yD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
* S; o. W! B( f( {6 V' a$ mr LNK1120: 2 unresolved externals. r- x" L) y8 W' \
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN, A% s2 k* i5 N0 m2 p
\link.EXE"' : return code '0x460'
# r5 Z+ v$ y- {, Y. h7 C, Q: gStop.
- D  a+ P6 x2 h" k: B& P, z, g
4 `1 D0 Z+ n9 I' i7 m" K6 @请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-19 12:17 , Processed in 3.362160 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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