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
  • yeah sure.

    My code is in external SDRAM which starts from 0x80000000.
    In the starting of my code interrupt vector table is located then all functions are stored.
    In my code i defined an IRQ handler function. Which should be called when IRQ is generated.
    But When IRQ is generated it goes into onchip IRAM (0x00000000 to 0x00004000) instead of going into IRQ handler function.
    I have verified that if program counter goes into interrupt vector table it calls the desired function.
    So the problem is that when IRQ is generated why program counter doesnt enter into interrupt vector table.

Reply
  • yeah sure.

    My code is in external SDRAM which starts from 0x80000000.
    In the starting of my code interrupt vector table is located then all functions are stored.
    In my code i defined an IRQ handler function. Which should be called when IRQ is generated.
    But When IRQ is generated it goes into onchip IRAM (0x00000000 to 0x00004000) instead of going into IRQ handler function.
    I have verified that if program counter goes into interrupt vector table it calls the desired function.
    So the problem is that when IRQ is generated why program counter doesnt enter into interrupt vector table.

Children