This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

UART transmitting interrupt handler

Hello

I am facing a problem in the following code.

code :-

#include "LPC318x.h"
void IRQ_HANDLER(void) __irq
{ PIO_OUTP_SET = 0x7EFFFFFF; PIO_OUTP_SET = 0x7EFFFFFF;
}

int main (void)
{ unsigned int i=0; SYSCLK_CTRL = 0x00000140; HCLKPLL_CTRL = 0x00014024; UARTCLK_CTRL = 0x0F; MIC_ER = 0x000007C0; U5LCR = 0x03; U5CLK = 0x0000020E; UART_CLKMODE = 0x00000550; U5FCR = 0x00; U5IER = 0x07; U3DLL = 27;

while(1) {

U5THR = 0x55; U5THR = 0xAA; }

}

When i enable UART5 interrupt by using MIC_ER interrupt is generated as it should be. But after transmitting the data it jumps to an unusual location
0x000002d4.
But it doesnt go to IRQ handler.
If i don't enable the interrupt using MIC_ER then it executes only while(1) loop.
The main aim of the program is to blink the LED after send data through UART5 as mentioned in the IRQ interrupt handler.

Thank You,

Ankit Thakkar.

Parents
  • Hello

    I managed to enter into the interrupt vector table when IRQ is generated.
    I mapped IRAM to 0x00000000.
    At startup interrupt vectors are located. But It doesn't jump to the desired location.
    Instead of that if i execute LDR PC,[PC,#0x0018]
    from external SRAM it jumps to the desired location but if i execute this instruction at the remapped location
    0x00000018. It doesnt jump to the specific location.
    Does anybody have any idea?

Reply
  • Hello

    I managed to enter into the interrupt vector table when IRQ is generated.
    I mapped IRAM to 0x00000000.
    At startup interrupt vectors are located. But It doesn't jump to the desired location.
    Instead of that if i execute LDR PC,[PC,#0x0018]
    from external SRAM it jumps to the desired location but if i execute this instruction at the remapped location
    0x00000018. It doesnt jump to the specific location.
    Does anybody have any idea?

Children