std 8 19 июня Опубликовано 19 июня · Жалоба В аппаратно-программной системе проблема при подаче питания. Требуется отладка. Но отладчик STM32CubeIDE отваливается при снятии с STM32 питания. Как быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 19 июня Опубликовано 19 июня · Жалоба Запускать без отладчика. В интересующих местах программы дергать ногами, писать их состояние логическим анализатором. Выводить диагностику в USART, смотреть ее в терминалке на компе. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
std 8 19 июня Опубликовано 19 июня · Жалоба 1 час назад, Сергей Борщ сказал: Запускать без отладчика. В интересующих местах программы дергать ногами, писать их состояние логическим анализатором. Выводить диагностику в USART, смотреть ее в терминалке на компе. Спасибо, Сергей. Эти методы известны. Аппаратный UART есть. Вопрос я задал только потому что думал мало ли, может есть какой-то "волшебный" способ "подхватывать" коннект Jlink/ST-link и затем дебаггеру, а я-то не знаю.... 😄 (зонды-отладчики не обесточиваются, обесточивается только подопечный мк) Вообще, с этим как-то странно. Очень "хрупкая" конструкция. Мне все-таки кажется должен быть способ чтобы отладчик (особенно JLink) ловил poweron и заново реинитил инфраструктуру. Придется шерстить JLink User Manual 🙂 Еще удивляет отвал Segger RTT с отсутствием автоматического реконнекта, что делает Segger RTT также проблемным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 19 июня Опубликовано 19 июня · Жалоба 6 минут назад, std сказал: Вообще, с этим как-то странно. Очень "хрупкая" конструкция. Мне все-таки кажется должен быть способ чтобы отладчик (особенно JLink) ловил poweron и заново реинитил инфраструктуру. Какую именно "инфраструктуру"? Периферию МК? Так она точно так же инитится и по обычному сбросу. Который можете подать без выкл.питания. Если у вас проблема с её инитом - так подавайте сброс на МК и отлаживайте J-Link-ом без выкл.питания. Ничто не мешает поставить бряк на начало кода (хоть сразу на вектор сброса) и подать reset на МК. Если же проблемы во внешних (относительно МК) компонентах, то непонятно - как тут поможет инициализация периферии эмулятором? Если проблемы в работе вашей программы с внешними компонентами сразу после старта, то можете запитать МК отдельно от остальной схемы; подключиться к нему эмулятором (остановив исполнение на каком-то датчике наличия внешнего питания); а потом подать питание на внешние компоненты, запустив таким образом и исполнение программы. Но конечно могут быть проблемы с паразитной запиткой этих внешних компонентов от сигналов МК. PS: Имхо - основной инструмент отладки программы, это не эмулятор, а голова программиста. Она и должна позволять локализовать проблему, а потом решать её. Выбирая наиболее подходящие инструменты. Если проблема например - в каких-то невыдерживаемых вашей программой времянках обращения к внешним компонентам после вкл.питания, то эмулятор тут вообще никак не поможет. Так что - не эмулятор дрессировать нужно, а свою схему изучать и даташиты на компоненты. И думать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
std 8 19 июня Опубликовано 19 июня · Жалоба 20 минут назад, jcxz сказал: Какую именно "инфраструктуру"? Периферию МК? Так она точно так же инитится и по обычному сбросу. Который можете подать без выкл.питания. Если у вас проблема с её инитом - так подавайте сброс на МК и отлаживайте J-Link-ом без выкл.питания. Ничто не мешает поставить бряк на начало кода (хоть сразу на вектор сброса) и подать reset на МК. Если же проблемы во внешних (относительно МК) компонентах, то непонятно - как тут поможет инициализация периферии эмулятором? Если проблемы в работе вашей программы с внешними компонентами сразу после старта, то можете запитать МК отдельно от остальной схемы; подключиться к нему эмулятором (остановив исполнение на каком-то датчике наличия внешнего питания); а потом подать питание на внешние компоненты, запустив таким образом и исполнение программы. Но конечно могут быть проблемы с паразитной запиткой этих внешних компонентов от сигналов МК. PS: Имхо - основной инструмент отладки программы, это не эмулятор, а голова программиста. Она и должна позволять локализовать проблему, а потом решать её. Выбирая наиболее подходящие инструменты. Если проблема например - в каких-то невыдерживаемых вашей программой времянках обращения к внешним компонентам после вкл.питания, то эмулятор тут вообще никак не поможет. Так что - не эмулятор дрессировать нужно, а свою схему изучать и даташиты на компоненты. И думать. Теоретики в треде. Можно быть спокойными. 😉 Как насчет того что: 1. Подключается чужое оборудование? Именно при запитке (и только при запитке, при сбросе моего мк нет) сбой селф-теста. Сбой аппаратный. Но я могу его выловить именно мк. 2. Дело в поле, в командировке. 3. Из прибора "торчит" и доступна только SWO отладка. 4. Прибор - большой герметичный железный йащег. Разбирать могу, но отвинтить придется сто тыщ винтов и снять столько же резинок. 5. Йащег находится под большой работающей машиной страшнее танка. 6. Тут производятся работы строго по времени даже ночью, нет недель, дней и даже часов на думать, изучать даташиты и гладить девичьи груди (для успокоения и релакса 😁), как я это делаю в городе, в родных пенатах, при разработке... Еще теорий? 😁 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 81 19 июня Опубликовано 19 июня · Жалоба Отдельно подавать питание на проблемную часть устройства. Вероятнее всего, не выполнены условия по ожиданию готовности после подачи питания внешних по отношению к МК микросхем. Я сам на такое попадался по недосмотру. Посему, да, подобные косяки лучше отслеживать и решать еще на этапе разработки, чем потом на готовом "жилезном йасчике" с кучей винтиков. И здесь лучше смотреть не саму отладку МК, а осциллографом проверять интервал времени между выходом питающих напряжений на заданный уровень и началом коммуникациии мкироконтроллера с микросхемами, сверяясь с документацией. В простейшем случае, после запуска МК добавить цикл задержки на пару-тройку сотен миллисекунд перед началом любых коммуникаций с внешними микросхемами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 19 июня Опубликовано 19 июня · Жалоба 20 минут назад, std сказал: Теоретики в треде. Можно быть спокойными. 😉 Вам нужны практики? Практики ищутся в разделе "Предлагаю работу". Для тех кто сам не может её сделать. 20 минут назад, std сказал: 1. Подключается чужое оборудование? Именно при запитке (и только при запитке, при сбросе моего мк нет) сбой селф-теста. Сбой аппаратный. Но я могу его выловить именно мк. Сбой где? В чужом оборудовании? Тогда почему ищется не производителем этого оборудования? В вашем программе? Тогда при чём тут "чужое оборудование"? Тут большая часть программистов на форуме работает с "чужим оборудованием". Которое тоже включается и стартует. Но это никак не мешает им отлаживать работу с ним. 20 минут назад, std сказал: 2. Дело в поле, в командировке. Известная тема. Кто не смог отладить у себя на столе или в лаборатории, тот потом отлаживает "в поле". 20 минут назад, std сказал: 4. Прибор - большой герметичный железный йащег. Разбирать могу, но отвинтить придется сто тыщ винтов и снять столько же резинок. Вы здесь ищите того, кто вам их открутит? Или к чему эта сентенция вообще? Наймите гастарбайтера, который будет вам их откручивать. 20 минут назад, std сказал: 6. Тут производятся работы строго по времени даже ночью, нет недель, дней и даже часов на думать, изучать даташиты и гладить девичьи груди (для успокоения и релакса 😁), как я это делаю в городе, в родных пенатах, при разработке... К чему эти причитания вообще? Вы думаете вы один, кто работает с такими устройствами? 20 минут назад, std сказал: Еще теорий? 😁 Цель вашего поста какова? Пофлеймить? Найти работника, который отладит вашу программу и выловит все баги, коих там наплодили? или...? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 81 19 июня Опубликовано 19 июня · Жалоба 23 минуты назад, std сказал: Йащег находится под большой работающей машиной страшнее танка. Я тоже боюсь "большой работающей машины страшнее танка". На полном серьезе. Потому что видал немало ЧП с раздавленными и покалеченными человеками, залезшими в опасные места. И наставления по ТБ гласят, что нехрен лезть туда, где нет безопасности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 19 июня Опубликовано 19 июня · Жалоба 8 минут назад, EdgeAligned сказал: Вероятнее всего, не выполнены условия по ожиданию готовности после подачи питания внешних по отношению к МК микросхем. Вполне вероятно. Но похоже наш ТС не из тех, кто ищет проблему у себя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 81 19 июня Опубликовано 19 июня · Жалоба В общем, автору только один, совершенно практический совет - снимайте этот "железячный йащег" и тыкайте на лабораторном столе в полевой лаборатории. Если он не хотит пострадать о своих же действий в опасной зоне. Если топикстартер является автором этого проблемного "жилезного ящека", то вина в недоработках лежит на нем - что-то где-то не учел, проморгал. Да, я тоже ошибался, тоже косячил, с кем не бывает. Что делать, если сам накосячил, а нет времени разбираться в документации? Ну самое простое, как я уже говорил - внести в программу МК задержку на сотни миллисекунд (даже на 1-2 секунды или даже больше) после подачи питания, чтобы все переходные процессы в подключаемом оборудовании устаканились и оно стало доступным для коммуникации. Ну, если дело именно в старте после подачи питания. Самая, кстати, распространенная проблема - при перезагрузке под отладчиком без снятия питания работает чики-пуки, а как только передергивается питание, да еще и после разрядки кондеров, тут оно то и вылезает. Знаю по себе, сам так профанился. Не в теории, а на практике. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TOG 0 20 июня Опубликовано 20 июня · Жалоба 22 hours ago, std said: В аппаратно-программной системе проблема при подаче питания. Требуется отладка. Но отладчик STM32CubeIDE отваливается при снятии с STM32 питания. Как быть? У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 20 июня Опубликовано 20 июня · Жалоба 1 minute ago, TOG said: У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link. Скормить не проблема, было что скармливать (elf наверняка есть). 19 hours ago, std said: 3. Из прибора "торчит" и доступна только SWO отладка. Подключайтесь JLink и смотрите что происходит через Ozone. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 7 20 июня Опубликовано 20 июня · Жалоба 4 минуты назад, TOG сказал: У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link. Ничем не поможет. Подцепиться к работающему процессу может и STM32CubeIDE и даже обычный Eclipse. Проблема в GBD сервере. Он завершается когда теряет коннект с таргетом что и происходит при снятии питания (RTT - тоже). Процедура автоматического коннекта при появлении питания в сеггеровском ПО почему то не предусмотрена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 20 июня Опубликовано 20 июня · Жалоба 8 минут назад, _3m сказал: Процедура автоматического коннекта при появлении питания в сеггеровском ПО почему то не предусмотрена. Только как это помогло бы ТС даже если бы была предусмотрена? Очевидно - никак. Потому как сама процедура подключения отладчика - не мгновенна. И за это время все переходные процессы в страшном "ящике" ТС пройдут. И поведение программы будет совсем другим (чем без отладчика). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 20 июня Опубликовано 20 июня · Жалоба Пусть записывает что у него при стартеи при работе. И потом смотрит внимательно, что там сбрасывается и когда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться