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

How to define the interrupt function ( UART0 )

hi
i whant define function "UART0_IRQHandler" in my library ( uart library )
but i dont whant use
#include <lpc17xx.h>
and
startup_LPC17xx.s

I tried this code but did not work
void (*test) (void) = (void (*) (void)) 0x54;

in file "LPC176x/5x User manual ( UM10360 )" and "Table 50" :

Interrupt_ID : 5
Exception_Number : 21
Vector_Offset : 0x54
Function : UART0
Flag(s) : Rx Line Status (RLS) Transmit Holding Register Empty (THRE) Rx Data Available (RDA) Character Time-out Indicator (CTI) End of Auto-Baud (ABEO) Auto-Baud Time-Out (ABTO)

Parents
  • dif register for uart :

    class UART { // Table 271 public : volatile uint32_t *RBR[4] = { // DLAB = 0, RO (uint32_t *)0x4000C000, (uint32_t *)0x40010000, (uint32_t *)0x40098000, (uint32_t *)0x4009C000 }; volatile uint32_t *THR[4] = { // DLAB = 0, WO (uint32_t *)0x4000C000, (uint32_t *)0x40010000, (uint32_t *)0x40098000, (uint32_t *)0x4009C000 }; volatile uint32_t *DLL[4] = { // DLAB = 1, R/W (uint32_t *)0x4000C000, (uint32_t *)0x40010000, (uint32_t *)0x40098000, (uint32_t *)0x4009C000 }; volatile uint32_t *DLM[4] = { // DLAB = 1 (uint32_t *)0x4000C004, (uint32_t *)0x40010004, (uint32_t *)0x40098004, (uint32_t *)0x4009C004 }; volatile uint32_t *IER[4] = { // DLAB = 0 (uint32_t *)0x4000C004, (uint32_t *)0x40010004, (uint32_t *)0x40098004, (uint32_t *)0x4009C004 }; volatile uint32_t *IIR[4] = { // RO (uint32_t *)0x4000C008, (uint32_t *)0x40010008, (uint32_t *)0x40098008, (uint32_t *)0x4009C008 }; volatile uint32_t *FCR[4] = { // WO (uint32_t *)0x4000C008, (uint32_t *)0x40010008, (uint32_t *)0x40098008, (uint32_t *)0x4009C008 }; volatile uint32_t *LCR[4] = { (uint32_t *)0x4000C00C, (uint32_t *)0x4001000C, (uint32_t *)0x4009800C, (uint32_t *)0x4009C00C }; volatile uint32_t *U1MCR = (uint32_t *)0x40010010; // Just for UART1 volatile uint32_t *LSR[4] = { (uint32_t *)0x4000C014, (uint32_t *)0x40010014, (uint32_t *)0x40098014, (uint32_t *)0x4009C014 }; volatile uint32_t *U1MSR = (uint32_t *)0x40010018; // Just for UART1 volatile uint32_t *SCR[4] = { (uint32_t *)0x4000C01C, (uint32_t *)0x4001001C, (uint32_t *)0x4009801C, (uint32_t *)0x4009C01C }; volatile uint32_t *ACR[4] = { (uint32_t *)0x4000C020, (uint32_t *)0x40010020, (uint32_t *)0x40098020, (uint32_t *)0x4009C020 }; volatile uint32_t *U0ICR = (uint32_t *)0x4000C024; // Just for UART0 volatile uint32_t *U2ICR = (uint32_t *)0x40098024; // Just for UART2 volatile uint32_t *U3ICR = (uint32_t *)0x4009C024; // Just for UART3 volatile uint32_t *FDR[4] = { (uint32_t *)0x4000C028, (uint32_t *)0x40010028, (uint32_t *)0x40098028, (uint32_t *)0x4009C028 }; volatile uint32_t *TER[4] = { (uint32_t *)0x4000C030, (uint32_t *)0x40010030, (uint32_t *)0x40098030, (uint32_t *)0x4009C030 }; volatile uint32_t *U1RS485CTRL = (uint32_t *)0x4001004C; // Just for UART1 volatile uint32_t *U1ADRMATCH = (uint32_t *)0x40010050; // Just for UART1 volatile uint32_t *U1RS485DLY = (uint32_t *)0x40010054; // Just for UART1
    };

