Analytics

2010年2月25日 星期四

安裝libusb開發套件for DMA2443平台 (2)

將編譯好的連結檔放到該放的地方
以及.h檔去該去的地方...應該是cross compiler裡某個位置吧?






安裝資料夾共有如下之檔案
bin/  include/  lib/


./bin:                                                                         
libusb-config                                                                  
                                                                               
./include:                                                                     
usb.h    usbpp.h                                                               
                                                                               
./lib:                                                                         
libusb-0.1.so.4          libusb.so                     libusbpp.la                      
libusb-0.1.so.4.4.4    libusbpp-0.1.so.4        libusbpp.so                      
libusb.a                     libusbpp-0.1.so.4.4.4  pkgconfig                        
libusb.la                    libusbpp.a                                              
                                                                               
./lib/pkgconfig:                                                               
libusb.pc            




1.
把這些檔案複製一份放到SD卡內
因為板子的檔案系統為CramFS
所以利用SD來當host主機和target開發板之間的仲介


再把安裝資料夾include/中的usb.h usbpp.h兩個檔案放到/usr/local/arm/3.4.1/include/libusb(原本沒有這個資料夾)
[後來真正的作法其實是把include加到kernel source code的include裡,而且放在libusb資料夾中好像找不到,就把它移到直接在include/之下]


2.編譯USB_test.c程式

# arm-linux-gcc -L (編譯時,libusb/lib資料夾的位置) -lusb -I (kernel原始檔的include裡) test_USB.c 
3.將程式放入開發板執行
但要先添加環境變數:到板子上執行

export LD_LIBRARY_PATH=$LD_LD_LIBRARY_PATH:(執行當時,具有連結檔的位置,我是放在SD卡):$LD_LIBRARY_PATH 
此處所加入的位置為執行時.so檔所放的位置
因為除編譯時gcc會去連結函式庫外,執行的時候又會去聯結一次
一般預設是去/lib 和/usr/lib兩個資料夾去找
詳細路徑設定可用
printenv|grep LD
會找到
LD_LIBRARY_PATH

4.


成功執行!
不過是印出error啦,畢竟是拿別人的範例來測試,還沒建立針對自己硬體的程式


下一步,編寫自己的USB.c 

沒有留言:

張貼留言