Jump to content

    

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

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

Share this post


Link to post
Share on other sites
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

Автор, в таких случаях попробуй перевод без изменения длины строк.

Если строка короче, забивай пробелами.

Share this post


Link to post
Share on other sites

Нужно начать с изменения всего одного символа и проверить будет ли работать. 

Ой, esaulenka уже предлагал.)

Edited by v05

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now