Здравствуйте, Srv, Вы писали:
A_>>1. как именно вы шлете команды ? Srv>вот так шлю
понял.
На самом деле я тут подумал, можно сделать так, чтобы работало.
1. Для начала заблокировать поступление новых команд в контроллер — сложить в свою очередь.
2. Подождать, пока стихнет активность на канале. (AltStatus рулит).
3. Узнать, разрешены ли в контроллере прерывания от устройств, если да, запомнить и запретить
4. Делаете то, что вам нужно.
5. Вычитываете Status, чтобы стбросить прерывание, обязательно проверяете Busmaster DMA статус на предмет прерывания, и если установлено — сбрасываете (DMA STOP)
6. восстанавливаете разрешение прерываний (если нужно, см. п.3)
7. посылаете в драйвер задержаные в п.1 запросы.