summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-01-07 14:56:18 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-01-07 15:07:43 +0100
commit2460cc7848985ee84fbe18a4b7f14dfd78eea4ee (patch)
tree3e53641d4749b2a29d67c97417ea36e09131213d
parentbsp/lpc24xx: Add WWDT module defines (diff)
downloadrtems-2460cc7848985ee84fbe18a4b7f14dfd78eea4ee.tar.bz2
bsp/lpc24xx: Request system reset for LPC17XX
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
index d7bbc897c2..ca84e942bc 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2008-2013 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
@@ -21,6 +21,7 @@
*/
#include <rtems.h>
+#include <rtems/score/armv7m.h>
#include <bsp/bootcard.h>
#include <bsp/lpc24xx.h>
@@ -32,15 +33,16 @@ BSP_START_TEXT_SECTION __attribute__((flatten)) void bsp_reset(void)
rtems_interrupt_disable(level);
- #ifdef ARM_MULTILIB_ARCH_V4
+ #if defined(ARM_MULTILIB_ARCH_V4)
/* Trigger watchdog reset */
WDCLKSEL = 0;
WDTC = 0xff;
WDMOD = 0x3;
WDFEED = 0xaa;
WDFEED = 0x55;
- #else
- printk("reset\n");
+ #elif defined(ARM_MULTILIB_ARCH_V7M)
+ _ARMV7M_SCB->aircr = ARMV7M_SCB_AIRCR_VECTKEY
+ | ARMV7M_SCB_AIRCR_SYSRESETREQ;
#endif
while (true) {