Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ASM. Отладка MSP430 JTAG
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
k155la3
Есть необходимость (низкоуровневой, на уровне асм-физ. адреса) отладки, а для начала - трассировки
кода в виде тексасовского xxx.txt, который грузится через MSP-FET430UIF в процессор.
(те чистый код, без отладочной инф-ии).

(?)
Есть ли средства-возможность задать в блок JTAG процессора точку останова (по физ. адресу) , и по ее сработке - считать регистры-память итд.
Желательно - возможность работы из прикладной программы через API --> MSP-FET430UIF --> JTAG --> MSP430F2618

Симуляторы не подойдут. В симуляторе все работает по феншую. И работа периферии не симулируется.
Dog Pawlowa
Цитата(k155la3 @ Dec 25 2015, 13:37) *
(те чистый код, без отладочной инф-ии).

В ИАРе download and debug разве не работает?

k155la3
Цитата(Dog Pawlowa @ Dec 26 2015, 00:56) *
В ИАРе download and debug разве не работает?


Все работает. Но. ( Из-за чего собственно и вопрос).
MSP430F2618.
При прогрузке дебаг-кода (d43):
- происходит "автостарт" прошивки. Т.е сразу после прогрузки, пункт меню Debug / Go уже "нажато".
- по Debug / Break - останов в MemZero().
- при компиляции в режиме Release - код также не рабочий.
RAM достаточно (5к занято из 8к), исполнимый код небольшой (15к из доступных 116), стек(и) проверены-перепроверены,
опции проекта строены-перестроены.

Отсюда у меня и возникло (вынужденно) желание поотлаживать Release.

PS
при работе прошивки похоже на то, что в процессе исполнения кода (уже прикладного, скорее всего)
процессор "налетает" на "нечто", что вызывает аппаратный рестарт. И происходит это "нечто" в цикле.
А в дебаге мы видим постоянную работу "memZero()" - тк. вероятность "брейкнуть" в ней намного выше, чем в "нечто"-глюке
sm.gif
Obam
В EW-ARM (6.40 ЕМНИМС) несколько вариантов поведения программатора ("Залить и Стоять", "Залить и Запустить" и проч.), но это для ARM.
В вашей версии для MSP430 тоже? А вы точно EW430 используете? Из вышенаписанного это не следует.

Для MSP430 подключиться JTAGом к работающему процу - да, такая возможность есть, но после прошивки - проц "неподвижен".

В настройках debugger-а есть полезная опция "Run to".

И вообще, все проблемы решает RESET. (:
k155la3
Цитата(Obam @ Dec 26 2015, 18:20) *
В EW-ARM (6.40 ЕМНИМС) несколько вариантов поведения программатора ("Залить и Стоять", "Залить и Запустить" и проч.), но это для ARM.
В вашей версии для MSP430 тоже? А вы точно EW430 используете? Из вышенаписанного это не следует.

Для MSP430 подключиться JTAGом к работающему процу - да, такая возможность есть, но после прошивки - проц "неподвижен".

В настройках debugger-а есть полезная опция "Run to".

И вообще, все проблемы решает RESET. (:


Может чего не так расписал.
Если бы это был PC, то скорее всего ОС выдалабы исключение. Прикладной код сделал нечто нето, или полез нетуда, или "нет такого кода".
В ARM вроде нечто подобное есть.
В MSP430 такого нет, или я об этом не знаю.
Скорее всего, если процессор не знает что делать, делает ресет. IMHO, однако.

Стартовую метку в опциях дебагера уже крутили.



Есть у Тексаса тут http://www.ti.com/tool/mspds

И в этом "тут" поминаются ф-ии

MSP430_EEM_SetTrace()
MSP430_EEM_GetTrace()
MSP430_EEM_ReadTraceBuffer()
MSP430_EEM_RefreshTraceBuffer()

док - slau656.pdf
----
Начал раскуривать.
Собственно, это использование ф-ий MSP430.dll
Кто хочет написать "свой" программатор (те встроенный в прикл. программу) - читать-изучать.
Исходники-примеры на VS2010 прилагаются.

Dog Pawlowa
Цитата(k155la3 @ Dec 26 2015, 12:37) *
при работе прошивки похоже на то, что в процессе исполнения кода (уже прикладного, скорее всего)
процессор "налетает" на "нечто", что вызывает аппаратный рестарт. И происходит это "нечто" в цикле.

Это таинственное "нечто" - точно не встроенный WDT ?
Дергаете его вовремя?
Попробуйте запретить WDT в релизе.

k155la3
Цитата(Dog Pawlowa @ Dec 30 2015, 15:48) *
Это таинственное "нечто" - точно не встроенный WDT ?
Дергаете его вовремя?
Попробуйте запретить WDT в релизе.


нет, WDT используется как обычный таймер. Тики ОС.
В начале
WDTCTL = WDTPW + WDTHOLD;

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.