mbed library sources modified for open wear
Dependents: openwear-lifelogger-example
Fork of mbed-src by
Revision 268:402bcc0c870b, committed 2014-07-29
- Comitter:
- mbed_official
- Date:
- Tue Jul 29 19:00:07 2014 +0100
- Parent:
- 267:8673334f2cbe
- Child:
- 269:0e58554f11d5
- Commit message:
- Synchronized with git revision 490d1a6606b3138f165c5edf2f2370ca616587c0
Full URL: https://github.com/mbedmicro/mbed/commit/490d1a6606b3138f165c5edf2f2370ca616587c0/
[LPC1114] Sleep fix + some device.h settings
Changed in this revision
--- a/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/TARGET_LPC11CXX/device.h Tue Jul 29 18:45:06 2014 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/TARGET_LPC11CXX/device.h Tue Jul 29 19:00:07 2014 +0100 @@ -41,8 +41,8 @@ #define DEVICE_PWMOUT 1 -#define DEVICE_SEMIHOST 1 -#define DEVICE_LOCALFILESYSTEM 1 +#define DEVICE_SEMIHOST 0 +#define DEVICE_LOCALFILESYSTEM 0 #define DEVICE_ID_LENGTH 32 #define DEVICE_MAC_OFFSET 20
--- a/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/TARGET_LPC11XX/device.h Tue Jul 29 18:45:06 2014 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/TARGET_LPC11XX/device.h Tue Jul 29 19:00:07 2014 +0100 @@ -41,8 +41,8 @@ #define DEVICE_PWMOUT 1 -#define DEVICE_SEMIHOST 1 -#define DEVICE_LOCALFILESYSTEM 1 +#define DEVICE_SEMIHOST 0 +#define DEVICE_LOCALFILESYSTEM 0 #define DEVICE_ID_LENGTH 32 #define DEVICE_MAC_OFFSET 20
--- a/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/sleep.c Tue Jul 29 18:45:06 2014 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/sleep.c Tue Jul 29 19:00:07 2014 +0100 @@ -18,10 +18,6 @@ #include "mbed_interface.h" void sleep(void) { -#if DEVICE_SEMIHOST - // ensure debug is disconnected - mbed_interface_disconnect(); -#endif // PCON[DPDEN] set to sleep LPC_PMU->PCON = 0x0; @@ -33,46 +29,20 @@ __WFI(); } -/* -* The mbed lpc1768 does not support the deepsleep mode -* as a debugger is connected to it (the mbed interface). -* -* As mentionned in an application note from NXP: -* -* http://www.po-star.com/public/uploads/20120319123122_141.pdf -* -* {{{ -* The user should be aware of certain limitations during debugging. -* The most important is that, due to limitations of the Cortex-M3 -* integration, the LPC17xx cannot wake up in the usual manner from -* Deep Sleep and Power-down modes. It is recommended not to use these -* modes during debug. Once an application is downloaded via JTAG/SWD -* interface, the USB to SWD/JTAG debug adapter (Keil ULINK2 for example) -* should be removed from the target board, and thereafter, power cycle -* the LPC17xx to allow wake-up from deep sleep and power-down modes -* }}} -* -* As the interface firmware does not reset the target when a -* mbed_interface_disconnect() semihosting call is made, the -* core cannot wake-up from deepsleep. -* -* We treat a deepsleep() as a normal sleep(). -*/ - void deepsleep(void) { -#if DEVICE_SEMIHOST - // ensure debug is disconnected - mbed_interface_disconnect(); -#endif // PCON[DPDEN] set to deepsleep - LPC_PMU->PCON = 0x2; + LPC_PMU->PCON = 0; // SRC[SLEEPDEEP] set to 1 = deep sleep SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; - // Power up everything after powerdown - LPC_SYSCON->PDAWAKECFG &= 0xFFFFF800; + //According to user manual it is kinda picky about reserved bits, so we follow that nicely + //Keep WDOSC and BOD in same state as they are now during deepsleep + LPC_SYSCON->PDSLEEPCFG = 0x000018B7 | (LPC_SYSCON->PDRUNCFG & (PDRUNCFG_WDTOSC_PD | PDRUNCFG_BOD_PD)); + + // Power up same as before powerdown + LPC_SYSCON->PDAWAKECFG = LPC_SYSCON->PDRUNCFG; // wait for interrupt __WFI();