summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx/startup
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-12-15 15:20:47 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-12-15 15:20:47 +0000
commitc468f18bb73a570bf2b3eb279a7dea60b91c3319 (patch)
treeb181297c2b4a0f8fa3edbb9987fd99a3ecc45a8b /c/src/lib/libbsp/arm/lpc24xx/startup
parentadd support for ARM11, reimplement nested interrupts (diff)
downloadrtems-c468f18bb73a570bf2b3eb279a7dea60b91c3319.tar.bz2
add support for LPC32xx
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/startup')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c28
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c22
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int2
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>