Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | |
Все, я уже контроллер в шкаф монтирую. 01.03.20 03:56 Число просмотров: 4044
Автор: Zef <Alloo Zef> Статус: Elderman
|
Купили "Овен" с быстрыми входами-выходами и операторскую панель.
|
<operating systems>
|
Как подменить БИОС в ОЗУ? 23.12.19 09:05
Автор: Zef <Alloo Zef> Статус: Elderman
|
Суть проблемы: есть промписюк на 486DX4. Представляет собой плату с 6 EISA-слотами, в которые вставляется мамка и периферия. На писюке ДОС и софтина-ЧПУ. Мамка - SBC-410 сдохла. Почему-то 410 сняты с производства, есть 400 но у них другой БИОС, в котором нет опций переназначения прерываний, из-за этого, предположительно, установленная на писюке софтина ЧПУ глючит. Чипсеты, вроде, полностью совместимые, отличие: на 410 БИОС на 29ЕЕ010, а на 400 - "брусок" с часами и батарейкой.
Так вот, мысль: чем пытаться перезалить БИОС - проблема в том, как его скопировать из 29ЕЕ010 в файл, понятный прошивальщику, не проще ли, после запуска ДОС подменить копию БИОСа прямо в ОЗУ? Засунуть соответствующую прогу-подменяльщик на диск, прописать а autoexec и радоваться?
Теперь, ВНИМАНИЕ, вопрос: мобыть для этого уже есть готовая прога или кусок кода из какого-нить вируса? Было бы весьма не плохо, если бы меня этим выручили.
|
|
Упакованный во флешку код и run-time код, который хранится в... 01.01.20 23:41
Автор: icbook Статус: Незарегистрированный пользователь
|
Упакованный во флешку код и run-time код, который хранится в старших адресах 1-го мегабайта ОЗУ — это две большие разницы. Другими словами, ваша идея абсолютно точно не сработает.
|
|
сомневаюсь 23.12.19 15:10
Автор: dl <Dmitry Leonov>
|
В золотые времена 25+ летней давности что-то подобное изображалось честными резидентами с подменой прерываний BIOS, но раз тут даже нет вариантов переназначения прерываний, то вообще непонятно, куда копать. А просто поменять в памяти - так BIOS же где-то в старших адресах лежит, типа FE00, и как их в реальном режиме переназначить, не представляю.
Кстати, а как это без переназначения прерываний - в таблицу векторов напрямую тоже писать не дают?
|
| |
Там сейчас все хитрее: 24.12.19 05:48
Автор: Zef <Alloo Zef> Статус: Elderman
|
Флешка БИОСа 2 метра. А под, собственно, БИОС у 86го отводится только 64 старших К. Там сейчас только несменяемый загрузчик, который рулит южным мостом, к которому подключена флешка. По команде проца ЮМ переливает ее содержимое в ОЗУ через ДМА. И далее, надо полагать, все работает уже через дескрипторы сегментов. В 16 или 32-разрядном моде - вопрос.
Ну ладно, значительная часть флешки содержит оверлей графического интерфейса настроек (у этого АМИ-БИОСА он графический, даже мышь в принципе возможна, если бы было куда воткнуть). Но куда размещается остальная постоянная часть?
Вектора прерываний сидят, как раз, в ОЗУ, в самых старших адресах 1го мега и настроив перекрывающийся сегмент с правом записи их править можно. У 410 (сдохшей) платы на каждый вектор с 1 по 14 2 варианта - PCI и ISA, причем, переназначение идет, видимо, в чипсете, а прога ЧПУ их сама переписывает на себя. Но из чипсета они просто не доходят.
Там такая фигня получается: по Х и У стоят датчики "0". Перед работой стол едет до этих датчиков, там останавливается и сбрасывает счетчики координат. Потом пляшет от этого положения, как от печки. Весь прикол в том, что по Х он останавливается и обнуляется, а по У - нет и ползет, пока не заклинит. При этом в программе есть "лампочки", показывающие состояния датчиков, так они исправно загораются. Т.е. сигналы датчиков читаются, а сброс счетчика и останов для точности происходит, видимо, по прерыванию и оно, надо полагать, не проходит.
|
| | |
Как успехи? 01.02.20 01:47
Автор: Den <Денис Т.> Статус: The Elderman
|
|
| | | |
Облом. 01.02.20 07:02
Автор: Zef <Alloo Zef> Статус: Elderman
|
Так нифига и не вышло - решили перевести управление на микроконтроллер фирмы "Овен" - тот хоть, точно, будет работать.
|
| | | | | |
Все, я уже контроллер в шкаф монтирую. 01.03.20 03:56
Автор: Zef <Alloo Zef> Статус: Elderman
|
Купили "Овен" с быстрыми входами-выходами и операторскую панель.
|
| | |
Во-первых, в старших 64к реального режима лежат только... 09.01.20 11:09
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 09.01.20 11:32 Количество правок: 2
|
> Флешка БИОСа 2 метра. А под, собственно, БИОС у 86го > отводится только 64 старших К. Там сейчас только > несменяемый загрузчик, который рулит южным мостом, к > которому подключена флешка. По команде проца ЮМ переливает > ее содержимое в ОЗУ через ДМА. И далее, надо полагать, все > работает уже через дескрипторы сегментов. В 16 или > 32-разрядном моде - вопрос.
Во-первых, в старших 64к реального режима лежат только обработчики прерываний BIOS. Во-вторых, когда писюк стартует в реальном режиме, то до первого far jump дескрипторы сегментов в регистрах указывают на конец всего доступного адресного пространства для защищённого режима куда картирована процедура инициализации и развёртывания BIOS в памяти. В-третьих, запретить в реальном режиме перехват прерываний невозможно и ты можешь изменить вектор абсолютно любого прерывания.
> Вектора прерываний сидят, как раз, в ОЗУ, в самых старших > адресах 1го мега и настроив перекрывающийся сегмент с > правом записи их править можно. У 410 (сдохшей) платы на > каждый вектор с 1 по 14 2 варианта - PCI и ISA, причем, > переназначение идет, видимо, в чипсете, а прога ЧПУ их сама > переписывает на себя. Но из чипсета они просто не доходят.
Нет! Таблица векторов прерываний расположена в самых младших адресах начиная с 0 (нулевого), а в старших адресах расположены обработчики прерываний BIOS, на которые и указывают адреса из таблицы векторов прерываний.
Если чип БИОСа съемный, попробуй его просто переставить с SBC-410 на SBC-400, если существенных отличий между ними действительно нет. Хотя, помимо чипсета, на платформах могут быть всякие watchdog таймеры, которые могут использовать отличные адреса портов.
> Там такая фигня получается: по Х и У стоят датчики "0". > Перед работой стол едет до этих датчиков, там > останавливается и сбрасывает счетчики координат. Потом > пляшет от этого положения, как от печки. Весь прикол в том, > что по Х он останавливается и обнуляется, а по У - нет и > ползет, пока не заклинит. При этом в программе есть > "лампочки", показывающие состояния датчиков, так они > исправно загораются. Т.е. сигналы датчиков читаются, а > сброс счетчика и останов для точности происходит, видимо, > по прерыванию и оно, надо полагать, не проходит.
С нестандартными промышленными писюками и не такие чудеса происходят! Мой коллега, в своё время, задолбался вкрячивать патчи в свою прогу под DOS extender на схожие фаствеловские (Fastwell) платформы и тоже с прерываниями возился. Если интересно, через неделю могу его поспрашивать о деталях.
|
| | |
Насколько я понял, переназначение прерываний PCI/ISA - это... 05.01.20 21:51
Автор: ;-) Статус: Незарегистрированный пользователь
|
Насколько я понял, переназначение прерываний PCI/ISA - это обычные настройки PnP BIOS.
Выставив для какое-либо прерывания значение "ISA", ты тем самым говоришь BIOS'у, что это прерывание используется ISA-устройством, и BIOS не будет его использовать для автоконфигурации PCI-устройств.
А SBC-400 похоже вообще не поддерживает PnP, поэтому этих опций и нет в BIOS. Думаю, вряд ли в этом проблема.
Если подозреваешь, что проблема в конфликте PCI/ISA устройств, попробуй использовать другое прерывание (может, джамперами можно выставить).
P.S. Давно не заходил на форум, не подходит пароль...
|
| | | |
Оно использует почти все прерывания 08.01.20 05:25
Автор: Zef <Alloo Zef> Статус: Elderman
|
Причем, выше 8го. И, похоже, в этом на с.д. проблема: какскдное соединение контроллеров прерываний - наследие ХТ и оно сохраняется по сей день, но... в разных чипсетах у старшего и младшего болклв прерывания разные приоритеты. А чипсеты там, вроде, одинаковые, но - разных версий: 06 и 05. Мжет быть, проблема и в этом.
|
| | |
при таком раскладе я точно ничего умного не посоветую 25.12.19 15:00
Автор: dl <Dmitry Leonov>
|
|
|
|