在ataRW()函数的读部分中,信号量的获取应该在写完ATA读命令后开始获取,也就是在:
ATA_IO_BYTE_WRITE (pCtrl->command, ATA_CMD_READ_MULTI);
后面,而不是在While循环里面,否则如果总的要读的扇区大于一次最大的读扇区数block个之后,在传完block个扇区后,IDE控制器不会产生新的中断,程序就会阻塞在那里。
在ataShow.c程序中,将pResource变量删除,默认只有ATA-LOCAL设备,没有ATA-PCMCIA设备。
3、 将\config\comps\src目录下的usrAta.c加入到工程中。
4、 编译工程,将其下载到板上,启动vxWorks。
7、 执行usrAtaConfig 0,0,”/ata0”
执行devs,即可看到自己添加的硬盘设备了 |