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

Отладка микроконтроллера STM32 со снятием и подачей питания - как?

В аппаратно-программной системе проблема при подаче питания. Требуется отладка.  Но отладчик STM32CubeIDE отваливается при снятии с STM32 питания.  Как быть?

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


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

Запускать без отладчика. В интересующих местах программы дергать ногами, писать их состояние логическим анализатором. Выводить диагностику в USART, смотреть ее в терминалке на компе.

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


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

1 час назад, Сергей Борщ сказал:

Запускать без отладчика. В интересующих местах программы дергать ногами, писать их состояние логическим анализатором. Выводить диагностику в USART, смотреть ее в терминалке на компе.

Спасибо, Сергей.  Эти методы известны.  Аппаратный UART есть.  Вопрос я задал  только потому что думал мало ли, может есть какой-то "волшебный" способ "подхватывать" коннект Jlink/ST-link и затем дебаггеру, а я-то не знаю.... 😄   (зонды-отладчики не обесточиваются, обесточивается только подопечный мк)

Вообще, с этим как-то странно. Очень "хрупкая" конструкция. Мне все-таки кажется должен быть способ чтобы отладчик (особенно JLink) ловил poweron и заново реинитил инфраструктуру. Придется шерстить JLink User Manual 🙂

Еще удивляет отвал Segger  RTT с отсутствием автоматического реконнекта, что делает Segger RTT также проблемным.  

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


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

6 минут назад, std сказал:

Вообще, с этим как-то странно. Очень "хрупкая" конструкция. Мне все-таки кажется должен быть способ чтобы отладчик (особенно JLink) ловил poweron и заново реинитил инфраструктуру.

Какую именно "инфраструктуру"? Периферию МК? Так она точно так же инитится и по обычному сбросу. Который можете подать без выкл.питания. Если у вас проблема с её инитом - так подавайте сброс на МК и отлаживайте J-Link-ом без выкл.питания. Ничто не мешает поставить бряк на начало кода (хоть сразу на вектор сброса) и подать reset на МК.

Если же проблемы во внешних (относительно МК) компонентах, то непонятно - как тут поможет инициализация периферии эмулятором? Если проблемы в работе вашей программы с внешними компонентами сразу после старта, то можете запитать МК отдельно от остальной схемы; подключиться к нему эмулятором (остановив исполнение на каком-то датчике наличия внешнего питания); а потом подать питание на внешние компоненты, запустив таким образом и исполнение программы. Но конечно могут быть проблемы с паразитной запиткой этих внешних компонентов от сигналов МК.

PS: Имхо - основной инструмент отладки программы, это не эмулятор, а голова программиста. Она и должна позволять локализовать проблему, а потом решать её. Выбирая наиболее подходящие инструменты. Если проблема например - в каких-то невыдерживаемых вашей программой времянках обращения к внешним компонентам после вкл.питания, то эмулятор тут вообще никак не поможет. Так что - не эмулятор дрессировать нужно, а свою схему изучать и даташиты на компоненты. И думать.

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


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

20 минут назад, jcxz сказал:

Какую именно "инфраструктуру"? Периферию МК? Так она точно так же инитится и по обычному сбросу. Который можете подать без выкл.питания. Если у вас проблема с её инитом - так подавайте сброс на МК и отлаживайте J-Link-ом без выкл.питания. Ничто не мешает поставить бряк на начало кода (хоть сразу на вектор сброса) и подать reset на МК.

Если же проблемы во внешних (относительно МК) компонентах, то непонятно - как тут поможет инициализация периферии эмулятором? Если проблемы в работе вашей программы с внешними компонентами сразу после старта, то можете запитать МК отдельно от остальной схемы; подключиться к нему эмулятором (остановив исполнение на каком-то датчике наличия внешнего питания); а потом подать питание на внешние компоненты, запустив таким образом и исполнение программы. Но конечно могут быть проблемы с паразитной запиткой этих внешних компонентов от сигналов МК.

PS: Имхо - основной инструмент отладки программы, это не эмулятор, а голова программиста. Она и должна позволять локализовать проблему, а потом решать её. Выбирая наиболее подходящие инструменты. Если проблема например - в каких-то невыдерживаемых вашей программой времянках обращения к внешним компонентам после вкл.питания, то эмулятор тут вообще никак не поможет. Так что - не эмулятор дрессировать нужно, а свою схему изучать и даташиты на компоненты. И думать.

 

Теоретики в треде. Можно быть спокойными. 😉

Как насчет того что:
1. Подключается чужое оборудование?  Именно при запитке (и только при запитке, при сбросе моего мк нет) сбой селф-теста. Сбой аппаратный. Но я могу его выловить именно мк.
2. Дело в поле, в командировке.
3. Из прибора "торчит" и доступна только SWO отладка.
4. Прибор - большой герметичный железный йащег. Разбирать могу, но отвинтить придется сто тыщ винтов и снять столько же резинок.
5. Йащег находится под большой работающей  машиной страшнее танка.
6. Тут производятся работы строго по времени даже ночью, нет недель, дней и даже часов на думать, изучать даташиты и гладить девичьи груди (для успокоения и релакса 😁), как я это делаю в городе, в родных пенатах, при разработке...  

 

Еще теорий? 😁
 

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


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

