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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
* [  M! U! G; e0 r0 D5 Z   希望大家一起交流交流。
; h& _+ m+ h6 [   这是最简单一个程序,在屏幕上显示:  "Hello World"- d2 f2 A8 D* I) Q' V
   这是直接使用gST-Conout功能实现。
  s# f+ s2 b0 P' z) o2 Y9 X   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。
3 Y: N- _; X: @: I- p5 r; q
1 B7 a; w( W, x7 e- E   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0& e$ ?; _: f% K5 o9 M3 a) ^
   Out->OutputString (Out, L"Hello World");  //实现输出
4 {. Q6 ?: y+ K3 n  T' ?  G
7 ?5 F* K5 p) \8 d7 f) j3 {   小弟不知道如何调用EFI封装好的这些输出输入库。8 B+ U$ _$ S! S  X& B* H* l
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1545

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
, P& @) C* _& q1 |加入这个PrintLibLite库后还是不行。
1 @% \+ a& G) l  g6 r6 g编译执行不会有错,但他就是不显示。! c9 M9 `& D0 f' O( J. o' I/ w7 c9 \
现在我将print.c, print.h放到同一个目前,
# E; N- D% H  z% c( n! w- u6 L( K直接写到make.inf中。就可以显示了。
0 H) h/ y  t& h当然,print.h要改变一下,不然找不到函数的申明。  G9 Z) C0 F1 ?3 B3 e% s
- k1 A! q, }8 w% }: h+ {) v
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。2 K" v1 ]: e! d# d
如果是生成PrintLibLite的inf文件部分。, I2 x# V' N2 Y4 i- P
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。/ k. v( R$ Q: g& q6 h8 c
[defines]; \2 L+ d% Y" W
BASE_NAME           = PrintLibLite- E9 _" v% w2 C3 F. j8 p  l8 p
COMPONENT_TYPE      = LIBRARY8 L5 p" E* v/ k% E3 e. e5 ?

3 i7 q' t4 {$ j, f% d[sources.common], l, X$ x/ ?( ^3 ^4 J0 o! ~$ q
  BoxDraw.c
: ^* O4 q* V3 T2 |  Print.c8 O+ Z0 X; K% L% ~$ j/ R
  Print.h
' W0 p9 l5 u# [9 P1 E9 ?5 w  StdErr.c
7 m# S" A/ G% F' V$ ~# K  Unicode\PrintWidth.h
0 h* z1 K! S5 r, B3 H  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1550

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz$ e! v' Y: f: Q/ }2 `3 A# R3 U, w2 }/ H
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,
5 w5 H' O/ x' i& b2 a, p* j可能是其他原因,显示了但没有被看到,显示到其他的page中了。
# X- ?) e1 W% I* `6 Z9 r重写一个print的东西,就可以输出。" t' Y0 C  ]* V  T. s
1 t$ y7 Q& {3 K* l6 S$ |- [- e
print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
9 A8 u1 z* K6 {8 Q4 ibuild...4 q, @. P: I) u/ U0 D" A
:error 7000:Failed to start command( c% }% U& T7 |3 V1 ^: F
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]; W3 D+ W5 t! H* n& ~

! V6 P' T7 d, Z/ Ebuild...
& A" d: f* _0 E, n' {+ K, V8 A  : error F0002:Failed to build module3 C) x! y$ M; o, e6 v  }' a
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]1 c0 j4 S* ]8 |0 g1 s
; v, E1 Y" g; k2 H2 u: a
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
% e: ^; P/ N# C& xlibefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
5 _. h7 B' {4 `okie referenced in function __Print" V+ L* e( E, w% B0 P% z: Z
libefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch; n7 Z/ K+ V$ i0 E& G
eck_cookie@4 referenced in function __Print
6 Z7 b6 q. [7 _9 MD:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
2 w% h* j- w( j, D8 f+ {, W2 Tr LNK1120: 2 unresolved externals4 q" z+ A, W: L- q( \+ _
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
; p  {: I$ s" q7 h8 [% w( s1 N5 I: H  Z\link.EXE"' : return code '0x460'( G, r, r, |+ O9 I3 i3 ~
Stop.4 s4 O; G# ~7 v6 c& R1 D

: F& _, K- j4 T2 H' U请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-3 21:37 , Processed in 0.408099 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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