С этим контроллером простор для творчества очень ограничен (в данном случае), его едва хватает на реализацию одного регистра, доступного для чтения всегда и нескольких доступных только когда не происходит обращения к карте. Что-то слишком сложно все, контроллер вполне может содержать конечный автомат любой сложности, т.е. можно реализовать просто последовательную запись в регистр данных без установки номера регистра в CSR. Я считаю, что нужно абстрагироваться от управления буферами и быть как можно ближе к ОС, например, записываем в CSR код операции, затем в регистр данных пишем последовательно номер тома, номер блока, кол-во блоков, затем собственно пишем или читаем данные, причем постоянно проверяем бит готовности в CSR перед каждым обращением к регистру. Может кто знает, что приходит на вход драйвера в RT-11? А такие вещи, как прерывание любой операции вообще вряд ли реализуемы в текущей конфигурации.




Ответить с цитированием