《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > linux下USB驅(qū)動移植
linux下USB驅(qū)動移植
摘要: linux下USB驅(qū)動移植,一、代碼修改在這里把include前面的#給刪了,希望有幫助/*addbylfc*/#include<asm/arch/regs-clock.h>#include<asm/arch/usb-control.h>#include<linux/device.h>#include<linux/delay.h>/*
關(guān)鍵詞: 軟件 USB Linux
Abstract:
Key words :

一、代碼修改
在這里把include前面的#給刪了,希望有幫助
/*add by lfc*/
#include
#include usb-control.h="">
#include <linux device.h="">
#include
/*end add*/ 

/**********************add by lfc*************************************/
static struct s3c2410_hcd_info usb_sbc2410_info = {
       .port[0]        = {
               .flags  = S3C_HCDFLG_USED
       }
};

int usb_sbc2410_init(void)
{
unsigned long upllvalue = (0x78<<12)|(0x02<<4)|(0x03);
printk("USB Control, (c) 2006 sbc2410 ");
s3c_device_usb.dev.platform_data = &usb_sbc2410_info;
while(upllvalue!=__raw_readl(S3C2410_UPLLCON))
{
__raw_writel(upllvalue,S3C2410_UPLLCON);
mdelay(1);
}
return 0;
}
/***************************end add**********************/ 

static void __init smdk2410_map_io(void)
{
s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
s3c24xx_init_clocks(0);
s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs));
s3c24xx_set_board(&smdk2410_board);
/*************************add by lfc****************************/
       usb_sbc2410_init();
/*************************end add*******************************/



其實到了這里,要修改的代碼已經(jīng)修改完了,比添加Nand flash的支持修改的地方還要少^_^,不過我一直以為還沒修改好,最后發(fā)現(xiàn)原來是沒配置好~_~

二、內(nèi)核配置
下面說一下郁悶了我好一陣子的內(nèi)核配置(支持USB)問題,這個就比Nand flash的配置要復(fù)雜多了。
1、讓內(nèi)核支持熱插拔
 │                General setup  --->  
 │ │[*] Support for hot-pluggable devices

2、USB驅(qū)動設(shè)置,可能有些不選也行,不過沒時間去試,至于為什么要選這些選項的話可以看一下這個貼(Linux下的硬件驅(qū)動——USB設(shè)備):

│ │                Device Drivers  ---> 
│ │              Generic Driver Options  --->           
│<*> Hotplug firmware loading support    
│ │              Block devices  --->   
│ │              <*> Low Performance USB Block driver   
│ │              SCSI device support  --->   
│ │  <*>   SCSI generic support  
│ │  [*]   Probe all LUNs on each SCSI device    
│ │              USB support  --->        
│ │<*> Support for Host-side USB    
│ │[*]   USB device filesystem 
│ │<*>   OHCI HCD support  
│ │<*>   USB Mass Storage support 
│ │[*]   USB Monitor 
3、加入了MSDOS fs和VFAT fs的支持。 
 │ │                File systems  --->      
 │ │        DOS/FAT/NT Filesystems  --->   
 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │                 <*> MSDOS fs support                                │ │
 │ │                 <*> VFAT (Windows-95) fs support          │ │
 │ │                 (936) Default codepage for FAT                │ │
 │ │                 (cp936) Default iocharset for FAT             │ │
 │ │                 < > NTFS file system support

 

做完這些后,插入u盤后,內(nèi)核應(yīng)該可以識別到u盤,出現(xiàn):
usb 1-1: new full speed USB device using s3c2410-ohci and address 3
ub(1.3): GetMaxLUN returned 0, using 1 LUNs 

但是,還有下面一句出錯提示:
/dev/ub/a: unknown partition table 

再次查看了貼子上大蝦們的討論,提到:“使能CONFIG_MSDOS_PARTITION選項”,再仔細查找,發(fā)現(xiàn)配置選項如下:
│ │                File systems  --->
│ │                Partition Types  --->  
│ │     [*]   PC BIOS (MSDOS partition tables) support
加上這個后應(yīng)該就可以掛載usb上的MSDOS分區(qū)了 

