|
Тонкости отладки, JTAG, printf, светодиоды, ножки + осциллограф |
|
|
|
Jul 3 2018, 09:00
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Добрый день, коллеги!
Собственно говоря, вопрос в теме. Просьба поделиться, кто как отлаживает свои проекты, выполненные на микроконтроллерах. Ядро не принципиально, но лучше Cortex-M0/3/4(F).
Почему возник вопрос? Раньше я не пользовался для отладки JTAGом. В не меньшей степени этому способствовали отзывы об этом инструменте уважаемого zltigo. Кто на форуме давно, тот поймёт. Поэтому я поднимал консольку. И работал с ней. Где было необходимо посмотреть вывод программы, добавлял свои версии printf. Либо махал лапками, с подключенным оциллографом. Потом, попробовав вкусности, предоставляемые JTAG, пользовался только им. При этом вывод в консоль стал если не вторым по приоритету, то точно на равне с отладчиком. Но вот проблема. Пользователю нужно отправлять программу с выставленными уровнями оптимизации (обычно balanced для IAR). Отладживать же программу с этим уровнем не всегда удобно, т.к. исчезают переменные, ветвления и даже функции. Т.е. возниакает предположение, что JTAG годится только для черновой и грубой отладки. Дальше поднимаем уровень оптимизации, и пользуемся printf'ом и подобными инструментами. Но как принтфом получить информацию, что, скажем содержится в регистрах ssp или dma модуля, как остановить программу в нужном месте и посмотреть переменные? Как отследить call stack? Уважаемый zltigo часто говорил, что ему хватает только консольки, и за отладчик он берётся только в особо сложных случаях. В общем я снова стал приходить к выводу, что отлаживаться через аппаратный отладчик - бесполезная затея. Нужно сразу выставлять уровень оптимизации на максимум, и использовать иные способы. В связи с этим у меня возникла определённая каша в голове, и захотелось услышать мнение коллег по этому вопросу? Возможно ли использовать что-то вместо JTAG при отладке, почти не уступающее ему по возможностям? Или может быть я вообще не тем путём иду? Спасибо!
--------------------
Выбор.
|
|
|
|
|
 |
