User Tag List

Показано с 1 по 10 из 354

Тема: Корвет: ExtROM Open Source extender

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я, наконец, закончил доработку проекта по результатам предыдущих обсуждений. Итак, что добавлено.

    Самое главное - полностью сделал управление реакцией контроллера на сигнал Control, что так сильно портило жизнь последнее время. Для этого я в API добавил еще одну команду - A1. Для тех, кто не очень понимает, что такое Control и зачем это нужно, привожу цитату из доки по API:

    A1 — управление сигналом Control

    Сигнал Control, выходящий из бита 7 канала С порта PPI2, используется контроллером Extrom для синхронизации начальной загрузки, а после окончания загрузки используется для определения момента перезагрузки корвета. Дело в том, что несознательные разработчики корвета проявили потрясающее разгильдяйство, не выведя на боковой разъем такой важный сигнал, как Reset. В результате приходится определять перезагрузку корвета по уходу этого сигнала в 0 (что происходит при аппаратном сбросе ВВ55). Но проблема уперлась в то, что некоторые умники, пишущие программы для корвета, считают своим долгом дергать этот сигнал как угодно, даже без определенной цели. В результате контроллер уходит в перезагрузку, а программа, работающая на корвете, теряет доступ к диску. Чтобы избежать этой ситуации, и используется данная команда. В поле TRK указывается 0 — запретить перезагрузку от Control, или 1 — разрешить ее. В режиме запрещения перезагрузки, если нажать кнопку Reset корвета, получим на экране сообщение Ошибка шины. В этом случае надо или отключить и снова включить питание, или нажать кнопку сброса на самом контроллере.


    Еще одна проблема того же типа - перенастройка режима ВВ55 некоторыми программами - решается на уровне биоса, записывающего правильное кправляющее слово в ВВ55 при каждом обращении к диску. Правда, при этом может, например, перестать работать цифровой джойстик на канале В. Ну, эту проблему мы как-нибудь решим, когда возникнет.

    Далее, я доработал утилиту mount, как тут обсуждалось.

    1. Ввел проверку наличия интерфейса Extrom. Теперь, если запустить программу с обычной дискеты, без подключенного интерфейса, то она не виснет, а выводит соответствующее сообщение.

    2. Ввел ключ /H - подсказку по командной строке. Для тех, кто не любит читать доки, а таких у нас большинство.

    3. Добавил управление линией Control, используя вышеописанное расширение API. Вообще-то, по логике, эта функция собственно к mount (управлению монтированием образов) не особенно относится. Но уж больно не хотелось писать еще одну, отдельную утилиту. Так что пока засунул сюда, а там посмотрим.

    MOUNT /K OFF - отключает перезагрузку от Control
    MOUNT /K ON - включает ее обратно.

    Режим OFF следует включать перед запуском тех программ, которые лезут в интерфейс и самопроизвольно трогают сигнал Control. Если программа в процессе работы вдруг теряет доступ к диску, а лампочка control в контроллере вдруг зажигается - значит, этот режим как раз вам и нужен.

    В прошивке контроллера, кроме ввода нового вызова API, я исправил некоторые мелкие ошибки, ввел более тщательную диагностику наличия карты - теперь, в случае отстутствия карты, в терминал выдается сообщение "SD карта не найдена", и вымаргивается ошибка 5. Разрешил даже в ошибочном состоянии прерывание от сигнала Control - это позволяет запустить загрузчик фазы 1 и, таким образом, проверить работу интерфейса ВВ55.
    Ну и, самое главное, включил, наконец, режим удвоения частоты SPI - теперь карта работает на максимально возможной скорости. Правда, производительности это добавило только процентов 20 - сказываются тормоза драйвера VinxFS.

    Во вложении лежит новая прошивка контроллера, KDI с обновленным mount, и дока по API.

    На сегодняшний день состояние проекта такое.

    - Схема контроллера полностью готова и проверена мной при двухкратной сборке - на вставной макетке и окончательной плате. Еще ESL скоро доделает свою плату - будет уже три успешных сборки.

    - API уже устаканили и по протоколу, и по составу команд. Реализован полностью и в прошивке контроллера, и в эмуляторе. И документация по API уже написана.

    - Прошивка контроллера готова и более-менее отлажена. По крайней мере, последние дни я погонял несколько стресс-тестов и ошибок не выловил.

    - Клиентская утилита управления образами дисков MOUNT готова и более-менее проверена. К сожалению пока я один только могу ее проверить, но скоро и ESL подтянеся.

    - Эмулятор тоже почти готов. В нем еще нет поддержки последнего вызова A1, но ESL его, надеюсь, прикрутит. Я этим заниматься не стал, отлаживал на реальном железе, тем более что оно заработало практически с первого раза.

    Ну, вроде бы, и все. Теперь мне надо сесть и написать полную документацию по проекту - наверное, займусь в выходные. А ESL обещал доделать универсальный загрузчик систем, тоже являющийся важной частью проекта. Также ему надо доделать свою плату контроллера, и потестировать мою прошивку у себя. После этого можно объявлять релиз. Интересно, хоть кто-нибудь, кроме меня и ESL, соберет себе такое устройство?

    Из дальнейших планов я хочу подправить BIOS для поддержки больших дисков. По первым прикидкам - можно примерно 5Мб диск сделать, на большее не хватит ОЗУ. А то сидеть в 21 веке на мелких 800м образах как-то уже ломает.

    Еще тут Marinovsoft высказывал хотелку графической морды над утилитой mount. Может, кто-нибудь возьмется? Я, как старый системщик, не особо умею делать гуи, всю жизнь предпочитал комстроку, за редким исключением. Мне проще прошивки писать, чем интерфейс пользователя.

    Вообщем, мы потихонечку подбираемся к концу. Даже грустно немного. Хорошая была тренировка для мозгов.
    Вложения Вложения

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

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

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

Похожие темы

  1. Open source firmware for the Spectrum
    от zx-kit в разделе Разный софт
    Ответов: 60
    Последнее: 29.05.2014, 13:53
  2. open-source эмуляторы под .NET
    от Sawyer в разделе Эмуляторы
    Ответов: 1
    Последнее: 04.01.2011, 17:47
  3. GP2X F100 Open Source Gaming Console
    от CodeMaster в разделе Зарубежные компьютеры
    Ответов: 3
    Последнее: 12.06.2010, 23:51
  4. Open Source эмуль...
    от rg_software в разделе Эмуляторы
    Ответов: 50
    Последнее: 06.12.2006, 11:57

Ваши права

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