Код
void clock_init(void)
{
unsigned int dummy;
AT91C_BASE_AIC->AIC_IDCR = 1 << AT91C_ID_TC0;
AT91C_BASE_TC0->TC_IDR = AT91C_TC_CPCS;
AT91C_BASE_PMC->PMC_PCER = ( 1 << AT91C_ID_TC0 );
AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS;
AT91C_BASE_TC0->TC_IDR = 0xFFFFFFFF;
dummy = AT91C_BASE_TC0->TC_SR;
dummy = dummy;
AT91C_BASE_TC0->TC_CMR = 0x01;
AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN;
AT91C_BASE_AIC->AIC_IDCR = 0x1 << AT91C_ID_TC0;
BP AT91C_BASE_AIC->AIC_SVR[AT91C_ID_TC0] = (unsigned int) timer0_c_irq_handler;
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_TC0] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 1;
AT91C_BASE_AIC->AIC_ICCR = 0x1 << AT91C_ID_TC0;
AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS; // IRQ enable CPC
AT91C_BASE_AIC->AIC_IECR = 0x1 << AT91C_ID_TC0;
AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG;
}
После остановки на брек поинте жму GO программа выполняется правильно и все работает, бп убираю все Prefetch_handler....
У меня 3 прерывания, так на всех если бп ставить то работает после GO.
Это уже при выполнении из RAM.
При отладке в FLASH Unable to halt ARM core....
Может с железом или процом что-то...
/* Branch to main() */
LDR r0, =?main
MOV lr, pc
BX r0
На переходе в маин по BX r0 конец фильма все рушится.