Перейти к содержанию
    

Отладка микроконтроллеров

Добрый вечер.

Я не так давно проектирую ПО для микроконтроллеров и столкнулся со сложностью отладки.

Думаю, многие с этим сталкивались. Переменные программы и регистры

микропроцессора просто так не увидишь, нужны дополнительные средства. Ими могут

быть: JTAG отладчик, лишний UART или просто сигнальный светодиод (или несколько). Однако:

JTAG отладчик недешёвый + не всё конроллеры его поддерживают, а светодиод даёт информацию

об истинности какого-либо условия, что не всегда достаточно, потому что он не позволяет точно

оценить переменную. Выводить информацию в UART, наверно, наилучшее решение, но он может быть занят.

 

Как вы обходите эти ограничения и отлаживаете сложные участи ПО?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

JTAG отладчик недешёвый

зато сэкономит времени больше

не всё конроллеры его поддерживают

правильней сказать - практически все контроллеры поддерживают JTAG

 

Выводить информацию в UART, но он может быть занят.

в телевизоре антенна - это один провод. И умудряются передать видео,звук и телетекст

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

JTAG отладчик недешёвый + не всё конроллеры его поддерживаю

 

Как вы обходите эти ограничения и отлаживаете сложные участи ПО?

 

На JTAG-е не экономят, это вы поймете рано или поздно.

А вообще есть много дешевых отладочных плат сразу с интегрированным адаптером JTAG-USB.

 

Вы даже не представляете как удобно отлаживать с JTAG особенно через интерфейс SWO.

Там и виртуальный UART и виртуальные светодиоды (в смысле битовые сигналы) есть.

 

Особенно интересны такие фичи как: построение графиков по значениям любых переменных в программе в реальном времени, трассировка всех прерываний, перехват обращений на чтение или запись к любой области памяти, отображение дерева вызовов и полный анализ стека независимо где была выполнена остановка, измерение с точностью до тактов времени выполнения любых функций (не нужен больше осциллограф и светодиод) и т.д. и т.п.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть такое мнение, что из нескольких портов ввода/вывода и уарта можно сделать много уартов ))))))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

построение графиков по значениям любых переменных в программе в реальном времени, трассировка всех прерываний

 

это через Trace или SWO ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

JTAG отладчик недешёвый + не всё конроллеры его поддерживают, а светодиод даёт информацию

 

Не соглашусь. Если нет JTAG, то какой-нибудь эмулятор точно есть. Какие вас процессоры интересуют? Насколько я знаю самые дорогие были эмуляторы для мотороловских процессоров, но есть немало хороших процессоров, с недорогими эмуляторами.

Хотя сам зачастую пользуюсь UART. Кстати еще есть сеть и USB.

Изменено пользователем Tarbal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не соглашусь. Если нет JTAG, то какой-нибудь эмулятор точно есть. Какие вас процессоры интересуют? Насколько я знаю самые дорогие были эмуляторы для мотороловских процессоров, но есть немало хороших процессоров, с недорогими эмуляторами.

Хотя сам зачастую пользуюсь UART. Кстати еще есть сеть и USB.

 

Что такое эмулятор? напишите, если несложно. Контроллер АВР 161 - сейчас на нём идёт проект

Изменено пользователем OlegALL

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что такое эмулятор? напишите, если несложно. Контроллер АВР 161 - сейчас на нём идёт проект

 

 

Такой?

http://www.atmel.ca/Images/doc1228.pdf

 

Вот в даташите на 3 странице написано:

The ATmega161 AVR

is supported with a full suite of program and system development

tools including: C compilers, macro assemblers, program debugger/simulators, In-Cir-

cuit Emulators and evaluation kits

 

На странице 125

Serial Downloading

Описано как подключаться для программирования чипа. Эмулятор обычно через то же самое подключается.

Вот здесь описан для 162 (JTAG) и для 168 (Debug Wire), но думаю и 161 они поддерживают. Я бы написал Атмелу в техсаппорт интересующие меня вопросы.

Или позвонил бы:

Atmel Europe

Le Krebs

8, Rue Jean-Pierre Timbaud

BP 309

78054 St Quentin-en-

Yvelines Cedex

France

Tel: (33) 1-30-60-70-00

Fax: (33) 1-30-60-71-1

 

http://media.digikey.com/pdf/Data%20Sheets...ect%20Guide.pdf

 

