С DMA, скорее всего, будут сложности. ПЛИСка у этих PsOC4 довольно убогая, а DMA у наших машинок, кроме обычных счетчиков адреса и регистров передачи данных (которые легко и непринужденно делаются на GPIO Кортекса-М0 и его внутренних ресурсах), имеет довольно сложную логику. Не факт, что она влезет в эту ПЛИСку.
Увы, пока регистры контроллера оказались на адресах 176560-66, поскольку для начальной загрузки штатными средствами УКНЦ контроллер поначалу прикидывается сетевым адаптером. А сразу за ним - стык С2, 176570...
И вообще, мне, как раз, понравилась идея последовательной передачи "задания" контроллеру с прямым указанием компонента, который сейчас передается: дали команду, что передаем дисковый адрес (номер блока) - даем младшее слово номера блока, и т.д. Вместо адресов памяти, скорее всего придется ввести пару команд типа "залить данные в буфер сектора" и "считать данные из буфера сектора". Затем, при записи, после заливки данных сектора в буфер, подадим команду "писать", а при чтении подадим команду "читать", затем будем читать данные из буфера сектора, вестимо, в PIO-mode. Естественно, для сигнализации о завершении сравнительно длительных операций - передачи туда-сюда между карточкой и буфером сектора, будут задействованы прерывания, а что касается обмена между основной памятью и буфером сектора, так PIO-mode на FORK-уровне RT-11, ИМХО, самое то.





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