首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

S5PV210(TQ210)学习札记——USB HOST移植

2013-04-09 
S5PV210(TQ210)学习笔记——USB HOST移植在写USB驱动程序的时候意外发现默认状态下内核没有驱动S5PV210的USB

S5PV210(TQ210)学习笔记——USB HOST移植

在写USB驱动程序的时候意外发现默认状态下内核没有驱动S5PV210的USB HOST控制器,于是,我自己动手移植了一下S5PV210的USB HOST模块,S5PV210的USB HOST控制器跟S3C2440的有些不同,S5PV210同时支持EHCI和OHCI接口(两者的区别自己谷歌搜一下),这样,S5PV210在功能上就完全支持USB2.0接口了。

Linux内核(以3.8.3为例)默认仅提供了ehci-s5p.c,但是提供了很多其他平台的ohci源码,因此,我们可以参考ohci-exynos.c来编写自己的ohci-s5p.c,然后参考ehci-s5p.c的代码组织方式添加到内核就可以了。下面废话少说,直接进入正题,开始USB HOST的EHCI和OHCI移植。

一 编写自己的ohci-s5p.c

我们以ohci-exynos.c为模板,修改以适合我们的S5P平台。

(1)拷贝ohci-exynos.c为ohci-s5p.c

(2)替换所有的exynos为s5p

(3)由于有些地方是exynos4,所以,还需要将s5p4替换为s5p

(4)如果是3.4版本的内核不需要修改头文件,但是3.8.3内核对文件结构作了调整,还是将ohci-exynos.h头文件改为:

writel(0x000E0000, hcd->regs + 0x90);writel(0x00400040, hcd->regs + 0x94);
这样,就解决了U盘卸载时出错的问题。

八 小结

经过上面一番大战,Linux-3.8.3或者Linux-3.8.6就可以正常驱动S5PV210的USB HOST模块了。

最后,发表一下个人意见,学习嵌入式这些东西,还是需要自己亲自动手做一下,拿官方的核去做一些简单的应用跟在PC上开发东西没什么两样,你是不会看到底层那些美妙的风景的,如果想踏踏实实的做好嵌入式,底层还是不能忽略的,最好从裸机开始。


本文链接:http://blog.csdn.net/girlkoo/article/details/8772221

本文作者:girlkoo

热点排行