以及.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兩個資料夾去找
詳細路徑設定可用
因為除編譯時gcc會去連結函式庫外,執行的時候又會去聯結一次
一般預設是去/lib 和/usr/lib兩個資料夾去找
詳細路徑設定可用
printenv|grep LD
會找到
成功執行!
不過是印出error啦,畢竟是拿別人的範例來測試,還沒建立針對自己硬體的程式
LD_LIBRARY_PATH
4.
成功執行!
不過是印出error啦,畢竟是拿別人的範例來測試,還沒建立針對自己硬體的程式
下一步,編寫自己的USB.c
沒有留言:
張貼留言