Search This Blog

Wednesday, June 29, 2011

Library Compiler Error - don't know how to make

遇到 don't know how to make LibraryX.lib 的情況,可以用以下的方式排除
1. 確定LibraryX.lib 在 AAA.dsc裡面有去定義這個AAA.inf
2. 若在build這個AAA.inf的library的時候就遇到compiler error,請先解決這個compiler error (可能是LibraryX建的方式有問題,可以參照其他現成的library做法)
3. 若你在BBB的檔案要引用這個LibraryX的時候,請先確定在build出來的temp目錄層底下,有長出LibraryX.lib的檔案。
4. 若有,請在BBB.inf裡確定以下兩點
[includes.common]
  $(EFI_SOURCE)\(Library_ROOT)  //要指定路徑在library那一層
[libraries.common]
  LibraryX
5.記住呼叫的Libray名字不要打錯,不然就會造成complier "don't know how to make" 的error

Monday, June 27, 2011

SATA及USB介面傳輸速度比較表

SATA版本
頻寬
速度       傳輸一部6G高清電影
SATA 3.0
6Gb/s
600MB            10 (理想值)
SATA 2.0
3Gb/s
300MB            20 (理想值)
SATA 1.0
1.5Gb/s
150MB            40 (理想值)



USB版本
頻寬
速度       傳輸一部6G高清電影
USB 3.0
5 Gb/s
500MB            12 (理想值)
USB 2.0
480Mb/s
48MB              125 (理想值)
USB 1.1
120Mb/s
1.2MB             5000 (理想值)
 USB 1.0           1.5Mb/s        150KB              40000 (理想值)

Wednesday, June 22, 2011

How to make an EFI library?

1. 在inf檔裡修改
[defines]
  BASE_NAME       =  HelloLib
  COMPONENT_TYPE  =  LIBRARY

[sources.common]
  Hello\Hello.c
  Hello\Hello.h


2. 把你需要的library function加到hello.c及hello.h裡

3.在EFI driver去引用HelloLib的時候要去修改以下的檔案
   AbcDriver.inf
   AbcDriver.c


4.AbcDriver.c要加入
   #include "Hello.h"

   用extern的方式加入library的function名字
   並在你的function去呼叫你要用的library function即可

5.AbcDriver.inf要加入
[includes.common]
  $(EFI_SOURCE)\Library\Hello  <== 指到放Hello.h的那一層目錄

[libraries.common] 
   HelloLib