PCB论坛网

 找回密码
 注册
查看: 1200|回复: 0

S3C4510B+ATA硬盘的调试笔记2

[复制链接]
发表于 2007-4-7 22:10:00 | 显示全部楼层 |阅读模式

第一步:

由于ataResources没有在外部定义,所以在这里自己进行了定义,它主要就是定义IDE寄存器的地址映射,我这里定义如下:

UINT32 ioStart[2] = {0x3600000,0x3604000};

pCtrl->data   = ATA_DATA (ioStart[0]);

pCtrl->error  = ATA_ERROR   (ioStart[0]);

pCtrl->feature    = ATA_FEATURE (ioStart[0]);

pCtrl->seccnt = ATA_SECCNT  (ioStart[0]);

pCtrl->sector = ATA_SECTOR  (ioStart[0]);

pCtrl->cylLo  = ATA_CYL_LO  (ioStart[0]);

pCtrl->cylHi  = ATA_CYL_HI  (ioStart[0]);

pCtrl->sdh    = ATA_SDH     (ioStart[0]);

pCtrl->command    = ATA_COMMAND (ioStart[0]);

pCtrl->status = ATA_STATUS  (ioStart[0]);

pCtrl->aStatus    = ATA_A_STATUS    (ioStart[1]);

pCtrl->dControl   = ATA_D_CONTROL (ioStart[1]);

pCtrl->dAddress   = ATA_D_ADDRESS (ioStart[1]);

 

第二步:

设置ataDrv()函数的参数值,我是在函数体内直接设好了。具体参数如下:

    ctrl = 0;     /* IDE0 */

    drives = 1;   /* 只有一块硬盘 */

configType = 0x066b; /*配置类型,就是选择Transfer modeTransfer bitsTransfer unitGeometry parameters 等参数 */

    wdgTimeout = 10;        /*软件狗定时 */

semTimeout = 10;        /*信号量超时 */

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|手机版|PCB设计论坛|EDA论坛|PCB论坛网 ( 沪ICP备05006956号-1 )

GMT+8, 2024-5-19 21:29 , Processed in 0.135457 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表