Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дебагер IAR вопрос
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
tvilsa
Здравствуйте.
Я только осваиваю MSP. У меня такой вопрос.
Испоьзую MSP430F1222, IAR , программатор самодельный типа OLIMEX.
Раньше когда работал с PICами там в MPLab в режиме симуляции было окошко в котором можно было указать частоту на которой работает проц и в процессе симуляции - дебагинга измерить временные интервалы между исполняемыми командами. Т.е. например при ресете обнулить виртуальный таймер, потом дошагать до нужного места
и посмотреть сколько времени это займет вреале. Есть ли такая возможность в IAR?
И еще создал простой проект инверсии состояния ножки порта. Сконфигурировал таймер чтоб тактировался на частоте MCLK с дефолтными 750 кГц, и считал вверх до ffff.
Запускаю дебагинг в устройстве и смотрю на значение TAR, так при каждо выполнении инверсии и переходе опять на инверсию значение TAR меняется на 295 в десятичке. Почему так происходит?
Ведь по факту выполняется всего две команды инверсия и переход. Они не должны выполняться 295 тактов.
Спасибо.
CODE
#include <msp430x12x2.h>

int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x01; // Set P1.0 to output direction
P1OUT = 0x00; // Toggle P1.0 to 0
TACTL = TASSEL_2 + MC_2; // SMCLK, upmode

for (;;)
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR

}
Dog Pawlowa
Цитата(tvilsa @ Feb 27 2009, 12:29) *
Запускаю дебагинг в устройстве и смотрю на значение TAR, так при каждо выполнении инверсии и переходе опять на инверсию значение TAR меняется на 295 в десятичке. Почему так происходит?
Ведь по факту выполняется всего две команды инверсия и переход. Они не должны выполняться 295 тактов.

Отладчик MSP430 не останавливает периферию. Из-за этого возможны разные интересные эффекты, но жить по большому счету не мешает.
Просто нужно помнить.
rezident
Цитата(tvilsa @ Feb 27 2009, 13:29) *
и посмотреть сколько времени это займет вреале. Есть ли такая возможность в IAR?
Работа периферии в C-CPY не симулируется. Только на уровне макросов работы с флагами прерываний. Для измерения временных интервалов можно использовать значение переменной CYCLECOUNTER в окне CPURegisters. Берете абсолютную разницу и делите на частоту MCLK = временнОй интервал.
Цитата(tvilsa @ Feb 27 2009, 13:29) *
Запускаю дебагинг в устройстве и смотрю на значение TAR, так при каждо выполнении инверсии и переходе опять на инверсию значение TAR меняется на 295 в десятичке. Почему так происходит?
Ведь по факту выполняется всего две команды инверсия и переход. Они не должны выполняться 295 тактов.
Потому, что таймер продолжает тактироваться и считать, невзирая на breakpoint. А для того, чтобы считать его значение через JTAG, требуется тоже некоторое время.
tvilsa
Что то у меня не изменяется значение CYCLECOUNTER. Всегда равно 0.
:-(
tvilsa
Такой вопрос. Как зашить программу в контроллер из IAR?
Я так понимаю если при дебагинге программа зашивается то как то и при release можно засунуть готовую прошивку.
А то неудобно приходиться каждый раз переключаться в MspFet и шить оттуда.
Заранее спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.