diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/stm32f4/startup')
-rw-r--r-- | c/src/lib/libbsp/arm/stm32f4/startup/bspreset.c | 26 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/stm32f4/startup/bspstart.c | 26 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/stm32f4/startup/bspstarthook.c | 28 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4 | 23 |
4 files changed, 103 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/stm32f4/startup/bspreset.c b/c/src/lib/libbsp/arm/stm32f4/startup/bspreset.c new file mode 100644 index 0000000000..297b08f6de --- /dev/null +++ b/c/src/lib/libbsp/arm/stm32f4/startup/bspreset.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2012 Sebastian Huber. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#include <rtems.h> + +#include <bsp/bootcard.h> + +void bsp_reset(void) +{ + rtems_interrupt_level level; + + rtems_interrupt_disable(level); + + while (1); +} diff --git a/c/src/lib/libbsp/arm/stm32f4/startup/bspstart.c b/c/src/lib/libbsp/arm/stm32f4/startup/bspstart.c new file mode 100644 index 0000000000..219c09365c --- /dev/null +++ b/c/src/lib/libbsp/arm/stm32f4/startup/bspstart.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2012 Sebastian Huber. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#include <bsp.h> +#include <bsp/bootcard.h> +#include <bsp/irq-generic.h> +#include <bsp/irq.h> +#include <bsp/linker-symbols.h> + +void bsp_start(void) +{ + if (bsp_interrupt_initialize() != RTEMS_SUCCESSFUL) { + _CPU_Fatal_halt(0xe); + } +} diff --git a/c/src/lib/libbsp/arm/stm32f4/startup/bspstarthook.c b/c/src/lib/libbsp/arm/stm32f4/startup/bspstarthook.c new file mode 100644 index 0000000000..1a69da76cc --- /dev/null +++ b/c/src/lib/libbsp/arm/stm32f4/startup/bspstarthook.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2012 Sebastian Huber. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#include <bsp.h> +#include <bsp/start.h> + +void BSP_START_TEXT_SECTION bsp_start_hook_0(void) +{ + /* Do nothing */ +} + +void BSP_START_TEXT_SECTION bsp_start_hook_1(void) +{ + bsp_start_copy_sections(); + + /* At this point we can use objects outside the .start section */ +} diff --git a/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4 b/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4 new file mode 100644 index 0000000000..823b60438e --- /dev/null +++ b/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4 @@ -0,0 +1,23 @@ +MEMORY { + RAM_INT : ORIGIN = 0x20000000, LENGTH = 128k + ROM_INT : ORIGIN = 0x00000000, LENGTH = 1M + NIRVANA : ORIGIN = 0, LENGTH = 0 +} + +REGION_ALIAS ("REGION_START", ROM_INT); +REGION_ALIAS ("REGION_VECTOR", RAM_INT); +REGION_ALIAS ("REGION_TEXT", ROM_INT); +REGION_ALIAS ("REGION_TEXT_LOAD", ROM_INT); +REGION_ALIAS ("REGION_RODATA", ROM_INT); +REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT); +REGION_ALIAS ("REGION_DATA", RAM_INT); +REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT); +REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT); +REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_INT); +REGION_ALIAS ("REGION_FAST_DATA", RAM_INT); +REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_INT); +REGION_ALIAS ("REGION_BSS", RAM_INT); +REGION_ALIAS ("REGION_WORK", RAM_INT); +REGION_ALIAS ("REGION_STACK", RAM_INT); + +INCLUDE linkcmds.armv7 |