Ответов
|
Jul 3 2018, 13:49
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Конкретно поинт про ненужность дебагера у злтиго считаю снобским и вредным. Он работает для самого злтиго и 5% таких же как он. А его попытка убедить всех что его рецепт применим для всех, а если пользуешься дебагером то "нипрограмист" откровенна вредна. Спустя десятки лет набитых шишок десятки схожих задач и проектоа, возможно дебагер и правда будет не нужен, но это значит только то что человек которому не нужен дебагер вошел таки в эти 5%. Для чувствительных ко времени и плавающих багов, вначале ищу примерное место с браком. Потом добавляю туда бинарный логер, который никуда не выводит данные, а тихонько их накапливает в буфер. В некритичные моменты времени проверяю буфер на наличие признаков ошибочности. При наличии обычно bkpt и уже курю результат на паузе. Цитата(scifi @ Jul 3 2018, 14:49)  Интересное ограничение. Откуда взялся такой привередливый пользователь? Прямо так и говорит: "включайте оптимизацию, адназначна"?  Очень правильный пользователь, которых хочет отсечь бракоделов с UB. Высокий уровень оптимизации хорошо выявляет таких "индусов".
|
|
|
|
|
Jul 4 2018, 08:18
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Kabdim @ Jul 3 2018, 16:49)  Очень правильный пользователь, которых хочет отсечь бракоделов с UB. Высокий уровень оптимизации хорошо выявляет таких "индусов". Полностью согласен. Хотя даже тут, на форуме, приходится видеть фразы типа: "никогда не включаю оптимизацию". Видимо если её включить - всё повалится, а чел не хочет/не может искать свои баги. Ну и место такому поделию - соответствующее. Цитата(AlexandrY @ Jul 3 2018, 17:08)  Да что-то давно не слышно zltigo. Видимо столкнулся с багом, который никак не находится без JTAG. А использовать JTAG - религия не позволяет. Вот и ищет его до сих пор.  Цитата(AlexandrY @ Jul 3 2018, 17:08)  Конкуренты увяли. Они лепили кастомные платы, ставили туда десяточек одноцветных диодов и преподносили это как великолепную диагностическую панель. А мы повесили дешевую RGB ленту и вывели на нее сотни! диагностических сигналов. Следующий ответный шаг конкурентов: вывести отладочную инфу в UART.
|
|
|
|
|
Jul 4 2018, 08:22
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(jcxz @ Jul 4 2018, 11:12)  Полностью согласен. Хотя даже тут, на форуме, приходится видеть фразы типа: "никогда не включаю оптимизацию". Видимо если её включить - всё повалится, а чел не хочет/не может искать свои баги. Ну и место такому поделию - соответствующее. GCC-шниками что есть оптимизация что нет все одинаково, вот и не используют. А так нормальная практика когда отладил без оптимизации, потом включил оптимизацию скомпилировал и отдал не глядя. Но это уже надо иметь железную интуицию. Цитата(jcxz @ Jul 4 2018, 11:18)  Следующий ответный шаг конкурентов: вывести отладочную инфу в UART.  Не UART, а облака. И да, они тут нас урыли, но надеюсь ненадолго.
|
|
|
|
Сообщений в этой теме
haker_fox Тонкости отладки Jul 3 2018, 09:00 jcxz Цитата(haker_fox @ Jul 3 2018, 12:00) Отл... Jul 3 2018, 09:15 haker_fox QUOTE (jcxz @ Jul 3 2018, 17:15) А зачем,... Jul 3 2018, 10:16  jcxz Цитата(haker_fox @ Jul 3 2018, 13:16) Бан... Jul 4 2018, 08:07   haker_fox QUOTE (jcxz @ Jul 4 2018, 16:07) Вместо т... Jul 4 2018, 09:48    jcxz Цитата(haker_fox @ Jul 4 2018, 12:48) Да?... Jul 4 2018, 09:53 Arlleex Добрый день!
Вопрос больше религиозный - кому ... Jul 3 2018, 10:17 kolobok0 Цитата(Arlleex @ Jul 3 2018, 13:17) ..Воп... Jul 3 2018, 11:04 x893 Jlink (SWD) + RTT Jul 3 2018, 10:58 scifi Цитата(haker_fox @ Jul 3 2018, 12:00) Пол... Jul 3 2018, 11:49 haker_fox Коллеги, спасибо! Я не собираюсь отказываться ... Jul 3 2018, 13:36 haker_fox QUOTE (Kabdim @ Jul 3 2018, 21:49) Конкре... Jul 3 2018, 13:59 AlexandrY Цитата(haker_fox @ Jul 3 2018, 12:00) Соб... Jul 3 2018, 14:08 uriy Компилю сразу с включенной оптимизацией, если надо... Jul 3 2018, 14:08 haker_fox QUOTE (AlexandrY @ Jul 3 2018, 22:08) Да ... Jul 3 2018, 14:34 AlexandrY Цитата(haker_fox @ Jul 3 2018, 17:34) ВО... Jul 3 2018, 16:59  haker_fox QUOTE (AlexandrY @ Jul 4 2018, 00:59) у м... Jul 4 2018, 04:34 k155la3 При работе с дебаггером :
Вместо отладочного prin... Jul 3 2018, 15:06 uriy ЦитатаRTT хорош когда у чипа нет вывода SWO.Не сог... Jul 3 2018, 17:59 AlexandrY Цитата(uriy @ Jul 3 2018, 20:59) Не согла... Jul 4 2018, 08:10 uriy Вот что оказывается надо сделать https://devzone.n... Jul 4 2018, 05:02 haker_fox Попробовал RTT. С наскоку (сразу) заработал вывод ... Jul 4 2018, 05:42 uriy ЦитатаЗдесь я SWO упомянул в связи с использование... Jul 4 2018, 09:57 haker_fox QUOTE (jcxz @ Jul 4 2018, 17:53) Тогда у ... Jul 4 2018, 10:19 jcxz Цитата(haker_fox @ Jul 4 2018, 13:19) Но ... Jul 4 2018, 10:30  haker_fox QUOTE (jcxz @ Jul 4 2018, 18:30) Ибо заче... Jul 4 2018, 12:28   jcxz Цитата(haker_fox @ Jul 4 2018, 15:28) Я н... Jul 4 2018, 12:43 AlexandrY Цитата(haker_fox @ Jul 4 2018, 13:19) Одн... Jul 4 2018, 10:36  jcxz Цитата(AlexandrY @ Jul 4 2018, 13:36) Так... Jul 4 2018, 11:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|