RadiatoR 2 11 августа, 2020 Опубликовано 11 августа, 2020 · Жалоба Всем привет. У меня есть небольшая прошивка (0x4740 байт), оставшаяся по наследству, но к ней нет исходников. Есть исходники для аналогичной платы, но на stm8. Прога достаточно простая. В ней (в плате без исходников) нужно поменять частоту таймера ШИМа чтобы он не пищал. Я планировал сделать следующее: Мне известна ножка шима. Хочу считать значения регистров в рантайме с остановленным ядром через 1-2 сек после включения: Считываю AF регистры порта, определяю по ним какой таймер используется. Лезу в регистр таймера и нахожу значение делителя у таймера. Нахожу это значение в прошивке. Каким образом - пока вопрос открытый. Скорее всего записано оно одним числом. Кроме простого поиска этого числа по бинарнику буду стараться ориентироваться по адресам этого таймера возле найденных значений. То есть найду несколько таких чисел (делителей) в прошивке. Так как это число будет располагаться в памяти с некоторым оффсетом, то постараюсь в ближайшем пространстве найти еще адрес самого таймера, чтобы отсеять случайные совпадения. В идеале пошагово пройтись по коду, точнее опкодам и найти место где устанавливается регистр. Далее заменить значение в прошивке. Выглядит сложно, но возможно. Проблема - не смог прочитать регистры проца. Предполагал, что ST-Link v2 сможет (так казалось, что по адресу сможет), но нет. Только в рамках flash. Есть ли возможность чем-то еще считать регистры или может есть возможность запустить отладку по опкодам? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 11 августа, 2020 Опубликовано 11 августа, 2020 (изменено) · Жалоба Предлагаю сделать намного проще: посмотреть по ноге, какой это может быть таймер. А осциллографом определить частоту ШИМа и заполнение. Все легко и просто. И не нужно лезть в дебри прошивки. Естественно, исходники самому написать. Времени потратите намного меньше, чем пытаясь подменить нужные числа в бинарнике... Изменено 11 августа, 2020 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RadiatoR 2 11 августа, 2020 Опубликовано 11 августа, 2020 · Жалоба Ногу я знаю. Осциллом глядел, частоту тоже знаю. Но мне ее нужно изменить. Там 10кГц. Она пищит. Я хочу уменьшить делитель. PS. Стлинк читает регистры, это я пока ошибся. Веду раскопки :D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 11 августа, 2020 Опубликовано 11 августа, 2020 · Жалоба Так а в чем проблема написать прошивку? Это же элементарно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться