Поводом написания нижеизложенного послужило то как на этом форуме один товарищ утверждал что «AVR-STUDIO + jtag» или «IAR + jtag» это правильно, а всё остальное удел начинающих.
Я постиг Дао программирования. (щютка).
Довольно давно я не пользуюсь отладчиками (как программными так и аппартными) и приборами сложнее напряжеметра (мультиметра). Правда паять мне уже давно не приходится. От меня схема в Оркаде – обратно запаянная плата. Все у меня обычно запускается довольно быстро если не моментально. Только не надо думать что платы очень простые а в конторе нет приборов. Есть несколько осциллографов, включая цифровой с памятью и jtag-отладчики для AVR и ARM. Честно говоря их использую но ооочень редко. Примерно раз в полгода.
Во всех моих поделках есть хотя бы 1 rs232 порт. Вот через него и отлаживаю. Пишу отладочные модули. В любой момент времени могу запросить содержимое ОЗУ, внешней FRAM, EEPROM, часов, и т.д. Пообщаться со всей периферией, подергать ногами, покрутить двигателями, вывести на экран, поработать с нужными функциями программы и т.д. Все в текстовом виде. Команды вида:
Команда ‹1 параметр› ‹2 параметр›‹3 параметр›…
И ответы типа
0000: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
…
Также удобно при выполнении кода посылать отладочные сообщения. Которые при компиляции релиза исчезают.
У коллег бывает ситуанус когда Jtag-отладчик позволяет отловить трудновоспроизводимый глюк. Но у меня вроде такого небыло. Да! Только я один в конторе так отлаживаю изделия, остальные интенсивно используют блага технического прогресса. Я бы не сказал что я проигрываю в скорости выполнения работы, скорее наоборот.
Рекомендовать всем «AVR-STUDIO + jtag» считаю неправильным. Радиолюбителям он может быть попросту не по карману. Да и зачем если радиолюбитель паяет схемку ценой 200 рублей покупать отладчик за 2500 или ещё дороже. Да и есть ли смысл привязываться в наше время к какой либо среде или конкретному производителю контроллеров? Это может быть полезно при профессиональном подходе. Да и тут куча вопросов возникает. Jtag- требует накладных расходов. При отладке по этому интерфейсу некоторые пины контроллера не могут использоваться по назначению. Да и при разводке платы надо на это закладывать. У АРМ7 производитель рекомендует колодку на 16 (непомню сколько) штырей, что не есть гуд. То что JTAG дает рил-тайм отладку – я обойтись могу без этого.
Proteus. Кому только я его не предлагал (совсем не настойчиво). Никому не надо
![Ну ты даешь](images/smilies/icon_wink2.gif)
Его я чаще всего использую для отладки протоколов не имеющих аппаратной поддержки со стороны контроллера. Подключаю виртуальный логический анализатор и вперёд. Опять же без трассировки и пошаговой отладки. Уже стало привычно что если работает в протеусе то и работает в железе.
Например моя текущая работа на ARM7 у которого 512 кБ памяти программ и 32 кБ ОЗУ. Уже написано около 100 кБ – прошивка в бинарном виде, будет ещё столько же как минимум. Пишу на Си (возможно перенесу на Си++) и jtag отладчик мне совсем не интересен.
В этом месте не надо бить себя пяткой в грудь. Не думайте что вы написали бы это на ассемблере гораздо меньшего размера. Я примерно 4 года непрерывно писал на одном ассемблере для x51 и AVR пока не перешёл на Си. Возможно откровением будет некоторым узнать, что на Си программы писать сложнее, вернее сложнее писать правильные программы. Вернее так
![Ну ты даешь](images/smilies/icon_wink2.gif)
Чтобы писать на Си правильные программы разработчик должен не только знать ассемблер и архитектуру процессора но знать как работает сишный компилятор, то есть иметь более высокую квалификацию.
Вопрос к знатокам: что я теряю при таком способе отладки. Вопрос не риторический. Мне действительно интересно.