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

Анализ работы программы под отладчиком

STM32F401 / Linux Mint / Eclipse / GCC/ Можно ли программно установить, выолняется ли программа в данный момент под отладчиком(STLink, JLinк) и в зависимости от этого организовать ветвление программы. Необходимость в этом возникла вследствие того, что ножки процессора использованы под завязку, в том числе и SWCLK и SWDIO.

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

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


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

Отладчик может при старте как-то под себя настраивать регистр DBGMCU_CR, а программа сравнивать содержимое этого регистра со значением по-умолчанию.

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


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

Необходимость в этом возникла вследствие того, что ножки процессора использованы под завязку, в том числе и SWCLK и SWDIO.

Как по мне это звоночек менять чип. Не стоят проблемы с отладкой этого.

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


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

Как по мне это звоночек менять чип. Не стоят проблемы с отладкой этого.

В общем и целом согласен. Но пока это так, к сожалению.

 

Отладчик может при старте как-то под себя настраивать регистр DBGMCU_CR, а программа сравнивать содержимое этого регистра со значением по-умолчанию.

 

Все регистры DBG имеют значение по умолчанию. Видимо тему можно считать закрытой.

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


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

Вообще, отладчик перед или после загрузки кода может в любой регистр что угодно записать. Программа может это отслеживать.

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


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

Вообще, отладчик перед или после загрузки кода может в любой регистр что угодно записать. Программа может это отслеживать.

 

Спасибо, получилось. Но оказалось что мне это не нужно. Выяснил удивительную вещь, на мой взгляд. К этим двум линиям(SWDIO, SWCLK ) у меня подключена часть входных линий матричной клавиатуры 2х7. Если использовать JLink а не STLink то клавиатура полностью сохраняет работоспособность при альтернативной (SWD) конфигурации пинов. Причем даже при включенной отладке. Подключение в качестве отладчика STLink работу нарушает - видимо этот отладчик более плотно занимает шину. Или даже в статике - без отладки- утягивает уровень пинов в активное (для клавиатуры) - единичное - состояние

 

 

......все оказалось не совсем так хорошо. Иногда нажатие кнопок расположенных на этих линиях приводит к прохождению неизвестных команд по SWD и сбоям в работе программы. Чего вполне следовало ожидать.

 

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

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


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

Для меня ножки SWCLK и SWDIO мертвые всегда изначально и везде. Это как NRST.

Потому даже в голову их не беру.

 

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


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

Для меня ножки SWCLK и SWDIO мертвые всегда изначально и везде. Это как NRST.

Так эта тема - о костылях для схемных багов.

Изначально устройство было спроектировано неправильно и без необходимого запаса по ресурсам (не было нормального ТЗ, по которому можно было грамотно выбрать элементную базу; или неграмотно сделан выбор элементной базы на основе ТЗ; или было лень учить что-то новое и делали "на том что знаем"; или ...).

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

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


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

Так эта тема - о костылях для схемных багов.

Изначально устройство было спроектировано неправильно и без необходимого запаса по ресурсам (не было нормального ТЗ, по которому можно было грамотно выбрать элементную базу; или неграмотно сделан выбор элементной базы на основе ТЗ; или было лень учить что-то новое и делали "на том что знаем"; или ...).

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

 

Отчего же нет? Признаю. :rolleyes: Просто схема красиво вписывалась в 64 ногий корпус. Казалось в этом "что то есть" :rolleyes: В схеме еще имеется связь по SPI с дополнительной линией синхронизации и гальванической развязкой. Таким образом требовалось пять развязанных линий. Но я вписался в 4 - один корпус ISO7241 - тоже поимел сложности. Но в итоге доволен. Ну вот есть такая склонность - минимизация аппаратных решений...

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

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


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

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

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

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

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

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

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

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

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

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