分享

Linux2.6 USB HOST驱动于华恒开发板上的移植(1)

 Archangel 2007-08-07
Linux2.6 USB HOST驱动于华恒开发板上的移植(1)
2007-5-24 13:56:00

                                               ――作者:blackmoon

上完郑灵翔老师的emb课程受益颇多。学emb已经两年了,一直存在的感觉就是emb很麻烦,动不动就是两个字“移植”。硬件,OS等随便其中一个平台不一样都可能导致“移植”操作,没办法,普通的人很难在短时间内翻写所有的代码,只能延用别人的代码。不过好在Linux的代码大多都是GPL的,不存在收费、版权的问题。但是还是得看懂别人代码,也许有人说看代码容易呀!至少我不是这么认为的…….

这次接到的课题是有关USB的,看题目写了很多,总结起来无非就是我文章的题目,再加个可以读写U盘的要求。好了,来谈谈我对这课题的一些心得。首先应该要清楚认识移植驱动无非就是修改驱动代码、同时修改OS内核配置,不管是在Linux还是在ce中都是一样,ucos就无所谓内核配置的问题了(其实其他的OS我也不懂,呵呵)。首先进入内核drivers/usb目录,可以看到很多文件夹,凭借经验可知host是底层HCD的驱动代码所在,core自然就是USB核心层USBD的代码,其他的如musicinputstorage等是设备层的驱动。(如果对USB驱动的分层结构还不懂的,可以参考一些其他的书籍,我就不多说了)

其中,我所要关心的就三个文件夹,hoststoragecore。基本上也可以确定storagecore文件夹里面得代码是不需要修改的,它们和硬件层无关。进入host,可以看到很多ehci,ohci,uhci开头的文件。由于开发板采用的是S3C2410,所以基本上就可以把目标锁定在ohci上,可以看到有ohci-s3c2410.c文件,确定内核包自带对2410的支持。能不能直接使用,初步看代码好像都没有问题。存着侥幸的心里,我直接进行内核配置。切到主目录下,利用make xmu_hharm9_defconfig命令进行默认配置,接着执行make xconfig,进入内核配置界面。

1)确保General setup  --->  

  Configure standard …….中的Support for hot-pluggable devices是选上(我都是用打勾将模块直接编进内核,下面雷同)的,要使用U盘就得使内核支持设备的热插拔。

2)到Device Drivers à

SCSI device supprot
 
因为在linux中会U盘设备将被模拟成SCSI设备,所以要使内核能够支持SCSI设备。

3)到Device Drivers à

      USB support
 


 

4)到File systemsà

DOS/FAT/NT Filesystems
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多