以下是我的內(nèi)核插入u盤后的提示信息:
usb 1-1: new full speed USB device using s3c2410-ohci and 2
ub(1.2): GetMaxLUN returned 0, using 1 LUNs
/dev/ub/a: p1
表示usb設(shè)備已經(jīng)掛載到/dev/ub/a/part1目錄下 

4. 加入中文字體庫(可惜在我的板上還是沒能正常顯示中文~_~,知道的朋友麻煩告訴我一聲,大家一起探討)
 │ │        Native Language Support  --->     
 │ │<*>   Simplified Chinese charset (CP936, GB2312)  
 │ │<*>   NLS UTF8 

以下是掛載usb設(shè)備后的顯示:
[root@luofuchong /]# mount -t vfat -o iocharset=cp936 /dev/ub/a/part1 /mnt
[root@luofuchong /]# ls /mnt
cramfs-1.1.tar.gz        netkit-base-0.17.tar.gz  thttpd-2.25b.tar.gz
lfc                      settings.dat             . . I. ..  . .txt

三、一點心得

  1. 如果想知道內(nèi)核有沒有識別出u盤的話可以執(zhí)行命令:cat /proc/partitions ,看看插入USB前后分區(qū)信息有什么不同就知道了。
  2. 另外,如果想讓內(nèi)核把它當(dāng)成SCSI設(shè)備來處理的話,只要把上面:
     │ │                Device Drivers  --->    
     │ │              Block devices  --->   
     │ │              <*> Low Performance USB Block driver 
    的 Low Performance USB Block driver這個選項去掉,然后把:
     │ │                Device Drivers  --->
     │ │              SCSI device support  --->  
     │ │              <*>SCSI disk support
    的SCSI disk support這個選項選上,重新編譯內(nèi)核就行。
    注:
        個人覺得使用usb設(shè)備的話Low Performance USB Block driver比SCSI disk要好,自己看著辦吧^_^
  3. 最后,一般都會新建一個/dev/sda1的鏈接指向usb設(shè)備的掛載點的,可以在啟動文件中使用命令ln -s xxx xxx來建立這個鏈接。 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩亚洲精品视频| 亚洲一区二区三区四区在线观看| 欧美性片在线观看| 欧美美女bbbb| 欧美成人资源网| 麻豆精品精华液| 欧美资源在线观看| 欧美一二三区在线观看| 午夜欧美理论片| 亚洲欧洲av一区二区三区久久| 亚洲一区免费| 亚洲欧美激情一区二区| 午夜一区不卡| 欧美影院午夜播放| 久久久久国产精品www| 久久精品一本| 老司机午夜免费精品视频| 免费成人你懂的| 欧美精彩视频一区二区三区| 欧美激情亚洲激情| 欧美日韩精品免费| 国产精品国产三级国产专区53| 欧美午夜激情在线| 国产精品久久久一区二区三区| 国产精品日韩精品| 国产区欧美区日韩区| 国产揄拍国内精品对白| 在线观看日韩www视频免费| 亚洲国产一区二区精品专区| 亚洲精品中文字| 亚洲一区二区欧美日韩| 午夜久久黄色| 亚洲激情视频网| 一区二区欧美日韩| 午夜欧美大片免费观看| 久久久久久网址| 欧美成人有码| 国产精品大片| 狠狠色丁香婷婷综合久久片| 亚洲人成网在线播放| 亚洲色图制服丝袜| 欧美一区二区三区在线免费观看| 亚洲国产免费| 一个人看的www久久| 香蕉久久夜色精品国产使用方法| 久久色在线观看| 欧美日韩国产一区二区| 国产精品无码永久免费888| 激情文学一区| 一区二区三区精品视频在线观看| 性欧美xxxx大乳国产app| 亚洲人成网站777色婷婷| 亚洲午夜激情网页| 久久久久久久综合色一本| 欧美精品久久久久久久久久| 国产精品久久久99| 在线观看精品视频| 一区二区三区四区五区精品| 欧美综合国产| 亚洲婷婷在线| 老司机成人网| 国产精品久久二区| 在线看一区二区| 在线亚洲+欧美+日本专区| 亚洲第一福利视频| 亚洲一区图片| 欧美成人免费va影院高清| 国产精品美女久久久| 亚洲风情在线资源站| 亚洲欧美在线x视频| 亚洲剧情一区二区| 久久国产66| 欧美日韩精品在线| 激情综合久久| 亚洲性感激情| 日韩视频一区| 久久综合激情| 国产精品一二三| 日韩一区二区久久| 亚洲国产视频一区| 欧美在线你懂的| 欧美视频一区二| 亚洲第一色在线| 性视频1819p久久| 亚洲一区二区少妇| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产目拍亚洲精品99久久精品 | 亚洲天堂网在线观看| 蜜桃av综合| 国产午夜亚洲精品羞羞网站| 夜夜嗨av色综合久久久综合网| 亚洲国产精品一区二区第一页| 欧美一区二区视频网站| 欧美日韩亚洲一区二区| 亚洲高清视频在线| 久久精品国产99国产精品| 香蕉成人啪国产精品视频综合网| 欧美日韩久久精品| 亚洲国产精品va在线看黑人| 欧美一区精品| 欧美一区二区三区免费看| 欧美三级在线播放| 亚洲人精品午夜| 亚洲七七久久综合桃花剧情介绍| 久久久亚洲成人| 国产日韩欧美高清| 亚洲欧美国产另类| 亚洲欧美一级二级三级| 国产精品xxxxx| 日韩视频免费在线| 99国产精品一区| 欧美激情第9页| 亚洲狠狠丁香婷婷综合久久久| 亚洲国产精品一区二区久| 久久嫩草精品久久久精品| 国产婷婷一区二区| 午夜日韩av| 久久九九国产| 国产日韩精品久久久| 亚洲欧美综合v| 欧美专区中文字幕| 国产在线精品二区| 久久激情综合| 美女国产精品| 亚洲黄色三级| 亚洲最新色图| 欧美日韩一区在线观看| 正在播放亚洲一区| 亚洲欧美中文日韩在线| 国产欧美二区| 欧美影院精品一区| 久久影院午夜论| 亚洲第一色中文字幕| 99v久久综合狠狠综合久久| 欧美日韩伦理在线| 亚洲一级在线观看| 性久久久久久久久久久久| 国产精品揄拍一区二区| 欧美一区二区日韩一区二区| 美女黄网久久| 日韩视频―中文字幕| 亚洲欧美精品在线观看| 国产精品自拍三区| 久久国产黑丝| 欧美精品久久久久久久免费观看| 一本色道久久综合精品竹菊| 午夜在线成人av| 国产一区二区三区奇米久涩| 亚洲电影自拍| 欧美日韩精品免费观看| 亚洲男人第一网站| 久久婷婷综合激情| 亚洲国产精品va| 亚洲综合国产| 国模一区二区三区| 日韩一级裸体免费视频| 国产精品乱码一区二三区小蝌蚪| 性色av一区二区三区在线观看| 免费欧美日韩| 在线视频亚洲欧美| 久久久五月天| 99国产精品久久久久久久久久| 欧美一区二区黄| 伊大人香蕉综合8在线视| 一区二区日韩| 国产在线精品成人一区二区三区| 亚洲精品一区二区三| 国产精品人成在线观看免费| 亚洲电影在线免费观看| 欧美日韩在线另类| 欧美专区第一页| 欧美日韩大陆在线| 亚久久调教视频| 欧美精品v日韩精品v国产精品 | 蜜臀av性久久久久蜜臀aⅴ| 日韩视频精品| 久久久国产视频91| 一本久道久久综合婷婷鲸鱼| 久久久夜色精品亚洲| 日韩一级片网址| 久久久夜精品| 在线视频精品一| 欧美成人精品福利| 亚洲欧美日韩在线| 欧美精品免费看| 欧美淫片网站| 国产精品第一区| 亚洲精品在线视频| 国产一区91| 亚洲综合清纯丝袜自拍| 亚洲第一页自拍| 久久精品国产久精国产爱| 日韩午夜高潮| 牛牛影视久久网| 午夜亚洲精品| 欧美午夜精品久久久久免费视| 亚洲国产另类久久久精品极度| 国产精品网站在线| 亚洲午夜一区二区三区| 亚洲高清不卡av|