Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SAM debug monitor
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SpiritDance
Кто-нибудь пробовал написать?
Есть мысль заделать себе мониторчик, совмещенный с загрузчиком, потому как jtag будет доступен не всегда.
Вот думаю насчет того что этот монитор должен уметь делать + хотелось бы посмотреть на удачные примеры мониторов пусть даже не для СЁМы.
goodwin
Монитор нужен стандартизированный, чтобы поддерживался отладчиками.
Я тут как раз изучаю этот вопрос применительно к MIPS. А для ARM вроде стандартом является "Angel". Он и в IAR есть в установках отладчика...
makc
Мне интересно другое - есть-ли для ARM мониторы, позволяющие отлаживать код, исполнящийся не из RAM, а из Flash? И если есть, то как они работают?
SpiritDance
И где достать этого ангела? Интересует скорее документация чем сама прога.
Мне тоже интересно поиметь монитор работающий именно из флеш. И не для армов вообще и именно для SAM через DBGU. Это невозможно?
aaarrr
Цитата(goodwin @ Jul 11 2006, 15:43) *
А для ARM вроде стандартом является "Angel". Он и в IAR есть в установках отладчика...


Правильнее сказать являлся, сейчас он практически не поддерживается. Я когда-то думал использовать его для AT91M40800 - бинарник получился около 48к, так что для SAM не проходит по ресурсам.

Цитата(SpiritDance @ Jul 11 2006, 17:23) *
И где достать этого ангела? Интересует скорее документация чем сама прога.


Документация есть здесь.
Но связываться не советую...
ig_z
Цитата(makc @ Jul 11 2006, 14:53) *
Мне интересно другое - есть-ли для ARM мониторы, позволяющие отлаживать код, исполнящийся не из RAM, а из Flash? И если есть, то как они работают?


Можно предположить, что если монитор способен перешивать флеш, то с помощью записи сви в нужный адрес. Наверное так можно построить сколь угодно наверченный дебагер.
Другой вопрос, удобно ли будет дебажить релизную прошивку?
Имхо модуль монитора более пригоден для добавления в готовый девайс "трассировочного модуля". Когда в нужный момент прибор начинает "трассироваться" хостом по какому либо из доступных транспортов - уарт юсб езернет.
goodwin
Цитата(aaarrr @ Jul 11 2006, 17:04) *
Но связываться не советую...


А и верно. Это, имхо, абсолютно ни к чему, ибо для ARM сейчас есть быстрый и недорогой jtag отладчик. И уж тем более для отладки кода из Flash. Разве что действительно - для трассировки.
SpiritDance
Цитата(goodwin @ Jul 11 2006, 19:40) *
Разве что действительно - для трассировки.

Да. трассировка нужна + наверно еще какие-то фичи из отладки, которые могут понадобится в полевых условиях(осталось только определиться какие smile.gif ) + возможность выдавать dump RAM и отображать эхом посылаемые-принимаемые данные по другим интерфейсам(надо крепко подумать как это сделать) + загрузчик во флеш конечно же. Для полноценной отладки будет использоватся jtag. У кого нибудь есть еще идеи чего не хватает при использовании внутрисхемного отладчика?
angel действительно что-то грузноват smile.gif , да и не нужен вобщем-то.

PS
Неужели никто не писал своего монитора?
DimaM
Цитата(SpiritDance @ Jul 11 2006, 22:38) *
Да. трассировка нужна + наверно еще какие-то фичи из отладки, которые могут понадобится в полевых условиях(осталось только определиться какие smile.gif ) + возможность выдавать dump RAM и отображать эхом посылаемые-принимаемые данные по другим интерфейсам(надо крепко подумать как это сделать) + загрузчик во флеш конечно же. Для полноценной отладки будет использоватся jtag. У кого нибудь есть еще идеи чего не хватает при использовании внутрисхемного отладчика?
angel действительно что-то грузноват smile.gif , да и не нужен вобщем-то.

PS
Неужели никто не писал своего монитора?

я собираюсь, сейчас как раз информацию искал. однако может я хочу сделать немного проще -
хочу иметь только 2 функции которые дают доступ к переменным. список переменных собираюсь брать из *.lst файла
программу на компьютере сделать тоже самому. ищу может что готовое есть
vmp
Поделюсь своим опытом отладки достаточно сложных устройств.

Обычно проблемы возникают не в низкоуровневой логике проекта, а в более высоком уровне.
JTAG в этом случае малополезен - прохождение программы по шагам долгое утомительное занятие, дающее переизбыток информации.
На мой взгляд куда более полезна грамотная отладочная печать, вставленная в критические точки программы. Причем - печатать или нет зависит от установленного уровня:
if (PrintLevel > 3) printf("Что-то полезное\n");

Достоинства метода:
1. Требуемое оборудование - всего лишь кабель к ком-порту или USB.
2. Требуемое ПО - только терминал (можно HyperTerminal из виндов, хотя это ещё та гадость).
3. Полученную трассу можно сохранить для последующего анализа.
4. Через тот же кабель можно залить новую версию ПО.
5. Через тот же кабель можно шить дополнительную флеш-память в устройстве (если она есть).
6. Для получения трассы не требуется высокая квалификация оператора.

Недостатки:
1. Чтобы посмотреть то, что не предусмотрено в программе, нужно грузить новую версию ПО.
2. Дополнительные требования к памяти программ.
3. Замедление работы при снятии трассы.

В программе обычно я добавляю также небольшой монитор, воспринимающий текстовые команды, также вводимые с терминала. Идеологию взял у пультовых отладчиков младших моделей PDP-11/LSI-11. С клавиатуры вводится число и команда, например адрес, затем стрелка вправо или '/' - открыть ячейку памяти. Чтобы изменить значение ячейки, нужно ввести новое число и нажать Enter. Стрелки вверх/вниз или +/- - переход по ячейкам. На буквы назначены различные команды, например T - запуск тестов, P - вывод или изменение уровня печати, G - выход из отладчика и продолжение работы.

Короче, JTAG (еслм есть) используется только на начальном уровне освоения нового процессора, затем вся работа по отладке идет через COM-порт. Проверено в тои или ином виде на 51, AVR, MSP430, ARM.
klop
А где найти исходники этого чуда (Angel)?
Заранее спасибо.

Вопрос снят.
d__
Цитата(klop @ Jun 22 2007, 09:08) *
А где найти исходники этого чуда (Angel)?
Заранее спасибо.

Вопрос снят.

Это только начало, я делал несколько подходов к снаряду, пробовал кряхтя его поднять, но потратив 4-5 раб дней плюнул и ушел. Уж очень много буков в армовских ассемблерных макросах...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.