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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。! |  O  R0 m" _2 ^1 e$ t: m
   希望大家一起交流交流。
; Q( ~' [2 `0 K* h+ ~1 E& w   这是最简单一个程序,在屏幕上显示:  "Hello World"
% n& k1 X5 j: g$ M, w& E   这是直接使用gST-Conout功能实现。) ^3 N$ ~& m, g3 z) K9 g
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。
. A: _( ^8 P4 Z$ |9 W, R; v8 y% j$ J4 c6 W2 S
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
$ J# g+ r, l/ c% P9 G8 [. G  [* U   Out->OutputString (Out, L"Hello World");  //实现输出
+ k2 S: ]% p2 j$ E
  u  C- p( |1 O   小弟不知道如何调用EFI封装好的这些输出输入库。
0 F1 i: m7 T1 ^- _   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 970

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。: M+ M0 d+ R5 P
加入这个PrintLibLite库后还是不行。
# i' f; {5 s  y8 I; m' F" p编译执行不会有错,但他就是不显示。' s: z4 l2 P" \% i0 W3 ~9 }' K
现在我将print.c, print.h放到同一个目前,2 P6 |) }' y' p# B1 D
直接写到make.inf中。就可以显示了。
3 z  w$ I9 c# P当然,print.h要改变一下,不然找不到函数的申明。5 N, p6 D" o4 e3 _; T; |

) C4 |" ?4 s- G/ I# v1 S( U, x( k" L明天了如何输入,但不明白为什么用printliblite不能得到输入功能。) O+ F$ E) X. j' a6 C
如果是生成PrintLibLite的inf文件部分。
. w8 U( ^1 @. T用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
8 u: x1 J" ?& \. k. `[defines]
- `% q$ `0 \& lBASE_NAME           = PrintLibLite
3 M! V' \: }+ @! j) P7 k8 _COMPONENT_TYPE      = LIBRARY# i# L" Q1 B( c/ i$ {
4 W# ~6 l- e  H6 }& h3 t
[sources.common]6 Y; v1 ]9 R) X# p
  BoxDraw.c
  p1 }9 g2 C2 K' p' j$ `  p  Print.c
; [( y# p" X, a  r  Print.h9 d* _& Z& _. \  I& r; D
  StdErr.c5 y8 a5 |# o% s1 j  l+ D8 ~6 z
  Unicode\PrintWidth.h$ S( O: s( g( w8 C
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 980

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
$ S' \% |. B# l: {你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,3 n9 {1 E: f2 c0 m
可能是其他原因,显示了但没有被看到,显示到其他的page中了。
& [- {0 a; I% d* O重写一个print的东西,就可以输出。& r+ U9 ?- I3 N! o$ H, F

& ^4 a3 K* M; ]- O% oprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
9 c, ?  C3 L  hbuild...
. ]2 I- {% d& V :error 7000:Failed to start command. ?7 b( I4 w: O" C+ ]6 r
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
: `+ j% X$ F4 i; n2 W
3 o& g) W: r1 Y9 s/ dbuild...
1 Z+ K' f9 {6 w5 E& {  P% _  : error F0002:Failed to build module3 x5 r& X0 F" {- [! ~7 y
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
1 c8 `" S/ |( {; n) N& Q" L/ {2 q. r* r) Z$ V& K, Z: a
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
/ }- A/ Y3 D0 {libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co- ?4 V6 U" o4 Q* A7 y
okie referenced in function __Print
7 }) [& Z' M$ E/ a4 A+ olibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
  C& D$ }1 I8 P- K& eeck_cookie@4 referenced in function __Print! |- Q/ B' N5 f& J3 ~! E+ x& L
D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro& |7 V2 P5 v, Y
r LNK1120: 2 unresolved externals
# j) Z! z  D/ E( lNMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
. L2 B. @1 U8 n$ m9 {# l7 S) f; N6 m\link.EXE"' : return code '0x460'& U4 V1 e9 C& s& Q3 T/ T* b, y- Y
Stop.. W. Q$ y; ~4 T" B

, D; ?+ |1 u1 u# b% l3 p8 }8 d请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 14:05 , Processed in 0.081433 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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