新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于μCLinux的USB芯片FT245BL驅動設計

        基于μCLinux的USB芯片FT245BL驅動設計

        作者: 時間:2009-07-01 來源:網絡 收藏

          函數調用成功返回0值,返回-INVAL表示中斷號超出范圍或者handler=NULL;返回-BUSY表示中斷已經被占用且不能共享。其中,handler是中斷處理子程序指針,中斷產生時自動調用該函數;參數irq為中斷號;pt_regs為中斷發生之前寄存器的映像,很少使用;irqflags控制中斷行為。irqflags=SA_INTER-RUPT表示它在運行時將禁止所有的中斷;irqflags=SA_SHIRQ表示共享此中斷處理程序;devname為設備名稱;dev_id用于支持中斷的共享,它將作為第2個參數傳遞給中斷處理函數,可以利用它來傳遞一些必要的信息。該中斷處理程序如下:

        中斷處理程序

          3 實現驅動程序的加載

          驅動程序可以按照兩種方式編譯:一種是靜態編譯進內核;另一種是編譯成模塊以供動態加載。該采用靜態編譯進內核。下面以在嵌入式系統中需新增一個USB字符型設備為例,介紹的添加的一系列步驟。

          3.1 配置相關信息

          首先,將編寫好的驅動程序復制到系統的文件目錄中。新建ft245bl目錄統一管理USB設備的驅動文件包括C文件、頭文件、編譯文件、配置文件,存放于目錄μClinux-dist/linux-2.6.x/drivers/char/下,在ft245bl下新建Makefile,并在下面兩個編譯文件中添加編譯指令:

        在下面兩個編譯文件中添加編譯指令

          在ft245bl下新建配置文件Kconfig,添加驅動名_DRIVER、菜單選項名稱USB ft245bl Driv-er、菜單有效選項DRIVER_及驅動說明,代碼如下:

        代碼

          第1項是μClinux系統為設備驅動創建的驅動文件名及所在目錄;第2項是設備類型;第3項是設備驅動文件的權限;第4,5項分別為用戶ID和組ID;第6,7項為主設備號和次設備號;第8,9,10項分別為次設備號的起始號碼、增量和數量。

          3.2 編譯驅動程序

          在/home/μClinux/μClinux-dist目錄下運行make menueonfig進行配置,在字符設備選項中可以看見剛剛添加的FT245BL Driver選項,選中它。通過make的一系列編譯,所有內核和應用程序源代碼將被編譯,編譯結束后將產生二進制文件uImage。

          3.3 加載驅動程序

          這里的BF533主板中數據存儲器SDRAM大小為32 MB,地址為0~Ox02000000;異步存儲區BootFLASH大小為4 MB,地址為0x20000000~0x203FFFFF。在/home/μClinux/μClinux-dist運行指令下,把uImage文件拷貝到/svr/tftp目錄,tftp是一個簡單的ftp下載:

          cp images/uImage/svr/tftp

          打開超級終端μClinux,接通目標板電源或按復位鍵,目標板上的u-boot自動啟動,通過超級終端的串口輸入命令:

        通過超級終端的串口輸入命令

          到此,在μClinux中添加的工作已經完成。

          4 結 語

          介紹了基于Blackfin ADSP-BF533開發板,在μClinux環境下USB芯片FT245BL驅動程序的設計與加載。簡述了設備驅動程序開發的過程,并給出了讀函數和中斷函數的實例,說明了在μiClinux下如何添加FT245BL驅動程序的方法,實現了DSP主板的USB端口通信。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长泰县| 扶沟县| 边坝县| 馆陶县| 武清区| 平阳县| 湘阴县| 安国市| 甘南县| 兴文县| 城口县| 台北县| 二连浩特市| 化隆| 金溪县| 武汉市| 绥化市| 永顺县| 寿宁县| 福州市| 敦化市| 富裕县| 吐鲁番市| 阜平县| 赫章县| 利川市| 高尔夫| 台北市| 诸城市| 延安市| 宝山区| 鲁甸县| 化德县| 乐昌市| 区。| 阿尔山市| 肥城市| 德庆县| 紫金县| 德昌县| 道孚县|