Interface Powerdown
Page last updated 13 Oct 2010, by
Simon Ford

No tags
|
5 replies
This note discusses an experimental (== unsupported) mbed interface firmware version which allows you to instruct it to power down. This has the effect of disconnecting the interface as a debugger and disabling the USB interface.
The semantics are:
- The target can make a semihosting call to the interface to request it to power down
- If USB is not connected, the interface will detach its debug connection to the target, then power down
- If USB is connected, it will be ignored and the mbed will function as normal
- The interface will be restored again after a power cycle
The experimental firmware is at:
To load it, drag it on to your mbed and power-cycle. If you want to revert to the standard firmware at any time, go to /handbook/Firmware.
To request a powerdown, take a look at the example program:
Note, as the call is ignored when USB is connected, you can always plug in your mbed and reprogram it as normal.
#
19 Dec 2010 . Edited: 19 Dec 2010
Dose the new boot loader put IC1 it into
- Sleep
- Deep Sleep
- Power Down
- Deep Power Down
when "__semihost( USR_POWERDOWN, &arg );" is called?
I also note that " #pragma NOINIT" & " #pragma INIT" don't work with the compiler. When trying to store vars for watchdog trace back.
#define WDG_LINE() (wdg_line = __LINE__)
#pragma NOINIT
uint16_t wdg_cnt;
int wdg_line;
#pragma INIT
#
22 Jul 2011 . Edited: 22 Jul 2011
Did this ever get added to the main libs, if not how can I make a lib out of the expermental lib
#
23 Jul 2011 . Edited: 23 Jul 2011
I see __IO uint32_t PowerDown; and that's it... what am I supposed to be looking for...........
#
28 Jul 2011 . Edited: 29 Jul 2011
Can no anyone can wake up from DeepSleep by any InterruptIn? While, sleep works right and, wakes up by an interrupt.
#
07 Oct 2011 . Edited: 07 Oct 2011
Please log in to post a comment.
Dose the new boot loader put IC1 it into
when "__semihost( USR_POWERDOWN, &arg );" is called?
I also note that " #pragma NOINIT" & " #pragma INIT" don't work with the compiler. When trying to store vars for watchdog trace back.
#define WDG_LINE() (wdg_line = __LINE__)
#pragma NOINIT
uint16_t wdg_cnt;
int wdg_line;
#pragma INIT