the_spirit
Nov 25 2010, 11:54
Использую IAR Embedded workbench 5.4 отлаживаю приложение на контроллере NXP LPC2103. При попытке запустить выполнение до breakpoint iar теряет контроль над контроллером при попытке остановить выполнение на текущей инструкции пишет "Unable to halt ARM Core". При выполнениии пошаговой отладки все работает нормально,но это чудовищно долго. Использую программатор MT-Link
опции отладчика J-link/J-trace частота работы определяется автоматически, breakpointы также автоматически. В программировании ARM новичок.
А где первый брейкпоинт стоит?
Попробуйте поставить через несколько асм инструкций и запустить, для проверки.
Может быть у вас реально чип виснет или перегружается до брейкпоинта (неправильная инициализация PLL, WDT ....)
the_spirit
Nov 26 2010, 16:51
ставил на входе в main выходе функции инициализации
она выглядит слкдующим образом,возможно я не правильно инициализирую PLL?
//crystal is 14 745 600
//devide or multiplier
//here is calculate frecuence Cclk=Fosc*M 156<Fcco<320=60*2*P FCCO = 14.7456MHz * M * 2 * P = 235.9296MHz
PLLCFG_bit.MSEL = 0x3; //M - multiplier ->
PLLCFG_bit.PSEL = 0x1; //P - devider ->
PLLCON = 1; // Disable PLL, disconnected
PLLFEED = 0xAA;
PLLFEED = 0x55;
//set changes (require from architecture)
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;
//enable or connect PLL
//enable PLL
PLLCON_bit.PLLE = 1;
//set changes (require from architecture)
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;
//wait for PLOK (correct freq)
while(PLLSTAT_bit.PLOCK == 0);
//connect PLL
PLLCON_bit.PLLC = 1;
//set changes (require from architecture)
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;
// Enabling MAM and setting number of clocks used for
// Flash memory fetch (4 cclks in this case)
MAMCR=0x2; // Memory accelerator functions fully enabled
MAMTIM=0x4; // fetch cycles are 4 clocks in duration
// Sets the Peripheral Clock (PCLK)
// to *HALF* the processor clock CCLK
APBDIV = 0x02; // PCLK = 29.491MHz
PraNkiSh
Nov 29 2010, 17:51
реально отладчик в 2103 позволяет ставить точку останова только одну при работе с программы из флэш. (из памяти - больше). пятая версия иар делает точки останова в этом случае на программном уровне. однако по всей видимости проблема с прерываниями - плохо отладчик с ними работает - зависает иногда на обработчике. поэтому советовал бы уменьшить количество прерываний.
пользоваться не точками останова а run to cursor - так почему то надежнее работает
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.