diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-12-15 15:20:47 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-12-15 15:20:47 +0000 |
commit | c468f18bb73a570bf2b3eb279a7dea60b91c3319 (patch) | |
tree | b181297c2b4a0f8fa3edbb9987fd99a3ecc45a8b /c/src/lib/libbsp/arm/lpc24xx/startup | |
parent | add support for ARM11, reimplement nested interrupts (diff) | |
download | rtems-c468f18bb73a570bf2b3eb279a7dea60b91c3319.tar.bz2 |
add support for LPC32xx
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/startup')
7 files changed, 33 insertions, 29 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c index fb3eaa7b4b..f38ce1a46c 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c @@ -23,11 +23,11 @@ #include <bsp/bootcard.h> #include <bsp/lpc24xx.h> -void bsp_reset( void) +void bsp_reset(void) { rtems_interrupt_level level; - rtems_interrupt_disable( level); + rtems_interrupt_disable(level); /* Trigger watchdog reset */ WDCLKSEL = 0; diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c index 6090cce8ea..76e1aa79aa 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c @@ -33,15 +33,15 @@ void bsp_start(void) { /* Initialize Timer 1 */ - lpc24xx_module_enable(LPC24XX_MODULE_TIMER, 1, LPC24XX_MODULE_CCLK); + lpc24xx_module_enable(LPC24XX_MODULE_TIMER_1, LPC24XX_MODULE_CCLK); /* Initialize standard timer */ lpc24xx_timer_initialize(); /* Initialize console */ #ifdef LPC24XX_CONFIG_CONSOLE - lpc24xx_module_enable(LPC24XX_MODULE_UART, 0, LPC24XX_MODULE_CCLK); - lpc24xx_io_config(LPC24XX_MODULE_UART, 0, LPC24XX_CONFIG_CONSOLE); + lpc24xx_module_enable(LPC24XX_MODULE_UART_0, LPC24XX_MODULE_CCLK); + lpc24xx_io_config(LPC24XX_MODULE_UART_0, LPC24XX_CONFIG_CONSOLE); U0LCR = 0; U0IER = 0; U0LCR = 0x80; @@ -60,23 +60,25 @@ void bsp_start(void) lpc24xx_dma_initialize(); /* Task stacks */ - bsp_stack_initialize( - bsp_section_stack_begin, - (uintptr_t) bsp_section_stack_size - ); + #ifdef LPC24XX_SPECIAL_TASK_STACKS_SUPPORT + bsp_stack_initialize( + bsp_section_stack_begin, + (uintptr_t) bsp_section_stack_size + ); + #endif /* UART configurations */ #ifdef LPC24XX_CONFIG_UART_1 - lpc24xx_module_enable(LPC24XX_MODULE_UART, 1, LPC24XX_MODULE_CCLK); - lpc24xx_io_config(LPC24XX_MODULE_UART, 1, LPC24XX_CONFIG_UART_1); + lpc24xx_module_enable(LPC24XX_MODULE_UART_1, LPC24XX_MODULE_CCLK); + lpc24xx_io_config(LPC24XX_MODULE_UART_1, LPC24XX_CONFIG_UART_1); #endif #ifdef LPC24XX_CONFIG_UART_2 - lpc24xx_module_enable(LPC24XX_MODULE_UART, 2, LPC24XX_MODULE_CCLK); - lpc24xx_io_config(LPC24XX_MODULE_UART, 2, LPC24XX_CONFIG_UART_2); + lpc24xx_module_enable(LPC24XX_MODULE_UART_2, LPC24XX_MODULE_CCLK); + lpc24xx_io_config(LPC24XX_MODULE_UART_2, LPC24XX_CONFIG_UART_2); #endif #ifdef LPC24XX_CONFIG_UART_3 - lpc24xx_module_enable(LPC24XX_MODULE_UART, 3, LPC24XX_MODULE_CCLK); - lpc24xx_io_config(LPC24XX_MODULE_UART, 3, LPC24XX_CONFIG_UART_3); + lpc24xx_module_enable(LPC24XX_MODULE_UART_3, LPC24XX_MODULE_CCLK); + lpc24xx_io_config(LPC24XX_MODULE_UART_3, LPC24XX_CONFIG_UART_3); #endif } diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c index 1c899a00ad..732d30ddf5 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c @@ -26,8 +26,10 @@ #include <bsp/lpc24xx.h> #include <bsp/linker-symbols.h> +#define BSP_START_SECTION __attribute__((section(".bsp_start"))) + #ifdef LPC24XX_EMC_MICRON - static void __attribute__((section(".bsp_start"))) lpc24xx_ram_test_32(void) + static void BSP_START_SECTION lpc24xx_ram_test_32(void) { #ifdef LPC24XX_EMC_TEST int *begin = (int *) 0xa0000000; @@ -51,7 +53,7 @@ #endif } - static void __attribute__((section(".bsp_start"))) lpc24xx_cpu_delay( + static void BSP_START_SECTION lpc24xx_cpu_delay( unsigned ticks ) { @@ -69,7 +71,7 @@ /** * @brief EMC initialization hook 0. */ -static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_0(void) +static void BSP_START_SECTION lpc24xx_init_emc_0(void) { #ifdef LPC24XX_EMC_NUMONYX /* @@ -131,7 +133,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_0(void) /** * @brief EMC initialization hook 1. */ -static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_1(void) +static void BSP_START_SECTION lpc24xx_init_emc_1(void) { /* Use normal memory map */ EMC_CTRL = CLEAR_FLAG(EMC_CTRL, 0x2); @@ -234,7 +236,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_1(void) #endif } -static void __attribute__((section(".bsp_start"))) lpc24xx_pll_config( +static void BSP_START_SECTION lpc24xx_pll_config( uint32_t val ) { @@ -257,7 +259,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_pll_config( * @param cclksel Selects the divide value for creating the CPU clock (CCLK) * from the PLL output. */ -static void __attribute__((section(".bsp_start"))) lpc24xx_set_pll( +static void BSP_START_SECTION lpc24xx_set_pll( unsigned clksrc, unsigned nsel, unsigned msel, @@ -313,7 +315,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_set_pll( lpc24xx_pll_config(PLLCON_PLLE | PLLCON_PLLC); } -static void __attribute__((section(".bsp_start"))) lpc24xx_init_pll(void) +static void BSP_START_SECTION lpc24xx_init_pll(void) { /* Enable main oscillator */ if (IS_FLAG_CLEARED(SCS, 0x40)) { @@ -327,7 +329,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_init_pll(void) lpc24xx_set_pll(1, 0, 11, 3); } -static void __attribute__((section(".bsp_start"))) lpc24xx_clear_bss(void) +static void BSP_START_SECTION lpc24xx_clear_bss(void) { const int *end = (const int *) bsp_section_bss_end; int *out = (int *) bsp_section_bss_begin; @@ -339,7 +341,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_clear_bss(void) } } -void __attribute__((section(".bsp_start"))) bsp_start_hook_0(void) +void BSP_START_SECTION bsp_start_hook_0(void) { /* Initialize PLL */ lpc24xx_init_pll(); @@ -348,7 +350,7 @@ void __attribute__((section(".bsp_start"))) bsp_start_hook_0(void) lpc24xx_init_emc_0(); } -void __attribute__((section(".bsp_start"))) bsp_start_hook_1(void) +void BSP_START_SECTION bsp_start_hook_1(void) { /* Re-map interrupt vectors to internal RAM */ MEMMAP = SET_MEMMAP_MAP(MEMMAP, 2); diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea index ca6b52a4fe..afad88d747 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea @@ -21,7 +21,7 @@ * * <table> * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr> - * <tr><td>.start</td><td>RAM_EXT</td><td>RAM_EXT</td></tr> + * <tr><td>.start</td><td>RAM_EXT</td><td></td></tr> * <tr><td>.vector</td><td>RAM_INT</td><td></td></tr> * <tr><td>.text</td><td>RAM_EXT</td><td>RAM_EXT</td></tr> * <tr><td>.rodata</td><td>RAM_EXT</td><td>RAM_EXT</td></tr> diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram index 5322c7a725..c3f908b907 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram @@ -21,7 +21,7 @@ * * <table> * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr> - * <tr><td>.start</td><td>RAM_EXT</td><td>RAM_EXT</td></tr> + * <tr><td>.start</td><td>RAM_EXT</td><td></td></tr> * <tr><td>.vector</td><td>RAM_INT</td><td></td></tr> * <tr><td>.text</td><td>RAM_EXT</td><td>RAM_EXT</td></tr> * <tr><td>.rodata</td><td>RAM_EXT</td><td>RAM_EXT</td></tr> diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext index f4518090d4..d35d8cd10d 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext @@ -23,7 +23,7 @@ * * <table> * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr> - * <tr><td>.start</td><td>ROM_BOOT</td><td>ROM_BOOT</td></tr> + * <tr><td>.start</td><td>ROM_BOOT</td><td></td></tr> * <tr><td>.vector</td><td>RAM_INT</td><td></td></tr> * <tr><td>.text</td><td>RAM_EXT</td><td>ROM_EXT</td></tr> * <tr><td>.rodata</td><td>RAM_EXT</td><td>ROM_EXT</td></tr> diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int index a46145d333..044131ba30 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int @@ -23,7 +23,7 @@ * * <table> * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr> - * <tr><td>.start</td><td>ROM_INT</td><td>ROM_INT</td></tr> + * <tr><td>.start</td><td>ROM_INT</td><td></td></tr> * <tr><td>.vector</td><td>RAM_VEC</td><td></td></tr> * <tr><td>.text</td><td>ROM_INT</td><td>ROM_INT</td></tr> * <tr><td>.rodata</td><td>ROM_INT</td><td>ROM_INT</td></tr> |