新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)中USB控制的Host/Slave模式的應(yīng)用

        嵌入式系統(tǒng)中USB控制的Host/Slave模式的應(yīng)用

        作者: 時間:2013-10-26 來源:網(wǎng)絡(luò) 收藏

        本系統(tǒng)就是采用第二種方式加載USB驅(qū)動的。由于本系統(tǒng)的包來自于英蓓特公司的包,因此節(jié)省了很多工作,具體編譯過程如下:

        1) 在內(nèi)核的USB驅(qū)動目錄中添加如下三個文件:sl811h-usb.c 、sl811h.h、 sl811husb.h。這兩個頭文件中主要定義了一些關(guān)于811HS/T寄存器的宏。

        2) 編輯/uclinux-s3cev40/linux-2.4.x/drivers/usb/config.in文件。

        首先在config.in文件開頭添加如下語句:

        dep_tristate 'Support for USB' CONFIG_USB $CONFIG_PCI

        if [ "$CONFIG_USB" = "y" -o? "$CONFIG_USB" = "m" ]; then

        ?? bool '? USB verbose debug messages' CONFIG_USB_DEBUG

        comment 'Miscellaneous USB options'

        ?? bool '? Preliminary USB device filesystem' CONFIG_ USB_DEVICEFS

        ?? if [ "$CONFIG_ EXPERIMENTAL" = "y" ]; then

        ????? bool '? Enforce USB bandwidth allocation (EXPERIMENTAL)' CONFIG_USB_BANDWIDTH

        ?? else

        ??? define_bool CONFIG_USB_ BANDWIDTH n

        ?? fi

        ?? bool '? Long timeout for slow-responding devices (some MGE Ellipse UPSes)' CONFIG_USB_ LONG_TIMEOUT

        fi

        然后在makefile文件中添加

        ifeq ($(CONFIG_USB_ DEBUG),y)

        ?????? L_OBJS+=sl811h-usb.o

        endif

        最后在/uclinux-s3cev40/linux-2.4.x/drivers/usb/sl811h_usb.c文件中添加如下代碼:

        #ifdef CONFIG_USB_DEBUG

        ?????? #define DEBUG

        #else

        ?????? #undef DEBUG

        #endif

        #SL811HS/T----- USB Controller driver

        INCLUDEDIR = /usr/src/linux/include

        CFLAGS = -D__KERNEL__ -DMODULE -O -Wall -

        static -I$(INCLUDEDIR)

        VER = $(shell awk -F" '/REL/ {print $$2}'

        $(INCLUDEDIR)/linux/version.h)

        all:sl811h-usb.o

        sl811h-usb.o:sl811h-usb.csl811h-usb.hsl811h.h

        gcc sl811h-usb.c -c $(CFLAGS)

        # End this file

        3) 在/usr/local/src/uClinux-s3cev40/fs/dev中增加一個設(shè)備文件。因為USB設(shè)備主要都是通過快速串行通訊來讀寫數(shù)據(jù), 故一般作為字符設(shè)備。在/usr/local/src/uClinux-s3cev40/fs/devfs 下執(zhí)行:

        mknod usb0 c 127 0

        mknod usb1 c 127 1

        4) 執(zhí)行make xconfig,用戶內(nèi)核設(shè)置選擇y。

        5) 執(zhí)行make dep。

        6) 執(zhí)行make。USB設(shè)備驅(qū)動程序被編譯進內(nèi)核,包含在image.bin文件中。

        在嵌入式系統(tǒng)啟動時,USB設(shè)備驅(qū)動就自動執(zhí)行了。


        結(jié)語

        本設(shè)計以mClinux嵌入式操作系統(tǒng)為平臺,充分發(fā)揮了SL811HST芯片的/Slave兩種模式的作用,使其在實際使用中非常方便。隨著嵌入式USB設(shè)備/的研發(fā),USB設(shè)備的使用會更加普及。

        晶振相關(guān)文章:晶振原理

        上一頁 1 2 下一頁

        關(guān)鍵詞: mClinux USB控制 Host Slave模式

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 马鞍山市| 博白县| 固始县| 建水县| 敦化市| 秦皇岛市| 双桥区| 德清县| 黎平县| 甘泉县| 原平市| 石泉县| 和政县| 同仁县| 桂东县| 乡城县| 安乡县| 都昌县| 锦州市| 湘西| 盐边县| 嘉善县| 江城| 原阳县| 大兴区| 来宾市| 唐山市| 余江县| 伊宁县| 桦南县| 乌拉特前旗| 彩票| 淳安县| 米易县| 西和县| 塘沽区| 涞源县| 冀州市| 广河县| 英超| 隆子县|