|                                                ――作者:blackmoon 上完鄭靈翔老師的emb課程受益頗多。學(xué)emb已經(jīng)兩年了,一直存在的感覺就是emb很麻煩,動不動就是兩個字“移植”。硬件,OS等隨便其中一個平臺不一樣都可能導(dǎo)致“移植”操作,沒辦法,普通的人很難在短時間內(nèi)翻寫所有的代碼,只能延用別人的代碼。不過好在Linux的代碼大多都是GPL的,不存在收費、版權(quán)的問題。但是還是得看懂別人代碼,也許有人說看代碼容易呀!至少我不是這么認(rèn)為的……. 這次接到的課題是有關(guān)USB的,看題目寫了很多,總結(jié)起來無非就是我文章的題目,再加個可以讀寫U盤的要求。好了,來談?wù)勎覍@課題的一些心得。首先應(yīng)該要清楚認(rèn)識移植驅(qū)動無非就是修改驅(qū)動代碼、同時修改OS內(nèi)核配置,不管是在Linux還是在ce中都是一樣,ucos就無所謂內(nèi)核配置的問題了(其實其他的OS我也不懂,呵呵)。首先進(jìn)入內(nèi)核drivers/usb目錄,可以看到很多文件夾,憑借經(jīng)驗可知host是底層HCD的驅(qū)動代碼所在,core自然就是USB核心層USBD的代碼,其他的如music、input、storage等是設(shè)備層的驅(qū)動。(如果對USB驅(qū)動的分層結(jié)構(gòu)還不懂的,可以參考一些其他的書籍,我就不多說了) 其中,我所要關(guān)心的就三個文件夾,host、storage和core?;旧弦部梢源_定storage和core文件夾里面得代碼是不需要修改的,它們和硬件層無關(guān)。進(jìn)入host,可以看到很多ehci,ohci,uhci開頭的文件。由于開發(fā)板采用的是S3C2410,所以基本上就可以把目標(biāo)鎖定在ohci上,可以看到有ohci-s3c2410.c文件,確定內(nèi)核包自帶對2410的支持。能不能直接使用,初步看代碼好像都沒有問題。存著僥幸的心里,我直接進(jìn)行內(nèi)核配置。切到主目錄下,利用make xmu_hharm9_defconfig命令進(jìn)行默認(rèn)配置,接著執(zhí)行make xconfig,進(jìn)入內(nèi)核配置界面。 (1)確保General setup  --->     Configure standard …….中的Support for hot-pluggable devices是選上(我都是用打勾將模塊直接編進(jìn)內(nèi)核,下面雷同)的,要使用U盤就得使內(nèi)核支持設(shè)備的熱插拔。 (2)到Device Drivers à SCSI device supprot中   因為在linux中會U盤設(shè)備將被模擬成SCSI設(shè)備,所以要使內(nèi)核能夠支持SCSI設(shè)備。 (3)到Device Drivers à       USB support中   
 
 (4)到File systemsà DOS/FAT/NT Filesystems中
  |