S3C44B0X上的IDE接口在uClinux上的驱动移植.pdf

发 布 时 间 : 2008-11-17    来 源 : 立宇泰论坛    作 者 : 匿名   浏 览 :

一. 硬件接口描述

本人使用的是思创的开发板,其提供的IDE接口的相关数据如下:
寄存器部分的描述:
#define IDE_DATA 0x06020000 /
#define IDE_ERROR 0x06020002 /
#define IDE_NSECTOR 0x06020004 /
#define IDE_SECTOR 0x06020006 /
#define IDE_LCYL 0x06020008 /
#define IDE_HCYL 0x0602000A /
#define IDE_SELECT 0x0602000C /

二.我们需要作什么?

由于uClinux已经带有相当完整的IDE驱动代码,因此我们不需要做太多的事情,我们要做的是: A 初始化硬件
B 通知驱动我们的硬件接口地址中断等
初始化硬件在这里主要是:

三.尝试移植

尝试移植,我们来直接对代码包在make menuconfig 后选择IDE相关选项:
A>选择IDE硬盘驱动
ATA/IDE/MFM/RLL support
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
Include IDE/ATA-2 DISK support /选择支持IDE硬盘

四.很重要的ide.h文件

下面就是我使用的ide.h 的完整内容你可以打开include/asm-armnommu/ide.h
复制下面的内容,全部覆盖ide.h的内容。
/-----------------------ide.h---------------------加入到
include/asm-armnommu/目录下
/*

五.产生设备文件

定义好那两个函数后,我们再次编译就可以成功了,到这里驱动移植还没有完成
,你还需要继续看下去:
A> 在文件系统中建立设备文件
改动uClinux-release/vendors/Samsung/44b0x/下的makefile 文件内容,加入:
\
hda,b,3,0 hdb,b,3,64 \
hda1,b,3,1 hda2,b,3,2 hda3,b,3,3 hda4,b,3,4\
hda5,b,3,5 hda6,b,3,6 hda7,b,3,7 hda8,b,3,8\
hdb1,b,3,65 hdb2,b,3,66 hdb3,b,3,67 hdb4,b,3,68\
hdb5,b,3,69 hdb6,b,3,70 hdb7,b,3,71 hdb8,b,3,72\
\
其中hda7是设备文件名;b 是block device;3 是主设备号;7是从设备号

六.可能碰到bug

你可以照上面的方法试试移植驱动,但不一定能成功,原因需要你自己分析,跟uClinux打交道需要你对它有很多的了解,请多多阅读、分析它的代码。我提供的是我移
植的思路,希望对你有一点帮助。
还有,可能等你不断深入,在uClinux 下干活你可能碰上了uClinux 的bug。那么恭喜你
咯,很可能你是第一个碰上这样的bug 的,看起来只有你自己来搞定这个bug 咯,或者你可以到uClinux 上的bbs 上搜索看看,可能也有人碰上你一样的问题,想碰上这样
的问题?呵呵,我就让你碰上个看看:
A>make menuconfig 时选择IDE驱动时加上CDROM的支持
S3C44B0X上的IDE接口在uClinux上的驱动移植.pdf---->
点击浏览该文件
最近跟一个网友讨论中补加的:
IDE的地址在uClinux里的填充.pdf--->
点击浏览该文件


上一篇:在ARMSYS-C板上运行自己编写的程序的步骤       下一篇:我编译uclinux内核的方法,和大家分享