Важная информация

User Tag List

Страница 25 из 33 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя
Показано с 241 по 250 из 328

Тема: Контроллер дисковода для УКНЦ, работающий с образами на micro-SD карте.

  1. #241

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Люди, я бы все-таки обратил внимание не на HX, а на HD.

    Цитата Сообщение от Patron Посмотреть сообщение
    Управлять подключением образов к приводам контроллера со стороны ДВК практически нереально.
    Почему? Передаем через .spfun (другой, не 373) строчку с именем файла, и вперед. Перед этим, пользуя в цикле третий .spfun со значением "получить очередную строку списка файлов на карте", можно будет получить оглавление этой CF-ки. А потом спокойно пишите программу СFMO[unt], хоть простую утилиту командной строки, хоть нечто, подобное Командиру Нортону. Единственное, что не выйдет - перемонтировать системный диск, система такого, естественно, не переживет.

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    что делать с еще не инициализированными томами-файлами
    Ничего делать не надо. Если файл есть и его подключили, то надо определить его размер и возвращать этот размер системе, причем следует учитывать, что RT-11 не понимает дисков более, чем с 65535 блоками, но, в то же время, кроме RT-11 есть и другие операционки, которым доступно больше, чем 32М дискового пространства. Впрочем, это легко решается в обработчике .SPFUN 373 драйвера RT-11: если размер файла более 32М, возвращаем 65535, и вперед. Разбивать большие файлы на несколько томов RT-11, ИМХО, не имеет смысла - никто не мешает сделать файлы CF требуемого размера и не морочить голову.

    Единственное, что может понадобиться, если вдруг решим дополнить программу CFMO дополнительным функционалом в виде создания нового файл-образа, типа "вставить новый пустой диск" - вот здесь придется давать, кроме имени для нового файла, еще и его размер (в блоках), причем в версии для RT-11 не более 65535 блоков, для других ОС ограничение снимается, но это будет (если будет) делаться средствами тех самых "других" ОС.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  2. #241
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #242

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Люди, я бы все-таки обратил внимание не на HX, а на HD.
    Существенное отличие HD и HX в том, что в HD передача параметров команды и кода команды выглядит так:

    Код:
    UNIT NUMBER -> DATA
    Команда SET UNIT NUMBER -> CSR
    BLOCK NUMBER -> DATA
    Команда SET BLOCK NUMBER -> CSR
    WORD COUNT -> DATA
    Команда SET WORD COUNT -> CSR
    Команда READ -> CSR


    а в HX передача команды и её параметров выглядит так:

    Код:
    Команда READ -> DATA
    UNIT NUMBER -> DATA
    BLOCK NUMBER -> DATA
    WORD COUNT -> DATA
    Последний раз редактировалось Patron; 28.07.2017 в 13:20.

  4. #243

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так вот, пока все хорошо, вариант HX без вопросов. Однако, при каких-либо нарушениях, вариант HX становится уязвимым к разным косякам, которые должны исправляться на уровне протокола, в то время, как вариант HD к этому нечувствителен. Элементарно: идет обмен с "диском", что-то сбойнуло, машинка вылетела в останов. Я в таких случаях давил на ДВК букву G, которая без предшествующей цифры интерпретируется, как 0G, RT-11SJ благополучно перезапускалась, и вперед. И не поймешь, что там дальше будет... А так - все четко: команду толкаем в одно место, данные в другое. И выданная команда обязана отменить всю предыдущую незавершенку и привести контроллер в правильное состояние.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  5. #244

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Jarik65535 чётко сказал, что отмена незавершёнки не предусмотрена. Программно сбросить контроллер в начальное состояние невозможно. Сигнал INIT на шине также его не сбросит. Уж если контроллер начал приём или передачу пакета, то не вернётся в начальное состояние до завершения работы. Поэтому полезно иметь в CSR не только бит READY ( 0200 ), но и бит DONE ( 0400 ), устанавливаемый контроллером в фазе ожидания кода команды.

    - - - Добавлено - - -

    Я понимаю ситуацию так. Допустим, у контроллера есть команда "СООБЩИТЬ КОЛИЧЕСТВО ОБРАЗОВ НА КАРТЕ", в ответ на которую он помещает в регистр DATA соответствующее число. После записи кода этой команды в регистр данных - контроллер снимает биты READY и DONE, пересчитывает образы на карте, устанавливает бит READY и ожидает чтения регистра данных, чтобы передать количество образов. Если в этот момент попытаться записать в регистр данных код новой команды, то контроллер никак не отреагирует, потому что для завершения цикла выполнения команды ему надо передать клиенту все слова пакета. И хотя пакет в данном случае состоит всего из одного слова - контроллер не перейдёт в начальное состояние, пока это слово не передаст.
    Последний раз редактировалось Patron; 28.07.2017 в 13:51.

  6. #245

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Jarik65535 чётко сказал, что отмена незавершёнки не предусмотрена. Программно сбросить контроллер в начальное состояние невозможно.
    Не думаю, что все так категорично. Если средствами той ПЛИС можно сделать хотя бы один триггер, устанавливаемый в произвольное время со стороны ЦП с возможностью чтения и сброса его через GPIO контроллера, то вопрос решается. То есть, возможно, в текущей реализации это и не предусмотрено, но оно нужно. И, как я понял Ярослава, вроде-бы реализуемо.

    - - - Добавлено - - -

    Более того, я тут прикинул, похоже и триггер этот не нужен - достаточно в тот самый "короткий" цикл обмена с ЦП добавить проверку адреса - с РД общается ЦП, или с РС и по записи в РС сбрасывать "незавершёнку". То есть достаточно незначительного усложнения программы контроллера.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  7. #246

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А в чем проблема подождать пару миллисекунд? У нас объем данных не превышает 64К. Кроме того старший байт CSR используется в контроллере СА для получения номера станции, так что можно использовать другой бит. Еще всегда, (когда готов) контроллер можно перевести в исходное состояние, записав 4 в CSR, что делает штатный УКНЦшный загрузчик из сети.

  8. #247

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    А в чем проблема подождать пару миллисекунд? У нас объем данных не превышает 64К.
    Имеется в виду, что если сбой произошёл в драйвере во время обмена с контроллером и синхронизация с контроллером потеряна - восстановить её без сброса контроллера невозможно. Во всех остальных случаях бит DONE решает все проблемы. Например, драйвер заказал запись 1024 слов, начиная с последнего блока диска - тогда после загрузки в контроллер количества слов - тот выставляет бит ERROR, но не выставляет бит DONE, что означает ситуацию: "частичное выполнение команды". Затем контроллер принимает от драйвера 256 слов и выставляет бит DONE, хотя драйвер заказывал запись 1024 слов. Теперь в CSR установлены биты ERROR и DONE, что означает: "досрочное завершение выполнения". Если перед каждым обращением к регистру данных драйвер проверяет биты READY и DONE в CSR - он никогда не потеряет синхронизацию.
    Последний раз редактировалось Patron; 28.07.2017 в 23:39.

  9. #248

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Еще всегда, (когда готов) контроллер можно перевести в исходное состояние, записав 4 в CSR, что делает штатный УКНЦшный загрузчик из сети.
    А когда неготов? По-хорошему, нужно принимать этот бит всегда, выставили его, дождались готовности, и начинаем работу сначала. То есть, после какого-либо сбоя (а может и вообще, первым действием) приводим контроллер этой командой в начальное состояние.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  10. #249

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    А когда неготов? По-хорошему, нужно принимать этот бит всегда, выставили его, дождались готовности, и начинаем работу сначала. То есть, после какого-либо сбоя (а может и вообще, первым действием) приводим контроллер этой командой в начальное состояние.
    А когда не готов - получим зависание. И если кортекс зависнет, то вывести можно будет только выключением питания. Просторы для фантазии не ограничены, в отличии от ресурсов и возможностей PSoC4, всегда приходится чем-то жертвовать, ну нельзя сделать аппаратный сброс контроллера через запись в его же регистр, здесь все-таки софтварная эмуляция работы с шиной.

  11. #250

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    А когда не готов - получим зависание.
    Ладно, это не особенно важно. А нельзя добавить сигнал управления шинными драйверами, чтобы прикрутить это дело к ДВК? Этот самый CY8CKIT-049 у меня есть, возьму четверку 589АП16, и вперед! Как я понимаю, драйверы должны будут всегда включены на передачу от шины к контроллеру, а в момент, когда контроллер соберется переключить свои GPIO на вывод, т.е. на выдачу данных в шину, надо будет перед этим выдать этот самый сигнал переключения.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

Страница 25 из 33 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 55
    Последнее: 12.04.2024, 16:33
  2. Контроллер дисковода +3 DOS
    от Tim в разделе Внешние накопители
    Ответов: 8
    Последнее: 17.04.2012, 16:32
  3. [Украина]Продам контроллер дисковода УКНЦ,аукцион.
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 25.12.2011, 00:09
  4. Куплю контроллер дисковода
    от djvini в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 21.04.2011, 01:19
  5. Куплю контроллер дисковода для УКНЦ
    от tnt23 в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 27.02.2009, 08:51

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •