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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。
/ i3 F' |# c5 J   希望大家一起交流交流。" D' m1 @* x1 w! O% v, @8 `; R
   这是最简单一个程序,在屏幕上显示:  "Hello World"; C( V* H( h9 B- K
   这是直接使用gST-Conout功能实现。% M% I7 f- f3 i7 }* T' [) N
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。0 i" S5 e, Z  G
' Z7 L8 Z6 ^$ l7 b0 |! T
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
7 T8 o: D' o% d( R3 v' R- j, Y   Out->OutputString (Out, L"Hello World");  //实现输出
8 ]2 W# a9 L- I! z$ j% F6 t1 o; T9 }( G
   小弟不知道如何调用EFI封装好的这些输出输入库。
, K! G. s6 h: T- v4 r   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 559

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。' q9 g2 h1 c' j4 u, D, D" g
加入这个PrintLibLite库后还是不行。5 l# r6 n  ^. L% Q3 ]+ K+ w
编译执行不会有错,但他就是不显示。
& ]1 }" C, e( F& q7 Y# D; y现在我将print.c, print.h放到同一个目前,
+ v" |5 t! Q% D' ~, S& C直接写到make.inf中。就可以显示了。4 e9 _* i/ H+ P# d5 K9 k
当然,print.h要改变一下,不然找不到函数的申明。
' _/ Y5 m* R8 N- C& K
) a3 o' d0 x& w3 T明天了如何输入,但不明白为什么用printliblite不能得到输入功能。
4 Z, r) y  n7 a, N2 B+ k& C如果是生成PrintLibLite的inf文件部分。$ b3 x( Q. S! `& z6 i
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。
, }* G; H: L! ~7 K1 U! p& u[defines]2 I( |5 {; E) }9 l5 l
BASE_NAME           = PrintLibLite3 S1 c2 ^8 O0 C8 ~
COMPONENT_TYPE      = LIBRARY
$ q) L+ W6 I7 ?6 Q% X# ]
% u! O0 w8 _! ?3 Q1 Y5 \4 F' A[sources.common]
/ x0 Z) q+ e- f* I- q0 s/ F* ~( Q  BoxDraw.c
! Q- h& g+ n3 B! ~  ~( U. Y  Print.c. q2 L2 ^- j" v) v# Z3 N& n6 m+ {
  Print.h
0 }, z# z& _3 Q! \7 Q  StdErr.c8 r2 v+ ?) S: I  g! O, c
  Unicode\PrintWidth.h1 j/ y) h$ z4 M3 b- v6 }, O
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 551

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz2 @! L! M5 _) T' y8 n
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,- O! O% n) R% g- L+ A
可能是其他原因,显示了但没有被看到,显示到其他的page中了。" R# p; s4 P! \1 L$ ~
重写一个print的东西,就可以输出。! K5 R- D) C. _* D5 t2 d- F! ^
5 [$ N9 [3 O" Q* e
print()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:) G$ e9 R4 ]% x  r- V7 V
build...4 n! N/ y* y! U9 R$ N9 Q* [* P2 `
:error 7000:Failed to start command
* z/ {( T8 x0 w                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
: |. |& p4 i' m! G5 s- j3 |2 I0 ]8 e% R2 l
build...
- ]8 ^$ A/ X6 C  : error F0002:Failed to build module  [& b1 a& K7 B% K% r& x, ^
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
7 ]' N/ P5 t; g! P! e7 f: D9 O4 G/ x+ D
请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
5 Y0 n, }. q8 e' mlibefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
  d& s1 Y# \6 k. yokie referenced in function __Print
4 Z% t9 U/ @" B0 u; O3 t* dlibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
4 b: X# O8 F1 }! Y. xeck_cookie@4 referenced in function __Print/ i3 f3 I/ e. i1 z8 I; C2 v
D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro& z) n5 U% ?8 G
r LNK1120: 2 unresolved externals- K/ z! Q9 G. m# `+ X9 [3 _6 u
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
  A3 H! f. b7 @. W/ `' ^\link.EXE"' : return code '0x460'+ z- j, U+ e/ A
Stop.7 @; w- F+ C5 s; X) j" m! c6 [

/ c! g$ p  D5 T' \) E请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 21:02 , Processed in 0.060114 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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