Trap in OsIntCtxSw on MOD5270 (NNDK 2.2rc2)
Posted: Tue Nov 17, 2009 2:16 am
My application has one external Interrupt IRQ7 every second (no timer).
A trap occured up to 3 times in a day, in OsIntCtxSw (address 200DEF0 in the map) offset 0x1A (Faulted PC = 0200DF0A)
During three days the same application without IQ7 interrupt had no trap.
I added below the trap text, IRQ code and application tasks.
Could anyone help me, it's the first time I trap in NetBurner asm code.
Thanks,
Trap text:
/---------------------------------------------------------------------------/
/---------------------------------------------------------------------------/
Trap occured
Vector=Access Error FMT =03 SR =2704 FS =0C
Faulted PC = 0200DF0A
D0:00000000 00000030 00000002 00000004 00000007 0200FF8C 00000AA7 02015D90
A0:20000400 00000000 20000530 020161B8 020201B2 02016CF8 0203A018 0203A018
Waiting 2sec to start 'A' to abort
/---------------------------------------------------------------------------/
/---------------------------------------------------------------------------/
The interrupt code is very simple
/**************************************/
/**************************************/
INTERRUPT(ISR_RTC,0x2700)
{
sim.eport.epfr|=0x80;// IRQ7
bIT_RTC=true;
isr_cpt++;
if ((isr_cpt & 0x01)==0)
sim.gpio.podr_timer &= ~PDDR_PODR_DTOUT1; //Set Led to 0
else
{
sim.gpio.podr_timer |= PDDR_PODR_DTOUT1; //Set Led to 1
isr_cpt=1;
}
}
/**************************************/
and the init code is:
SetIntc((long)&ISR_RTC,7,4,4);
/**************************************/
/**************************************/
Application tasks:
- Main task processing I2CMaster, RS232 out on UART0 (Mtty) and UART2
- UDPMulticast task processing commands on I2C , UART and SPI
A trap occured up to 3 times in a day, in OsIntCtxSw (address 200DEF0 in the map) offset 0x1A (Faulted PC = 0200DF0A)
During three days the same application without IQ7 interrupt had no trap.
I added below the trap text, IRQ code and application tasks.
Could anyone help me, it's the first time I trap in NetBurner asm code.
Thanks,
Trap text:
/---------------------------------------------------------------------------/
/---------------------------------------------------------------------------/
Trap occured
Vector=Access Error FMT =03 SR =2704 FS =0C
Faulted PC = 0200DF0A
D0:00000000 00000030 00000002 00000004 00000007 0200FF8C 00000AA7 02015D90
A0:20000400 00000000 20000530 020161B8 020201B2 02016CF8 0203A018 0203A018
Waiting 2sec to start 'A' to abort
/---------------------------------------------------------------------------/
/---------------------------------------------------------------------------/
The interrupt code is very simple
/**************************************/
/**************************************/
INTERRUPT(ISR_RTC,0x2700)
{
sim.eport.epfr|=0x80;// IRQ7
bIT_RTC=true;
isr_cpt++;
if ((isr_cpt & 0x01)==0)
sim.gpio.podr_timer &= ~PDDR_PODR_DTOUT1; //Set Led to 0
else
{
sim.gpio.podr_timer |= PDDR_PODR_DTOUT1; //Set Led to 1
isr_cpt=1;
}
}
/**************************************/
and the init code is:
SetIntc((long)&ISR_RTC,7,4,4);
/**************************************/
/**************************************/
Application tasks:
- Main task processing I2CMaster, RS232 out on UART0 (Mtty) and UART2
- UDPMulticast task processing commands on I2C , UART and SPI