Interface Powerdown
Page last updated
13 Oct 2010, by
Simon Ford.
6
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
Does anybody know if the features of this experimental firmware were integrated in one of the latest firmaware release? (e.g. rev 16457)
You need to 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