Отдельно подавать питание на проблемную часть устройства. 
Вероятнее всего, не выполнены условия по ожиданию готовности после подачи питания внешних по отношению к МК микросхем. Я сам на такое попадался по недосмотру. Посему, да, подобные косяки лучше отслеживать и решать еще на этапе разработки, чем потом на готовом "жилезном йасчике" с кучей винтиков.
И здесь лучше смотреть не саму отладку МК, а осциллографом проверять интервал времени между выходом питающих напряжений на заданный уровень и началом коммуникациии мкироконтроллера с микросхемами, сверяясь с документацией.
В простейшем случае, после запуска МК добавить цикл задержки на пару-тройку сотен миллисекунд перед началом любых коммуникаций с внешними микросхемами.

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


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

20 минут назад, std сказал:

Теоретики в треде. Можно быть спокойными. 😉

Вам нужны практики? Практики ищутся в разделе "Предлагаю работу". Для тех кто сам не может её сделать.

20 минут назад, std сказал:

1. Подключается чужое оборудование?  Именно при запитке (и только при запитке, при сбросе моего мк нет) сбой селф-теста. Сбой аппаратный. Но я могу его выловить именно мк.

Сбой где? В чужом оборудовании? Тогда почему ищется не производителем этого оборудования?

В вашем программе? Тогда при чём тут "чужое оборудование"? Тут большая часть программистов на форуме работает с "чужим оборудованием". Которое тоже включается и стартует. Но это никак не мешает им отлаживать работу с ним.

20 минут назад, std сказал:

2. Дело в поле, в командировке.

Известная тема. Кто не смог отладить у себя на столе или в лаборатории, тот потом отлаживает "в поле".  :sarcastic:

20 минут назад, std сказал:

4. Прибор - большой герметичный железный йащег. Разбирать могу, но отвинтить придется сто тыщ винтов и снять столько же резинок.

Вы здесь ищите того, кто вам их открутит? Или к чему эта сентенция вообще? Наймите гастарбайтера, который будет вам их откручивать.

20 минут назад, std сказал:

6. Тут производятся работы строго по времени даже ночью, нет недель, дней и даже часов на думать, изучать даташиты и гладить девичьи груди (для успокоения и релакса 😁), как я это делаю в городе, в родных пенатах, при разработке...  

К чему эти причитания вообще? Вы думаете вы один, кто работает с такими устройствами?

20 минут назад, std сказал:

Еще теорий? 😁

Цель вашего поста какова? Пофлеймить? Найти работника, который отладит вашу программу и выловит все баги, коих там наплодили? или...?

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


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

23 минуты назад, std сказал:

Йащег находится под большой работающей  машиной страшнее танка.

Я тоже боюсь "большой работающей машины страшнее танка". На полном серьезе. Потому что видал немало ЧП с раздавленными и покалеченными человеками, залезшими в опасные места. И наставления по ТБ гласят, что нехрен лезть туда, где нет безопасности. 

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


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

8 минут назад, EdgeAligned сказал:

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

Вполне вероятно. Но похоже наш ТС не из тех, кто ищет проблему у себя.  :unknw:

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


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

В общем, автору только один, совершенно практический совет - снимайте этот "железячный йащег" и тыкайте на лабораторном столе в полевой лаборатории. Если он не хотит пострадать о своих же действий в опасной зоне.
Если топикстартер является автором этого проблемного "жилезного ящека", то вина в недоработках лежит на нем - что-то где-то не учел, проморгал. Да, я тоже ошибался, тоже косячил, с кем не бывает. 

Что делать, если сам накосячил, а нет времени разбираться в документации? Ну самое простое, как я уже говорил - внести в программу МК задержку на сотни миллисекунд (даже на 1-2 секунды или даже больше) после подачи питания, чтобы все переходные процессы в подключаемом оборудовании устаканились и оно стало доступным для коммуникации. Ну, если дело именно в старте после подачи питания. Самая, кстати, распространенная проблема - при перезагрузке под отладчиком без снятия питания работает чики-пуки, а как только передергивается питание, да еще и после разрядки кондеров, тут оно то и вылезает. Знаю по себе, сам так профанился. Не в теории, а на практике.

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


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

22 hours ago, std said:

В аппаратно-программной системе проблема при подаче питания. Требуется отладка.  Но отладчик STM32CubeIDE отваливается при снятии с STM32 питания.  Как быть?

У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link.

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


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

1 minute ago, TOG said:

У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link.

Скормить не проблема, было что скармливать (elf наверняка есть).

 

19 hours ago, std said:

3. Из прибора "торчит" и доступна только SWO отладка.

Подключайтесь JLink и смотрите что происходит через Ozone.

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


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

4 минуты назад, TOG сказал:

У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link.

Ничем не поможет. Подцепиться к работающему процессу может и STM32CubeIDE и даже обычный Eclipse.

Проблема в GBD сервере. Он завершается когда теряет коннект с таргетом что и происходит при снятии питания (RTT - тоже). Процедура автоматического коннекта при появлении питания в сеггеровском ПО почему то не предусмотрена.

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


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

8 минут назад, _3m сказал:

Процедура автоматического коннекта при появлении питания в сеггеровском ПО почему то не предусмотрена.

Только как это помогло бы ТС даже если бы была предусмотрена? Очевидно - никак. Потому как сама процедура подключения отладчика - не мгновенна. И за это время все переходные процессы в страшном "ящике" ТС пройдут. И поведение программы будет совсем другим (чем без отладчика).

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


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

Пусть записывает что у него при стартеи при работе. И потом смотрит внимательно, что там сбрасывается и когда.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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