diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-22 21:49:21 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-22 21:49:21 +0000 |
commit | bf7e13f3a1e7cc2ef2526bb71e030026681a21da (patch) | |
tree | a1f7b0cacd86847016e716ccb520cf63dbe7cc56 /c/src/lib/libbsp/arm/gp32 | |
parent | 2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-bf7e13f3a1e7cc2ef2526bb71e030026681a21da.tar.bz2 |
2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac, console/uart.c, startup/bspstart.c: Use
standardized bsp_cleanup() which can optionally print a message, poll
for user to press key, and call bsp_reset(). Using this eliminates
the various bsp_cleanup() implementations which had their own
implementation and variety of string constants.
* startup/bspreset.c: New file.
* startup/bspclean.c: Removed.
Diffstat (limited to 'c/src/lib/libbsp/arm/gp32')
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/ChangeLog | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/Makefile.am | 3 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/configure.ac | 9 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/console/uart.c | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/startup/bspclean.c | 29 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/startup/bspreset.c | 38 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/startup/bspstart.c | 31 |
7 files changed, 65 insertions, 61 deletions
diff --git a/c/src/lib/libbsp/arm/gp32/ChangeLog b/c/src/lib/libbsp/arm/gp32/ChangeLog index 1394a3ae52..3ad5c46993 100644 --- a/c/src/lib/libbsp/arm/gp32/ChangeLog +++ b/c/src/lib/libbsp/arm/gp32/ChangeLog @@ -1,3 +1,13 @@ +2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com> + + * Makefile.am, configure.ac, console/uart.c, startup/bspstart.c: Use + standardized bsp_cleanup() which can optionally print a message, poll + for user to press key, and call bsp_reset(). Using this eliminates + the various bsp_cleanup() implementations which had their own + implementation and variety of string constants. + * startup/bspreset.c: New file. + * startup/bspclean.c: Removed. + 2008-09-19 Joel Sherrill <joel.sherrill@oarcorp.com> * Makefile.am, startup/linkcmds: Use top level shared diff --git a/c/src/lib/libbsp/arm/gp32/Makefile.am b/c/src/lib/libbsp/arm/gp32/Makefile.am index 384c1f8c31..b9a0606346 100644 --- a/c/src/lib/libbsp/arm/gp32/Makefile.am +++ b/c/src/lib/libbsp/arm/gp32/Makefile.am @@ -28,7 +28,8 @@ dist_project_lib_DATA += startup/linkcmds startup_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \ ../../shared/bsppredriverhook.c ../../shared/bspgetworkarea.c \ - ../../shared/bsppretaskinghook.c startup/bspstart.c startup/bspclean.c \ + ../../shared/bsppretaskinghook.c startup/bspstart.c \ + ../../shared/bspclean.c startup/bspreset.c \ startup/memmap.c ../../shared/bootcard.c ../../shared/sbrk.c \ ../../shared/gnatinstallhandler.c console_SOURCES = console/uart.c ../../shared/console.c diff --git a/c/src/lib/libbsp/arm/gp32/configure.ac b/c/src/lib/libbsp/arm/gp32/configure.ac index 1e346815af..d608f43c6d 100644 --- a/c/src/lib/libbsp/arm/gp32/configure.ac +++ b/c/src/lib/libbsp/arm/gp32/configure.ac @@ -18,6 +18,15 @@ RTEMS_PROG_CCAS RTEMS_CHECK_NETWORKING AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes") +RTEMS_BSPOPTS_SET([BSP_PRESS_KEY_FOR_RESET],[*],[0]) +RTEMS_BSPOPTS_HELP([BSP_PRESS_KEY_FOR_RESET], +[If defined, print a message and wait until pressed before resetting + board when application exits.]) + +RTEMS_BSPOPTS_SET([BSP_RESET_BOARD_AT_EXIT],[*],[1]) +RTEMS_BSPOPTS_HELP([BSP_RESET_BOARD_AT_EXIT], +[If defined, reset the board when the application exits.]) + RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION # Explicitly list all Makefiles here diff --git a/c/src/lib/libbsp/arm/gp32/console/uart.c b/c/src/lib/libbsp/arm/gp32/console/uart.c index 02cb590d20..b619a378c7 100644 --- a/c/src/lib/libbsp/arm/gp32/console/uart.c +++ b/c/src/lib/libbsp/arm/gp32/console/uart.c @@ -245,5 +245,9 @@ static void _BSP_put_char( char c ) { BSP_output_char_function_type BSP_output_char = _BSP_put_char; +static int _BSP_get_char(void) +{ + return uart_poll_read(0); +} - +BSP_polling_getchar_function_type BSP_poll_char = _BSP_get_char; diff --git a/c/src/lib/libbsp/arm/gp32/startup/bspclean.c b/c/src/lib/libbsp/arm/gp32/startup/bspclean.c deleted file mode 100644 index 78139a8c4f..0000000000 --- a/c/src/lib/libbsp/arm/gp32/startup/bspclean.c +++ /dev/null @@ -1,29 +0,0 @@ -/*-------------------------------------------------------------------------+ -| exit.c - ARM BSP -+--------------------------------------------------------------------------+ -| Routines to shutdown and reboot the BSP. -+--------------------------------------------------------------------------+ -| -| Copyright (c) 2000 Canon Research Centre France SA. -| Emmanuel Raguet, mailto:raguet@crf.canon.fr -| -| The license and distribution terms for this file may be -| found in found in the file LICENSE in this distribution or at -| http://www.rtems.com/license/LICENSE. -| -+--------------------------------------------------------------------------*/ - - -#include <stdio.h> -#include <bsp.h> -#include <rtems/bspIo.h> -#include <rtems/libio.h> - -void bsp_reset(void); - -void bsp_cleanup(void) -{ - bsp_reset(); -} - - diff --git a/c/src/lib/libbsp/arm/gp32/startup/bspreset.c b/c/src/lib/libbsp/arm/gp32/startup/bspreset.c new file mode 100644 index 0000000000..9484a62bdc --- /dev/null +++ b/c/src/lib/libbsp/arm/gp32/startup/bspreset.c @@ -0,0 +1,38 @@ +/* + * The license and distribution terms for this file may be + * found in found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include <bsp.h> + +void bsp_reset(void) +{ + rtems_interrupt_level level; + rtems_interrupt_disable(level); + /* disable mmu, invalide i-cache and call swi #4 */ + asm volatile("" + "mrc p15,0,r0,c1,c0,0 \n" + "bic r0,r0,#1 \n" + "mcr p15,0,r0,c1,c0,0 \n" + "nop \n" + "nop \n" + "nop \n" + "nop \n" + "nop \n" + "mov r0,#0 \n" + "MCR p15,0,r0,c7,c5,0 \n" + "nop \n" + "nop \n" + "nop \n" + "nop \n" + "nop \n" + "swi #4 " + : + : + : "r0" + ); + /* we should be back in bios now */ +} diff --git a/c/src/lib/libbsp/arm/gp32/startup/bspstart.c b/c/src/lib/libbsp/arm/gp32/startup/bspstart.c index 95dc4b34ee..669ea9c05f 100644 --- a/c/src/lib/libbsp/arm/gp32/startup/bspstart.c +++ b/c/src/lib/libbsp/arm/gp32/startup/bspstart.c @@ -11,6 +11,7 @@ * found in found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. * + * $Id$ */ #include <bsp.h> @@ -101,33 +102,3 @@ void bsp_start_default( void ) */ void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default"))); - -void bsp_reset(void) -{ - rtems_interrupt_level level; - rtems_interrupt_disable(level); - printk("bsp_reset.....\n"); - /* disable mmu, invalide i-cache and call swi #4 */ - asm volatile("" - "mrc p15,0,r0,c1,c0,0 \n" - "bic r0,r0,#1 \n" - "mcr p15,0,r0,c1,c0,0 \n" - "nop \n" - "nop \n" - "nop \n" - "nop \n" - "nop \n" - "mov r0,#0 \n" - "MCR p15,0,r0,c7,c5,0 \n" - "nop \n" - "nop \n" - "nop \n" - "nop \n" - "nop \n" - "swi #4 " - : - : - : "r0" - ); - /* we should be back in bios now */ -} |