Jump to content

    
Sign in to follow this  
smk

Правка файла на ASM

Recommended Posts

2 minutes ago, smk said:

EEPROM имеется. Хранит все настройки для измерения.

Если ОНО вылетает сразу при работе с PC на новой прошивке - это хорошо.

Могобыть в EEPROM прописаны CRC коды защиты (если причина в этом).

Проверить можно, если аккуратно (!) снять родную EEPROM, подклчить такую же новую-чистую и на старой прошивке (неглючной) включить прибор. 

Затем тотже "номер" проделать с новой прошивкой и пустой EEPROM.

 

Share this post


Link to post
Share on other sites

Можно. Логика пока не ясна, но проделать можно.

Хотелось бы уточнить когда можно снять питание в этой процедуре, а когда нельзя?

Share this post


Link to post
Share on other sites
6 minutes ago, smk said:

Можно. Логика пока не ясна, но проделать можно.

Исходник достаточно большой, хотя (а может - "тем более") 256 страниц ASM. Так можно попробовать локализовать причину-зависимость, а затем уже копать код.

Если повезет - и есть завязка на EEPROM - разбираем работу с ней.

ps сравнил асм рус-англ, все вроде норм. (на первый взгляд, диффером смотрел).

Share this post


Link to post
Share on other sites

Ну да. Норм. Только не работает. Вывод однозначный. Или проверяется какая-то контрольная сумма или что0то берется из строки как константа.

CRC_FE    EQU      2E7CH

Вот это что? А ведь там хранится 0x53. Откуда это там? Если эта ячейка не используется, то после сброса памяти там будет 0xff, а там 0x53.

Share this post


Link to post
Share on other sites
10 minutes ago, smk said:

Ну да. Норм. Только не работает. Вывод однозначный. Или проверяется какая-то контрольная сумма или что0то берется из строки как константа.


CRC_FE    EQU      2E7CH

Вот это что? А ведь там хранится 0x53. Откуда это там? Если эта ячейка не используется, то после сброса памяти там будет 0xff, а там 0x53.

Да, видел я это. Возможно. Кстати, не вижу на плате EEPROM (?) Лучшеб принципиалка (детализация не нужна, надо знать на какие лапы процессора подключен EEPROM)

ps

Что "норм", и что "не работает". Какой вывод ?  

Если подключить пустую EEPROM, прибор не работает вообще ?

Share this post


Link to post
Share on other sites

EEPROM при сборке всегда ставится новая чистая. Прибор работает. Оптик при настройке промисывает туда некоторые коэффициенты и временные диаграммы. Для понимания выложу схему фотоприемника. EEPROM на схеме U13 (24C256D).

kolor3.zip

Собственно фотоприемник.

FD_INTEGRATOR.zip

Share this post


Link to post
Share on other sites

При поверхностном просмотре и при внимательном местами все вроде бы норм. Но вносим правку и не работает. Строки там видать не только строки. Они еще где-то но уже не строки.

Share this post


Link to post
Share on other sites
1 minute ago, smk said:

При поверхностном просмотре и при внимательном местами все вроде бы норм. Но вносим правку и не работает. Строки там видать не только строки. Они еще где-то но уже не строки.

Это тоже вариант. Например версия софта (она светится на экране и онаже выдается на PC при обмене). Ж, IMHO  Так можно много нафантазировать.

CRC_FE    EQU      2E7CH

Это макро, которое в Вашем исходнике не упоминается. Поскольку это константа, ее автор мог отказаться от ее использования, а "забить" эти числа в виде кода.

Share this post


Link to post
Share on other sites

Можно попробовать не менять символы, а изменить пару команд. На эквивалентную замену, делающую то же самое действие, но имеющую другой код. Если не заработает - видимо где-то есть проверка CRC или чего-то подобного.

Share this post


Link to post
Share on other sites
17 minutes ago, jcxz said:

Можно попробовать не менять символы, а изменить пару команд.  . . . 

Я бы проверил сначала на "переместимость" кода, те после первого JMP Label_XXX   поставить несколько 1-2-3 штуки NOP.

Там завязка может быть не только на CRC, но и на "привязку" к адресам, которые могут фигурировать в коде не как метки, а как физ.адреса (константы).

Если код останется рабочим - есть гут.

Share this post


Link to post
Share on other sites
2 минуты назад, k155la3 сказал:

Я бы проверил сначала на "переместимость" кода, те после первого JMP Label_XXX   поставить несколько 1-2-3 штуки NOP.

Там завязка может быть не только на CRC, но и на "привязку" к адресам, которые могут фигурировать в коде не как метки, а как физ.адреса (константы).

Если поставите доп. NOP-ы то и код думаю тоже может измениться (длины переходов и т.п.). В зависимости от системы команд.

Share this post


Link to post
Share on other sites
5 minutes ago, jcxz said:

Если поставите доп. NOP-ы то и код думаю тоже может измениться (длины переходов и т.п.). В зависимости от системы команд.

Да. Если переходы вычисляются ассемблером - то все должно остаться рабочим (и прямые и относительные). Если автор туда вписал "отсебятину" в виде констант (уж не знаю по какой причине) - будет "все пропало". Ну, например не хотел чтобы кто-то менял код. Откомпилил нормальный исходник с метками, получил листинг с физ. адресами, переписал пару-тройку-десяток физадресов из листинга в исходный код ASM (вместо указания меток :acute:) и сдал боссу. "К пуговицам претензии есть ?"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this