在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Kinect移植到嵌入式ARM平臺上面

            Kinect移植到嵌入式ARM平臺上面

            作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
            我畢業(yè)設(shè)計做的libusb移植, 而kinect通信是基于libusb,所以,就做了一個kinect+libusb在嵌入式平臺上面的移植, 經(jīng)過幾個月忙碌,終于將畢業(yè)設(shè)計給完成了,寫下一點(diǎn)心得, 也算是我多年在csdn索取資源的回饋。

            本系統(tǒng)主要由兩個部件構(gòu)成:嵌入式硬件平臺和USB設(shè)備,通過USB總線建立起它們之間通訊,如圖2.16所示,USB設(shè)備Kinect中包含一個USB集線器,在Kinect內(nèi)部通過Hub將紅外攝像頭、彩色攝像頭、電機(jī)等設(shè)備連接到Kinect內(nèi)部USB總線上面,最后將Kinect設(shè)備連接到ARM9嵌入式硬件平臺的Roothub上面。

            本文引用地址:http://www.biyoush.com/article/201611/317678.htm


            圖2.16 系統(tǒng)硬件連接圖

            本系統(tǒng)的軟件系統(tǒng)設(shè)計主要核心部分是Libusb,它為USB設(shè)備驅(qū)動程序開發(fā)提供一系列API,它封裝了許多USB協(xié)議和底層內(nèi)核交互代碼,將驅(qū)動開發(fā)從內(nèi)核空間搬移到用戶空間。為了實(shí)現(xiàn)Libusb運(yùn)行在嵌入式linux平臺上面,需要USB文件系統(tǒng)和linux底層USB驅(qū)動代碼作為底層接口支持,而這些接口最終依賴于一個嵌入式linux操作系統(tǒng)??偟膩碚f,本系統(tǒng)軟件層次如下圖2.17所示:


            圖2.17 系統(tǒng)軟件設(shè)計圖

            詳細(xì)步驟:

            step1: 搭建一個嵌入式linux平臺

            本人用的是TQ2440 , 這個就直接用了出廠的源程序, 不過需要注意的是, libusb是基于usb文件系統(tǒng)的,所以移植的時候一定要包含進(jìn)來


            step2: 編譯libusb

            這一步很重要,需要使用交叉編譯器ARM-linux編譯, 下載libusb,進(jìn)入其官網(wǎng)http://www.libusb.org/選擇最新版,下載

            具體的安裝編譯步驟如下:

            1. 解壓libusb-1.0.9.tar到當(dāng)前文件中:

            #tar –vxf libusb-1.0.9.tar –C ./

            2. 使用cd命令進(jìn)入到解壓后的文件夾中,運(yùn)行配置文件:

            #./configure CC=arm-linux-gccCXX=arm-linux-g++ /

            --build=i686-linux --host=arm-linux

            其中--build=i686-linux表示軟件是在X86平臺下編譯的,--host=arm-linux表示使用的是交叉編譯器arm-linux-進(jìn)行編譯,系統(tǒng)默認(rèn)是將軟安裝到/usr/local/lib目錄下,需要更改使用--prefix=/path/to/install。

            3. 編譯安裝:

            #make

            #make install

            4. 進(jìn)入/usr/local/lib/目錄查看是否生成目標(biāo)文件。

            #cd /usr/local/lib/

            可以看到在該目錄下,多出一個libusb的文件夾,里面有一個include和lib目錄。

            5. 掛載NFS,通過nfs將include目錄和lib目下的文件拷貝到開發(fā)板上

            #mount –t nfs 192.168.0.7:/opt/nfs /mnt/nfs

            這里192.168.0.7為開發(fā)板的地址。

            step3: 使用libusb編寫一個usb設(shè)備遍歷程序

            代碼如下:

            附錄A 使用libusb遍歷usb設(shè)備程序源碼/*desc:    使用libusb庫函數(shù)編程遍歷當(dāng)前所有的usb設(shè)備*author: lxz*create data:   2013,3,20*modify data:	2013,4,25/#include #include #include "libusb.h"#include int main(){libusb_device devs ;             // used to retrieve a list of device libusb_context *ctx = NULL ;       //a libusb sessionstruct libusb_device_descriptor desc ;int r = 1 ;                         //for return valuessize_t cnt ;                       //holding number of devices in listr = libusb_init(&ctx);        //initialize the library for the session we just declaredif( r<0){fprintf(stderr, "failed to initalise libusbn");  //there was a errorexit(1) ;}else{printf("init successful !n");}libusb_set_debug(ctx,3);   //set verbosity level to 3, as suggested in the documentioncnt = libusb_get_device_list(ctx, &devs) ;   //get the list of devicesif(cnt <0){fprintf(stderr, "Get Device Errorn");exit(1);}printf("%d Device in list .n", cnt) ;ssize_t i ;   //for iterating through the listfor(i=0; i
            編譯:

            將生成的代碼,通過nfs下載到TQ2440開發(fā)板中, 在開發(fā)板上, 運(yùn)行剛剛編譯的程序,

            libusb成功運(yùn)行在ARM平臺上面, 接下來就是對kinect進(jìn)行操作了。




            關(guān)鍵詞: KinectARM平

            評論


            技術(shù)專區(qū)

            關(guān)閉