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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。) y: s; t9 m( l' c
   希望大家一起交流交流。) b$ y# }# J- X+ L
   这是最简单一个程序,在屏幕上显示:  "Hello World"3 V  v" [2 ~, m' m2 C
   这是直接使用gST-Conout功能实现。1 X' @% ?& ]$ _
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。
2 S/ f) k$ h; i4 F7 ?( Y. D8 P* g+ X7 c/ c; H$ c
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
6 Q% B1 m" {' @0 {- i2 K( L* T6 y; N   Out->OutputString (Out, L"Hello World");  //实现输出
& S' k3 d& c* @6 f4 G1 h
5 a! G: h- C/ V# C1 ?8 ^/ U   小弟不知道如何调用EFI封装好的这些输出输入库。. \  X3 Z% S6 o) y2 [- V
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 960

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。- T8 Y6 z) k( a- p
加入这个PrintLibLite库后还是不行。8 n5 e9 B" r7 n& U! |2 O
编译执行不会有错,但他就是不显示。
$ T1 Z8 b+ U& f' d6 W现在我将print.c, print.h放到同一个目前,- d% y, `2 r3 @) C: q- J& x9 z
直接写到make.inf中。就可以显示了。
4 a8 |+ q6 w$ t; }6 u当然,print.h要改变一下,不然找不到函数的申明。
# [. `) u' {! b
$ G. J# f/ h0 ]明天了如何输入,但不明白为什么用printliblite不能得到输入功能。2 @$ g+ i. C5 _& R
如果是生成PrintLibLite的inf文件部分。
+ ]$ P2 l( u# d. F+ f! T用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
! M' Z* Z7 M0 D; @( c" @[defines]
* s2 L9 L# ^. P9 |5 B  EBASE_NAME           = PrintLibLite6 M( t2 e& s1 E) w7 H  V% C
COMPONENT_TYPE      = LIBRARY
3 K9 w. b9 s5 @  F0 e# r3 |3 k; c6 y9 s1 F9 Y' z
[sources.common]" |5 l$ n  ^3 \
  BoxDraw.c
4 c1 b3 F7 R! H2 _1 z+ Z, ?; r( v  Print.c4 w5 Z! Q% c$ k5 Q% A6 v$ \
  Print.h
) z: w$ j7 D+ Y; O& |: Q  StdErr.c+ s4 b: K, |8 O$ L& A4 t
  Unicode\PrintWidth.h
$ L4 Z# B. y; I! o1 ^  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 973

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
8 h1 p! V+ ]8 F: P7 O2 W你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,
- N1 l* k. a, P0 D2 u& c8 J6 t- \可能是其他原因,显示了但没有被看到,显示到其他的page中了。$ `$ W" f9 h, k# J' V/ a
重写一个print的东西,就可以输出。
; z7 ~2 Z, k1 B8 }9 ^  |
6 S  |9 Q. l# `4 a! }1 qprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:9 u4 r: O" F8 ]# }. ^
build...  a- E7 s' c) ~( f' ~. N* l: y
:error 7000:Failed to start command
* A/ V0 L5 F% ?2 u) U/ k0 ]                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
& Z; c5 L* b# P/ O
) Y; Y* j+ G5 o* {  zbuild...* ~+ K# R  N# P( [
  : error F0002:Failed to build module
0 m8 p$ h" z5 b8 b         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]  ^* b9 |$ H2 g# T$ k9 o  M9 M
! f9 p/ ]2 ^4 Y# K
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下- [" y! d! L/ Q( V/ C/ J/ d( R
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co1 b  U4 d# n2 k2 j
okie referenced in function __Print
4 e8 t# ^' O& I& h# Y9 T; ylibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
- _. ]8 W! e7 f) }' G- Eeck_cookie@4 referenced in function __Print
- n+ o6 |3 U/ c$ ~/ @! @D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
( u9 n( M# h  F; g( ^4 }& xr LNK1120: 2 unresolved externals1 h1 [' H, `4 ]- X0 n7 n1 G7 d- m
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN" a2 n( L7 u8 r8 W
\link.EXE"' : return code '0x460'% X- ?& A$ S2 U' [" D' F% C
Stop.
# m* [) z( a. |, s* H
5 ]% D8 u" R" Z+ X: B7 I请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 01:41 , Processed in 0.140318 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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