most 'bricked' devices (at least 8-bit devices) can be recovered young the flash utility. the IDEs are all incapable of recovery. I, personally, hve never had a bricked device that the flash utility could not recover
Is this comment "The debug adapter will need a small amount of time where the device is responsive after reset in order to connect, so performing some action which halts the device immediately after reset can cause a device to become unrecoverable"
saying that a Debug Adaptor will run some short burst of user code, before C2 Debug Adaptor gets control of the part ?
Is there an exact value for this 'Phantom user run time' before Debug-Control, as there are some code debugs where that could be a serious problem. Does that time vary with Debug host or firmware version ?
Is it possible that the compiler optimized my code, so that the trap doesn't do anything? It's quite frustrating, because debugging az application with sleep mode is a pain this way.
I have tried erasing the flash with the flash utility, but no luck. I have even tried black magic on the MCU, but still, it's a brick.
Is there a way I could get it working again or should I replace the MCU and insert a while(!GPIO); trap inside the code?
uint16_t dummy; enter_DefaultMode_from_RESET(); dummy=65535; while(dummy--); dummy=65535; while(dummy--);
I have bricked my EFM8SB10F8 (on demo Board) also ... I only played around with the low power modes/RTC demos.
SS say "device is locked", no chance for a full erase. (Error: "To program flash memory it is required to enable flash download")
I will replace the MCU and use a GPIO-Trap or a looong startupdelay in the future.
I've just managed to do the same. I have used the sleep mode in my release code, but now I can't connect to the device over the C2.
Have anyone manged to recover their device?
Is there a flash utility that erikm mentioned above that may recover the device?
I have just discovered that if you hold down the RESET key while powering the dev kit up, the unit comes back to life.
@mon2If I use the USB Debug Adaptor I can always recover the device using the Silicon Labs Flash Utility
If I use the EFM8 dev board with builtin J-LINK then I cannot recover the device.
Basically I was placing the device in sleep mode soon after power-up
PMU0CF = PMU0CF_SLEEP__START | PMU0CF_PMATWK__BMASK | PMU0CF_CLEAR__BMASK; // very low power
too avoind this happening I add a software delay as power-up
//---------------------------------------------------------------------------- // ** REQUIRED TO STOP CPU FROM SLEEPING SO DEVICE CAN BE REPROGRAMMED) ** // TickTimerSet(500*TICK_1SEC/1000); // while(!TickTimerChk()); for(PowerOnTimer = 140000; PowerOnTimer !=0; PowerOnTimer--); // do this in code just in case timer gets screwed up
However, even this wasn't completely reliable. but using the USB Debug Adaptor was.
I believe I have bricked a C8051F980. The message I receive is "Bootloader returned failure response." Doesn't seem to matter if I attempt to debug, flash, or even just erase the device. I'm using the USB Debug Adapter on a custom board.
I believe this happened when I added the statement PMU0MD = PMU0MD_MONDIS__DISABLED after wake-up without allowing enough time between resuming from sleep mode and the statement.
If anyone thinks there's still some chance of recovering the board somehow, I'd love to know because I've only got a half-dozen of these prototypes and it would be a pain to have to send it back to have a chip replaced.