Reply
  • dif register for uart :

    class UART { // Table 271 public : volatile uint32_t *RBR[4] = { // DLAB = 0, RO (uint32_t *)0x4000C000, (uint32_t *)0x40010000, (uint32_t *)0x40098000, (uint32_t *)0x4009C000 }; volatile uint32_t *THR[4] = { // DLAB = 0, WO (uint32_t *)0x4000C000, (uint32_t *)0x40010000, (uint32_t *)0x40098000, (uint32_t *)0x4009C000 }; volatile uint32_t *DLL[4] = { // DLAB = 1, R/W (uint32_t *)0x4000C000, (uint32_t *)0x40010000, (uint32_t *)0x40098000, (uint32_t *)0x4009C000 }; volatile uint32_t *DLM[4] = { // DLAB = 1 (uint32_t *)0x4000C004, (uint32_t *)0x40010004, (uint32_t *)0x40098004, (uint32_t *)0x4009C004 }; volatile uint32_t *IER[4] = { // DLAB = 0 (uint32_t *)0x4000C004, (uint32_t *)0x40010004, (uint32_t *)0x40098004, (uint32_t *)0x4009C004 }; volatile uint32_t *IIR[4] = { // RO (uint32_t *)0x4000C008, (uint32_t *)0x40010008, (uint32_t *)0x40098008, (uint32_t *)0x4009C008 }; volatile uint32_t *FCR[4] = { // WO (uint32_t *)0x4000C008, (uint32_t *)0x40010008, (uint32_t *)0x40098008, (uint32_t *)0x4009C008 }; volatile uint32_t *LCR[4] = { (uint32_t *)0x4000C00C, (uint32_t *)0x4001000C, (uint32_t *)0x4009800C, (uint32_t *)0x4009C00C }; volatile uint32_t *U1MCR = (uint32_t *)0x40010010; // Just for UART1 volatile uint32_t *LSR[4] = { (uint32_t *)0x4000C014, (uint32_t *)0x40010014, (uint32_t *)0x40098014, (uint32_t *)0x4009C014 }; volatile uint32_t *U1MSR = (uint32_t *)0x40010018; // Just for UART1 volatile uint32_t *SCR[4] = { (uint32_t *)0x4000C01C, (uint32_t *)0x4001001C, (uint32_t *)0x4009801C, (uint32_t *)0x4009C01C }; volatile uint32_t *ACR[4] = { (uint32_t *)0x4000C020, (uint32_t *)0x40010020, (uint32_t *)0x40098020, (uint32_t *)0x4009C020 }; volatile uint32_t *U0ICR = (uint32_t *)0x4000C024; // Just for UART0 volatile uint32_t *U2ICR = (uint32_t *)0x40098024; // Just for UART2 volatile uint32_t *U3ICR = (uint32_t *)0x4009C024; // Just for UART3 volatile uint32_t *FDR[4] = { (uint32_t *)0x4000C028, (uint32_t *)0x40010028, (uint32_t *)0x40098028, (uint32_t *)0x4009C028 }; volatile uint32_t *TER[4] = { (uint32_t *)0x4000C030, (uint32_t *)0x40010030, (uint32_t *)0x40098030, (uint32_t *)0x4009C030 }; volatile uint32_t *U1RS485CTRL = (uint32_t *)0x4001004C; // Just for UART1 volatile uint32_t *U1ADRMATCH = (uint32_t *)0x40010050; // Just for UART1 volatile uint32_t *U1RS485DLY = (uint32_t *)0x40010054; // Just for UART1
    };

Children