diff --git a/bsp/lpc2478/application.c b/bsp/lpc2478/application.c index 89515b43d30d29c01621c773894fbc3deab43b64..5854fad8040269169499492a5ae56e6046b2a124 100644 --- a/bsp/lpc2478/application.c +++ b/bsp/lpc2478/application.c @@ -1,29 +1,29 @@ -/* - * File : app.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2008-12-11 xuxinming the first version - */ - -#include - -/** - * @addtogroup LPC2478 - */ -/*@{*/ +/* + * File : app.c + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2006, RT-Thread Development Team + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://openlab.rt-thread.com/license/LICENSE + * + * Change Logs: + * Date Author Notes + * 2008-12-11 xuxinming the first version + */ + +#include + +/** + * @addtogroup LPC2478 + */ +/*@{*/ char thread1_stack[512]; char thread2_stack[512]; struct rt_thread thread1; -struct rt_thread thread2; +struct rt_thread thread2; void thread1_entry(void* parameter) { @@ -37,25 +37,25 @@ void thread1_entry(void* parameter) rt_thread_delay(100); } } -} - +} + void thread2_entry(void* parameter) { int count = 0; while (1) { - rt_kprintf("Thread2 count:%d\n", count++); + rt_kprintf("Thread2 count:%d\n", count++); rt_thread_delay(50); } } int rt_application_init() -{ +{ rt_thread_init(&thread1, "thread1", thread1_entry, RT_NULL, &thread1_stack[0], sizeof(thread1_stack), - 20, 10); + 20, 10); rt_thread_init(&thread2, "thread2", @@ -67,6 +67,6 @@ int rt_application_init() rt_thread_startup(&thread2); return 0; -} +} /*@}*/ diff --git a/bsp/lpc2478/board.c b/bsp/lpc2478/board.c index d08e1aa763ea480bad017cb50568affd841ba70d..e90a2de8758e29b0ac0ac245a1d618b652eefe64 100644 --- a/bsp/lpc2478/board.c +++ b/bsp/lpc2478/board.c @@ -36,70 +36,70 @@ void rt_timer_handler(int vector) T0IR |= 0x01; /* clear interrupt flag */ rt_tick_increase(); VICVectAddr = 0; /* Acknowledge Interrupt */ -} - - -/** - * This function is used to display a string on console, normally, it's - * invoked by rt_kprintf - * - * @param str the displayed string - */ -void rt_hw_console_output(const char* str) -{ - while (*str) - { - if (*str=='\n') - { - while (!(U0LSR & 0x20)); - U0THR = '\r'; - } - - while (!(U0LSR & 0x20)); - U0THR = *str; - - str ++; - } -} - -#define BAUD_RATE 115200 -#define U0PINS 0x50 -void rt_hw_console_init() -{ - rt_uint32_t fdiv; - - /* Enable RxD and TxD pins */ - PINSEL0 = U0PINS; - - /* 8 bits, no Parity, 1 Stop bit */ - U0LCR = 0x83; - - /* Setup Baudrate */ - fdiv = ( PCLK / 16 ) / BAUD_RATE ; /*baud rate */ - U0DLM = fdiv / 256; - U0DLL = fdiv % 256; - U0FCR = 0x00; /* Enable and reset TX and RX FIFO. */ - U0LCR = 0x03; /* DLAB = 0 */ - - /* DLAB = 0 */ - U0LCR = 0x03; -} +} + + +/** + * This function is used to display a string on console, normally, it's + * invoked by rt_kprintf + * + * @param str the displayed string + */ +void rt_hw_console_output(const char* str) +{ + while (*str) + { + if (*str=='\n') + { + while (!(U0LSR & 0x20)); + U0THR = '\r'; + } + + while (!(U0LSR & 0x20)); + U0THR = *str; + + str ++; + } +} + +#define BAUD_RATE 115200 +#define U0PINS 0x50 +void rt_hw_console_init() +{ + rt_uint32_t fdiv; + + /* Enable RxD and TxD pins */ + PINSEL0 = U0PINS; + + /* 8 bits, no Parity, 1 Stop bit */ + U0LCR = 0x83; + + /* Setup Baudrate */ + fdiv = ( PCLK / 16 ) / BAUD_RATE ; /*baud rate */ + U0DLM = fdiv / 256; + U0DLL = fdiv % 256; + U0FCR = 0x00; /* Enable and reset TX and RX FIFO. */ + U0LCR = 0x03; /* DLAB = 0 */ + + /* DLAB = 0 */ + U0LCR = 0x03; +} /** * This function will init LPC2478 board */ void rt_hw_board_init() -{ +{ /* init console for rt_kprintf function */ - rt_hw_console_init(); + rt_hw_console_init(); T0IR = 0xff; T0TC = 0; T0MCR = 0x03; - T0MR0 = (DATA_COUNT); + T0MR0 = (DATA_COUNT); - rt_hw_interrupt_install(TIMER0_INT, rt_timer_handler, RT_NULL); - rt_hw_interrupt_umask(TIMER0_INT); + rt_hw_interrupt_install(TIMER0_INT, rt_timer_handler, RT_NULL); + rt_hw_interrupt_umask(TIMER0_INT); T0TCR = 0x01; //enable timer0 counter } diff --git a/bsp/lpc2478/board.h b/bsp/lpc2478/board.h index 2f9bf8b7e9962b294d64fa8a55dac043b702b4fe..0ab153ab50f8981ce04f9635bfb8ff0e05f9b78e 100644 --- a/bsp/lpc2478/board.h +++ b/bsp/lpc2478/board.h @@ -98,9 +98,9 @@ void rt_hw_finsh_init(void); #define VECT_ADDR_INDEX 0x100 #define VECT_CNTL_INDEX 0x200 - -#define CCLK 60000000 /* Fosc = 12MHz, M = 5 */ -#define PCLK 15000000 /* CCLK/4, use default */ + +#define CCLK 60000000 /* Fosc = 12MHz, M = 5 */ +#define PCLK 15000000 /* CCLK/4, use default */ /****************************************************************************** ** Function name: TargetInit