Hi Olivier, I had the same issue with openOCD and SAM0 MCU in the past. But I was always to recover my chips using JLinkExe tool from Segger. I just erased the whole memory using JLinkExe to unbrick the device and re-run openocd afterwards.You should probably take a look too.
Regards Le mer. 19 déc. 2018 à 08:51, Olivier Fauchon <[email protected]> a écrit : > Hi Bas, > > I use NXP Kinetis KW2xd MCU and OpenOCD + JLink with SWD, for flashing. > > I didn't know there were special procedures for unlocking devices. > > I'll try to use NXP official IDE flash these chips again. > > Thanks > > Olivier > > > > > > Le mer. 19 déc. 2018 à 08:17, Bas Stottelaar <[email protected]> a > écrit : > >> Hi Oliever, >> >> Which MCUs have you been playing with? >> >> This is a common 'problem' that can occur when you indeed enable LPM (or >> other things like disable debug pins etc). Therefore, most MCUs have >> certain procedures to keep the MCU halted after a reset, before any code is >> executed and the MCU gets unreachable. IIRC, ARM Cortex provides a >> vector-catch operation to halt the MCU after reset. Some IDEs (like >> Simplicity Studio for EFM32 MCUs) have a special unlock operation. >> >> Your solution isn't new, but works great to solve/work-around the problem >> ;-) >> >> Kind regards >> Bas Stottelaar >> >> >> >> Op wo 19 dec. 2018 om 08:08 schreef Olivier Fauchon < >> [email protected]>: >> >>> >>> Hi, >>> >>> I recently bricked a couple of MCUs playing with low power modes. >>> I'm still not sure what happened, but enabling LPM on my board makes >>> JTAG >>> inoperant. >>> >>> I spent a lot of time trying to save these dead MCUs. >>> >>> To avoid this situation, I added some kind of recovery mode at boot : >>> >>> >>> board.c >>> >>> void board_init(void) >>> ... >>> >>> // Safeguard: Infinite loop if board started with buttons pushed >>> gpio_init(BTN0_PIN, GPIO_IN_PU); >>> gpio_init(BTN1_PIN, GPIO_IN_PU); >>> if (!gpio_read(BTN0_PIN) || !gpio_read(BTN1_PIN) ) { >>> gpio_set(LED0_PIN); >>> gpio_set(LED1_PIN); >>> while(1){} >>> } >>> >>> Did I reinvent the wheel ? >>> Do Riot have already mecanisms to delay boot , or other way to protect >>> from bad images ? >>> >>> Thanks >>> Olivier Fauchon >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> users mailing list >>> [email protected] >>> https://lists.riot-os.org/mailman/listinfo/users >>> >> _______________________________________________ >> users mailing list >> [email protected] >> https://lists.riot-os.org/mailman/listinfo/users >> > _______________________________________________ > users mailing list > [email protected] > https://lists.riot-os.org/mailman/listinfo/users > -- Dylan Laduranty
_______________________________________________ users mailing list [email protected] https://lists.riot-os.org/mailman/listinfo/users
