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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。1 u- D& _( N. D' ?' E* T* M+ i
   希望大家一起交流交流。
* H4 W7 r7 Q" f6 c   这是最简单一个程序,在屏幕上显示:  "Hello World"( W8 p! L, ^# f+ c4 W: v6 P( _
   这是直接使用gST-Conout功能实现。
& d+ V" j6 X# ~+ \! o4 W   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。  A9 f+ ]; U0 ^/ B; V0 `

1 g5 t0 c" w" ?3 z+ u) u$ h5 c   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0$ V$ ]5 o8 ^& ]! e4 l! ~  M' c5 _1 v
   Out->OutputString (Out, L"Hello World");  //实现输出
) d" h& v7 t2 a  j, B3 ?# Q# s
   小弟不知道如何调用EFI封装好的这些输出输入库。/ d% H) z3 H1 H2 W: T% }
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1470

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。3 ?. Z% c, L* f- u  s$ _# y
加入这个PrintLibLite库后还是不行。3 Z' H3 g" o, ^; l4 @, ^  C
编译执行不会有错,但他就是不显示。( R$ o2 v( H- f: t4 W! k
现在我将print.c, print.h放到同一个目前,
  w) I6 f; M  o, c- s  K5 B; i4 N  l直接写到make.inf中。就可以显示了。
! \  W$ a# t* R, |. x; r当然,print.h要改变一下,不然找不到函数的申明。0 m, f/ R0 m  j, Q

! ^' ]. D5 J# m  g明天了如何输入,但不明白为什么用printliblite不能得到输入功能。
( k4 B2 I. `4 {* t" [  R7 M, b' S如果是生成PrintLibLite的inf文件部分。) {% f1 e) c3 ?# X! U7 x% e
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
4 d2 O- A1 M% i# |+ X! M[defines]" Z+ w% I7 P7 x. H( H
BASE_NAME           = PrintLibLite
& M& O. F- m, J4 r* B* L5 P& VCOMPONENT_TYPE      = LIBRARY
. @0 L$ B! O6 ~* P  Z$ t; h2 b( G' A% T# z2 h; O0 C% H$ [
[sources.common]
& c2 Z9 s) M, d  A  G  BoxDraw.c
' I4 v% v. d0 a. P( r& W7 H  Print.c
! {' t7 b0 Y( Q0 \; j  Print.h
5 N. j, B+ O. U* P2 T  StdErr.c
/ W- r* j& u  o# o3 t  Unicode\PrintWidth.h
  z$ m9 `, C, M* M! p  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1438

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
0 a$ k! z6 L' q你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,
. ?: u9 y. m2 D/ r) W可能是其他原因,显示了但没有被看到,显示到其他的page中了。% d7 M) u2 l1 D0 [1 ]9 Q
重写一个print的东西,就可以输出。
$ V3 S- Y8 c" a2 i
: V4 ?9 e0 p$ nprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
& P+ m6 Y. L1 D9 A. pbuild...
; c' [% \  g" r :error 7000:Failed to start command
. Q; }9 j( y! g8 t: f3 G3 ~                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]. |5 k: P* S/ Z. f6 T# \' q% ]- U- p

% X& H) V! l- ?; bbuild...
+ k. l5 X2 l( D3 n$ f  |  : error F0002:Failed to build module' u( P; I8 K; y; e) O
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
- j; D& l, ]0 V7 N% b& K. T! w* e0 t& y
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下9 t: a) E4 {7 ?/ |
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
% w6 h' Y! o9 f3 w* C. N) i7 qokie referenced in function __Print
6 r6 P! f7 `7 w4 n: k. q$ f4 E! Elibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
# l9 \' R' t+ q$ ]$ r4 O& Neck_cookie@4 referenced in function __Print
$ R: l0 Y5 u; L( B8 PD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro2 z  f& [$ s7 E, i
r LNK1120: 2 unresolved externals
( S- m$ p" l! t6 f$ SNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN, s* T8 r  v: f( y
\link.EXE"' : return code '0x460'
; n9 q9 k7 [+ y. q! b, Z( H5 m/ iStop.* c7 A+ o4 m, O' u5 @
  X- M9 _; z5 I- K3 b1 N2 I- R  P
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 18:24 , Processed in 0.071816 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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