реклама на сайте
подробности

 
 
> Тонкости отладки, JTAG, printf, светодиоды, ножки + осциллограф
haker_fox
сообщение Jul 3 2018, 09:00
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 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 при отладке, почти не уступающее ему по возможностям? Или может быть я вообще не тем путём иду?
Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kabdim
сообщение Jul 3 2018, 13:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Конкретно поинт про ненужность дебагера у злтиго считаю снобским и вредным. Он работает для самого злтиго и 5% таких же как он. А его попытка убедить всех что его рецепт применим для всех, а если пользуешься дебагером то "нипрограмист" откровенна вредна. Спустя десятки лет набитых шишок десятки схожих задач и проектоа, возможно дебагер и правда будет не нужен, но это значит только то что человек которому не нужен дебагер вошел таки в эти 5%.

Для чувствительных ко времени и плавающих багов, вначале ищу примерное место с браком. Потом добавляю туда бинарный логер, который никуда не выводит данные, а тихонько их накапливает в буфер. В некритичные моменты времени проверяю буфер на наличие признаков ошибочности. При наличии обычно bkpt и уже курю результат на паузе.
Цитата(scifi @ Jul 3 2018, 14:49) *
Интересное ограничение. Откуда взялся такой привередливый пользователь? Прямо так и говорит: "включайте оптимизацию, адназначна"? wacko.gif

Очень правильный пользователь, которых хочет отсечь бракоделов с UB. Высокий уровень оптимизации хорошо выявляет таких "индусов".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 4 2018, 08:18
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Kabdim @ Jul 3 2018, 16:49) *
Очень правильный пользователь, которых хочет отсечь бракоделов с UB. Высокий уровень оптимизации хорошо выявляет таких "индусов".

Полностью согласен. Хотя даже тут, на форуме, приходится видеть фразы типа: "никогда не включаю оптимизацию". Видимо если её включить - всё повалится, а чел не хочет/не может искать свои баги. Ну и место такому поделию - соответствующее.

Цитата(AlexandrY @ Jul 3 2018, 17:08) *
Да что-то давно не слышно zltigo.

Видимо столкнулся с багом, который никак не находится без JTAG. А использовать JTAG - религия не позволяет. Вот и ищет его до сих пор. biggrin.gif

Цитата(AlexandrY @ Jul 3 2018, 17:08) *
Конкуренты увяли.
Они лепили кастомные платы, ставили туда десяточек одноцветных диодов и преподносили это как великолепную диагностическую панель. А мы повесили дешевую RGB ленту и вывели на нее сотни! диагностических сигналов.

Следующий ответный шаг конкурентов: вывести отладочную инфу в UART. biggrin.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 4 2018, 08:22
Сообщение #4


Ally
******

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



Цитата(jcxz @ Jul 4 2018, 11:12) *
Полностью согласен. Хотя даже тут, на форуме, приходится видеть фразы типа: "никогда не включаю оптимизацию". Видимо если её включить - всё повалится, а чел не хочет/не может искать свои баги. Ну и место такому поделию - соответствующее.

GCC-шниками что есть оптимизация что нет все одинаково, вот и не используют.
А так нормальная практика когда отладил без оптимизации, потом включил оптимизацию скомпилировал и отдал не глядя.
Но это уже надо иметь железную интуицию.

Цитата(jcxz @ Jul 4 2018, 11:18) *
Следующий ответный шаг конкурентов: вывести отладочную инфу в UART. biggrin.gif

Не UART, а облака.
И да, они тут нас урыли, но надеюсь ненадолго.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Jul 4 2018, 09:25
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(AlexandrY @ Jul 4 2018, 11:22) *
GCC-шниками что есть оптимизация что нет все одинаково, вот и не используют.

Обоснуйте вашу точку зрения, пожалуйста.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 20:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01449 секунд с 7
ELECTRONIX ©2004-2016