Hi all,
I am developing program for UART0 with Interrupt. #include "def.h" #include "option.h" #include "2440addr.h" void uart_init(void); void uart_transmit(void); void uart_interrupt_init(void); void dely(U32 tt); static void __irq Uart0RxInt(void);
char data,flag=0;
static void __irq Uart0RxInt(void) { INTSUBMSK = 0xFFFFFFFF; SUBSRCPND = 0x1; SRCPND |= 0x10000000; INTPND = 0x10000000;
data = rURXH0; data = 'A'; flag = 1;
GPBDAT=0xFFFFFFFF; dely(12); GPBDAT=0x00000000; dely(12);*/
}
void dely(U32 tt) { U32 i; for(;tt>0;tt--) { for(i=0;i<10000;i++){} } }
int Main(int argc, char **argv) { int i; U8 key; U32 mpll_val=0; int data; unsigned int k,l;
mpll_val = (92<<12)|(1<<4)|(1);
MMU_DisableICache(); MMU_DisableDCache();
GPBCON = 0x155555; GPHCON |= 0xAA; uart_init(); uart_interrupt_init(); while(1) { while(flag!=1); uart_transmit(); flag=0; } INTSUBMSK = 0xFFFFFFFF; INTMSK = 0xFFFFFFFF;
void uart_init(void) { ULCON0 |= 0x00000003; UCON0 |= 0x00000005; UMCON0 = 0x00; UFCON0 = 0x00; UBRDIV0=329; // 9600 //UBRDIV0=27; // 115200 }
void uart_interrupt_init(void) { pISR_UART0 = (unsigned int)Uart0RxInt; SUBSRCPND = 0x1; SRCPND = (1<<28); INTPND = (1<<28); INTSUBMSK = 0xFFFFFFFE; INTMSK = 0xEFFFFFFF;
void uart_transmit(void) { while((UTRSTAT0&0x00000002)==0); UTXH0=data; }
when i download the code & run, it gives Dummy_isr error. please help me
It's hard to help you when your post is illegible!
Your source code is illegible because you didn't follow the instructions on how to post source code - they are quite clearly stated, as this picture shows:
www.danlhenry.com/.../keil_code.png
Perhaps you should also go back and carefully re-check the S3C2440 documentation to see if there's any important detais that you missed there...?
See also: http://www.keil.com/forum/docs/thread15952.asp
You can look at example in folder \ARM\Boards\Clabsys\LN2440SCB\Blinky for reference. That is an example for Samsung S3C2440 and it uses timer interrupt.