|
Тонкости отладки, 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 4 2018, 10:19
|

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

|
QUOTE (jcxz @ Jul 4 2018, 17:53)  Тогда у Вас всё впереди  Ну так мне это действительно интересно! Я и тему это создал ради интереса, удовлетворения потребности расширения кругозора))) Когда у меня реальные трудности на работе, я практически не создаю темы, а сижу, и упорно решаю задачу. Так, что созданные темы на форуме - скорее показатель жажды знаний. QUOTE (jcxz @ Jul 4 2018, 17:53)  Тогда вопрос поставлен неправильно. Ибо зачем "без JTAG"? Чтобы создать себе трудности, чтоб жизнь мёдом не казалась?  Для достижения результата стОит (и нужно) использовать все методы, позволяющие достичь его с бОльшей скоростью и меньшими тратами. Вполне возможно, я посавил вопрос некорректно для других людей. Но ещё раз: я использую JTAG. Каждый рабочий день. На равне с этим я использую printf, консоль из состава FreeRTOS, журнал событий в EEPROM, ведётся логгирование на NAND. Но мне стало интересно, а можно ли без него, но по возможностям, не уступающим? Неужели, вы никогда не пробуете сделать что-то не стандарным путём, а альтернативным? QUOTE (jcxz @ Jul 4 2018, 17:53)  При чём тут идеальность? Моя продукция не валится при включении оптимизации. Ибо когда такое происходит, я берусь за отладчик и не двигаюсь дальше, пока не найду причину. Ещё раз, я интересуюсь альтернативным путём. Работа моя (за которые деньги получаю) не стоит. Мне не платят за одни мечтания. Поэтому я тоже беру все отладочные средства, которые у меня имются, и ищу проблему. Ибо начальнику нужен результат. З.Ы. Может быть вы не позволяете себе мечтать?))))) QUOTE (jcxz @ Jul 4 2018, 17:53)  (и нужно) использовать все методы, позволяющие достичь его с бОльшей скоростью и меньшими тратами. Я не возражаю против этого по отношению к вам. Но сам с этим не согласен. Иногда считаю полезным пройти другим путём. Знаете ли, полезно)))) Люблю эксперементировать. QUOTE (jcxz @ Jul 4 2018, 17:53)  я берусь за отладчик и не двигаюсь дальше, пока не найду причину. Если вы про J-Link, то тут главное не стать рабом этого средства) Потому, что оказавшись в поле, один на один с объектом, вы можете быть лишены возможности подключить отладчик, и даже вскрыть корпус. Но вам никто не запретит воткнуть USB кабель, и получить канал связи в своё распоряжение. Хотя можно J-Link запаять на плату в устройство, как вариант. Но это мне не подходит. Да и не одобрят мне такой подход. А вот консоль, журналы и т.д. и т.п. использовать можно. Одно из наших устройств работает на электрической подстанции. И никто не будет отключать оперативное напряжение для того, чтобы мы открыли корпус. Но подключить ETHERNET/USB вполне могут. Вот и как отлаживать?
--------------------
Выбор.
|
|
|
|
|
Jul 4 2018, 10:30
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(haker_fox @ Jul 4 2018, 13:19)  Но мне стало интересно, а можно ли без него да Цитата(haker_fox @ Jul 4 2018, 13:19)  , но по возможностям, не уступающим? нет. Ибо зачем бы его тогда придумывали и лепили (прямо в ядро уже), если и без него можно и нет никакой разницы? Цитата(haker_fox @ Jul 4 2018, 13:19)  Неужели, вы никогда не пробуете сделать что-то не стандарным путём, а альтернативным? Трусы всегда надеваю через ноги, через голову никогда не пробовал. Если Вы про это.... Цитата(haker_fox @ Jul 4 2018, 13:19)  Если вы про J-Link, то тут главное не стать рабом этого средства) Потому, что оказавшись в поле, один на один с объектом, вы можете быть лишены возможности подключить отладчик, и даже вскрыть корпус. Но вам никто не запретит воткнуть USB кабель, и получить канал связи в своё распоряжение. Я не про J-Link. Я про весь отладочный комплекс. Видимо Вы не читаете мои сообщения.....  Прочитайте моё сообщение выше, про каналы отладки, которые мне приходилось использовать: https://electronix.ru/forum/index.php?showt...p;#entry1570953Цитата(haker_fox @ Jul 4 2018, 13:19)  Одно из наших устройств работает на электрической подстанции. И никто не будет отключать оперативное напряжение для того, чтобы мы открыли корпус. Но подключить ETHERNET/USB вполне могут. Вот и как отлаживать? Вы не поверите, но уже десятки тысяч моих устройств работают на электрических подстанциях РФ и соседних стран (и не очень соседних). И никто не отключает напряжение, когда нам надо что-то проверить в своих устройствах PS: А вот USB на подстанциях не место. Имхо.....
|
|
|
|
Сообщений в этой теме
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 Kabdim Конкретно поинт про ненужность дебагера у злтиго с... Jul 3 2018, 13:49 haker_fox QUOTE (Kabdim @ Jul 3 2018, 21:49) Конкре... Jul 3 2018, 13:59 jcxz Цитата(Kabdim @ Jul 3 2018, 16:49) Очень ... Jul 4 2018, 08:18  AlexandrY Цитата(jcxz @ Jul 4 2018, 11:12) Полность... Jul 4 2018, 08:22   Kabdim Цитата(AlexandrY @ Jul 4 2018, 11:22) GCC... Jul 4 2018, 09:25 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, 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
|
|
|