Вот цены:

http://www.digikey.ca/product-search/en?x=...atmega+emulator

 

 

Вот еще:

https://www.sparkfun.com/products/retired/11

 

 

Я на атмелевсих процессорах лет 15 уже не писал. Есть два форума AVR.

Спросите там у тех, кто знает ситуацию.

http://electronix.ru/forum/index.php?showforum=10

http://electronix.ru/forum/index.php?showforum=191

 

Обычно если я с чем-то начинаю работать новым, то сначала встречаюсь с представителями производителя и они рассказывают ситуацию. Что лучше, какие отладочные средства есть. Ну это от фирмы еще зависит. Когда в Мотороле работал Atmel нам в бессрочное пользование давали отладочные средства :)

Но если это хобби проект, то позвонить им можно точно. Соврать про фирму и сказать что планируете покупать 100000 в год. Будут радостно помогать. Не знаю если в России есть представители Атмела.

Можно начать исследование отсюда:

 

http://www.atmel.com/ru/ru/design-support/

 

Cкачайте эту программу и посмотрите если она поддерживает ATmega161. Можно симулятором воспользоваться, но симулятором не так много можно сделать. Потом поискать какие устройства надо подключить для вашего процессора. Скорее всего что-то из вышеперечисленного.

http://www.atmel.com/tools/ATMELSTUDIO.aspx

 

Вот что они декларируют:

http://www.atmel.com/microsite/atmel_studi...simulation.aspx

Проверьте, что вам подходит и покупайте. Если вы начианающий, то оно вам очень много времени сохранит. Без опыта принтами не так легко пользоваться. А прерывания отлаживать и не получится.

 

Изменено пользователем Tarbal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если речь идет об отладке "больших МК" (типа ARM), то, пожалуй, альтернативы JTAG или там чего-то вроде SWD просто нет. но если вы начинающий и пользуетесь "маленькими МК" (восьмибитными типа AVR, MCS51 или PIC), то самое простое и весьма надежное средство отладки ваших программ - это ISIS PROTEUS VSM. по этим ключевым словам легко найдете все необходимое в сети.

при помощи этого симулятора вы легко отладите свою программу (и даже схемную обвязку МК, а при необходимости - разведете плату) не прибегая к паяльнику, блоку питания и всяким покупным JTAG-отладчикам вообще!

не слушайте тех, кто будет вам рассказывать про разницу между поведением реальной платы и ее виртуального аналога! к тому моменту, когда вы заматереете настолько, что сумеете эту разницу почувствовать, вам эта самая разница уже будет совсем не опасна, т.к. опыт своё возьмет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А пока у Вас нет опыта приготовьтесь к созданию тем типа :

Почему у меня в шпроте все работает , а в железе нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что такое эмулятор?

Внутрисхемный эмулятор - устройство, которое полностью имитирует отлаживаемый процессор, а вдобавок к этому предоставляет средства доступа к внутренним ресурсам процессора и имеет дополнительные средства отладки. Кроме эмуляторов, есть всевозможные симуляторы, которые тоже обеспечивают отладку. Принципиальное отличие симуляторов от эмуляторов состоит в том, что симулятор не полностью имитирует отлаживаемый процессор: то ли забирает себе часть ресурсов, то ли работает не в реальном масштабе времени, и т.п. Большинство современных средств отладки микроконтроллеров строго говоря являются симуляторами высокого качества, т.е. максимально близкими по своим характеристикам к настоящим эмуляторам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему у меня в шпроте все работает , а в железе нет

А у меня наоборот : живьем все работает, а в Протеусе -нет. :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вы обходите эти ограничения и отлаживаете сложные участи ПО?

Недавно отлаживал ATmega32HVB (это специальный МК для зарядки аккумуляторов), там нет последовательного порта. Так вот, отладчик (аппаратный) - здорово помог.

32-битные армы (Cortex-M3, Cortex-M0) - наоборот удобнее отлаживать при помощи printf'а. J-link там у меня как-то не прижился(

А вообще отладка - комлексное мероприятие. Тут и отладчик иногда нужен, и симулятор, и консолька, и светодиод, и осцилл с логическим анализатором не помешают (при отладке различных шин, ШИМов и т.п.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

например...Silab чипы это 51 ядро...отладчик стоит 50 баксов...любо дорого работать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...