Перейти к содержанию
    

STM32F042 считать извне значения регистров с остановленным ядром

Всем привет.

У меня есть небольшая прошивка (0x4740 байт), оставшаяся по наследству, но к ней нет исходников.

Есть исходники для аналогичной платы, но на stm8. Прога достаточно простая.

В ней (в плате без исходников) нужно поменять частоту таймера ШИМа чтобы он не пищал.

Я планировал сделать следующее:

  1. Мне известна ножка шима.
  2. Хочу считать значения регистров в рантайме с остановленным ядром через 1-2 сек после включения:
  3. Считываю AF регистры порта, определяю по ним какой таймер используется.
  4. Лезу в регистр таймера и нахожу значение делителя у таймера.
  5. Нахожу это значение в прошивке. Каким образом - пока вопрос открытый. Скорее всего записано оно одним числом. Кроме простого поиска этого числа по бинарнику буду стараться ориентироваться по адресам этого таймера возле найденных значений. То есть найду несколько таких чисел (делителей) в прошивке. Так как это число будет располагаться в памяти с некоторым оффсетом, то постараюсь в ближайшем пространстве найти еще адрес самого таймера, чтобы отсеять случайные совпадения.
  6. В идеале пошагово пройтись по коду, точнее опкодам и найти место где устанавливается регистр.
  7. Далее заменить значение в прошивке.

Выглядит сложно, но возможно.

Проблема - не смог прочитать регистры проца. Предполагал, что ST-Link v2 сможет (так казалось, что по адресу сможет), но нет. Только в рамках flash.

Есть ли возможность чем-то еще считать регистры или может есть возможность запустить отладку по опкодам?

Спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю сделать намного проще: посмотреть по ноге, какой это может быть таймер. А осциллографом определить частоту ШИМа и заполнение. Все легко и просто. И не нужно лезть в дебри прошивки.

Естественно, исходники самому написать.

 

Времени потратите намного меньше, чем пытаясь подменить нужные числа в бинарнике...

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ногу я знаю. Осциллом глядел, частоту тоже знаю.

Но мне ее нужно изменить. Там 10кГц. Она пищит. Я хочу уменьшить делитель.

 

PS. Стлинк читает регистры, это я пока ошибся. Веду раскопки :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так а в чем проблема написать прошивку? Это же элементарно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...