dlinyj: (Default)
[personal profile] dlinyj
Наверное у многих читателей моего ЖЖ сложилось ложное представление, что я коллекционер старого железа, который только и делает что его ремонтирует и моет. Да, я занимаюсь этим эпизодически, стал писать об этом, потому что народ интересует текучка.

Однако, есть по настоящему интересные и зубодробительные штуки, например, как отлаживать код BIOS и реализовать свой "пошаговый" отладчик.


Суровая аппаратная отладка кода BIOS

К сожалению, я не разработчик материнской платы, у меня нет её схемотехники, а также отсутствует отладочные инструменты. У меня стояла задача запустить BIOS схожей архитектуры на этом железе (зачем и почему, пока рассказывать не буду). Без всяких отладок, прошивка вела себя странно, она и не зависала с ошибкой, но и не загружалась. И мне хотелось понять, на каком же этапе она отваливается.

Сама прошивка BIOS у меня была открыта в IDA Pro, задача была понять в каком же месте кода происходит отвал. Конечно, бесценно знать состояние регистров, месторасположение, реализовать пошаговую отладку, но мне пока не хотелось сильно влезать паяльником в плату и пока морально не готов сильно перепахивать код основного BIOS.

Решение пришло само собой: нужно узнать адрес, где же происходит всякое нехорошее. А адрес можно узнать с помощью логического анализатора, который будет установлен на микросхему BIOS, точно на ножки адреса.


Таракан отладочных щупов

Идея оказалась рабочей, и изначально прямо таки блестящей. Хорошо виден старт, и адреса верно подхватились.


Отображение адресов в логическом анализаторе

Проще в тексте увидеть:

      0    FFFE
      1    FFF1
      2    FFF3
      3    FFF5
      4    FFF7
      5    FFF9
      6    FFFB
      7    E05B
      8    E05D
      9    E05F
     10    E061
     11    E063
     12    81AF
     13    81B1
     14    81B3
     15    81AF
     16    81B1
     17    81B3


В IDA точное соответствие:




То есть отладка отлично работает, побайтно вычитывается из ПЗУ данные и далее по ним идут переходы.
Но, что я не предполагал, что есть всякие циклы ожидания...


Циклы ожидания

И, проблема в том, что количество памяти логического анализатора ограничена, и таким циклом она забивается моментально...


Мы подошли к концу памяти анализатора

Короче говоря, без логического анализатора с большим количеством памяти, при этом достаточной частотой дискретизации (40 МГц тактовая, это вам не шутки), может помочь решить ситуацию. Либо надо искать способы пошаговой отладки.

Внимательные читатели могут заметить, что я перехватываю POST-код 02.


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

Date: 2025-01-31 09:30 pm (UTC)
From: [identity profile] lubezniy.livejournal.com

А что, если некоторые циклы ожидания временно убрать, перепрошив ПЗУ? NOP-ами заменить, например.

Date: 2025-01-31 10:45 pm (UTC)
From: [identity profile] dlinyj.livejournal.com

Разумнее было бы прошивку не трогать и понять где оно остаётся пока так. Другое дело, что циклы как-то можно опустить, да.

Date: 2025-01-31 11:00 pm (UTC)
From: [identity profile] lubezniy.livejournal.com

Не спорю; разумнее, но, увы, не дешевле.

Date: 2025-02-02 01:39 am (UTC)
From: [identity profile] masterspammer.livejournal.com

Радикально уменьшив скорость работы машины — можно будет успевать чистить память анализатора?

Date: 2025-02-04 05:23 pm (UTC)
From: [identity profile] mega-mosk.livejournal.com

отложенный старт анализатора временными окнами +- в размер памяти

Date: 2025-02-09 09:16 pm (UTC)
From: [identity profile] murz0id.livejournal.com

Просто охренеть. Вот это именно та вершина, которой я всегда боялся, из за недосягаемости. Откуда анализатор? Искренне рад за тебя. У меня есть издававшаяся в 90-е литература по схемотехнике, если нужно, давай проработаем вопрос, как тебе передать.

Date: 2025-02-17 12:10 pm (UTC)
From: [identity profile] dlinyj.livejournal.com

>>Просто охренеть. Вот это именно та вершина, которой я всегда боялся, из за недосягаемости.


Ничего недосягаемого там нет. Это уровень второго-третьего курса технического ВУЗа.

>>Откуда анализатор?


Достаточно длинная история. Если кратко, то продавал его товарищ в Мусоровозе. Его приглядел мой друг, а купил его для нас третий товарищ. Забрал его, когда был в командировке В Питере. Сейчас взял попользоваться.

>>У меня есть издававшаяся в 90-е литература по схемотехнике, если нужно, давай проработаем вопрос, как тебе передать.
Да я что-то понабрал. Читать некогда. Плюс логистика сейчас никакущая.

Date: 2025-08-18 02:11 pm (UTC)
From: [identity profile] ewoke.livejournal.com

Это именно вершина, не скромничайте )



https://nopredel.narod.ru/sbor_jur/10.html документы сильно позже чем ХТ-машины, это уже эпоха Пентиумов, но тут тоже глубокая схемотехника мат. плат, вдруг окажется полезным.

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 06:31 am
Powered by Dreamwidth Studios