Lomo's BLOG

行之而不著焉 习矣而不察焉 终身由之而不知其道也 众也 ~
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ATA驱动初识化(译)

Posted on 2005-03-07 17:20  Lomo  阅读(712)  评论(0)    收藏  举报

原文:http://www.rtems.com/onlinedocs/releases/rtemsdocs-4.6.2/share/rtems/html/bsp_howto/bsp_howto00103.html

译文:

        ATA驱动初识化主要是由ata_initialize() 函数实现,其主要工作是侦测那些和IDE控制器相关联的ata设备并将它们在系统中进行注册。

        rtems_device_driver ata_initialize(rtems_device_major_number  major, rtems_device_minor_number  minor,void *arg)
            {

                对ATA核心数据结构进行初始化

                对每个IDE控制器(成功初始化后)

                    如果是一个中断设备,则建立中断处理

                获取属于控制器的ATA设备的信息用于我们对相关命令在执行时作出诊断
                 对每个ATA设备(成功侦测出)
               获取其中设备参数作为命令中的设备标识符

                将新的ATA设备作为系统一个新的块设备进行注册

            }

        对于ATA设备命令来讲,特殊的处理是有必要的,着是因为在驱动初始化时的缺乏对多重任务处理环境的相应处理

        作为被侦测到的设备来讲,它们将作为一个物理块设备在系统中注册,而其驱动的形式则是基于其IDE控制器,在目前的可以具有64个次设备的情况下,皆可用于最多可以有63个逻辑分区ATA设备。

controller minor    device number    device name    ata device minor
      0                  0             hda                0
      0                  1             hdb               64
      1                  0             hdc              128
      1                  1             hdd              172
     ...                ...            ...