Hi all guys,
I am currently working on a project using MPXY8300 TPMS chip, which is driven by HSC08 core. However I have encountered problem when using interrupts, and I always get ILLEGAL_BP while debugging. I have read several posts but nothing actually helped me. Here is what I have:
void main(void) { /* This code continously transmit TPMS packets of type BERU RDE012 */ UINT8 i; volatile UINT8 tmp; volatile UINT8 RFRD_data[11]; UINT16 delay=0; /* Set up MCU and set STOP mode. */ __RESET_WATCHDOG(); vfnSetupMCU(); vfnSetSTOPMode(4); vfnSetupRFX(); EnableInterrupts; PTADD |= BIT3; // set pin A3 output LED_OFF; LED_ON; LED_OFF; while(1); }
COP is disabled by writing 0x33 in SOPT1 reg.
Interrupt is defined in another file in the following way:
#pragma CODE_SEG NON_BANKED void interrupt VectorNumber_Vwuktmr wup_isr(void) { PWUCS0_WUFACK = SET; PWUCS1_PRFACK = SET; LED_ON; LED_OFF; } #pragma CODE_SEG DEFAULT
I don't use any interrupt table (If I understood correctly,that was an old way, but I also tried with linking error that desired segment is already in use ...).
Many thanks in advance for your suggestions,
Nemanja Savic