I have a working device with a STM32F405ZGT6 in it. I want to dump the software it runs.

As far as I can tell, there's no external flash on the device, so it must be running off of the internal flash.

I've identified the SWD pins on the package and the designers helpfully left tiny attachment points to them.

As someone who's never done this on the hardware side, now what? What hardware do I need to attach to this core? What software? (I keep reading about openocd - is there something better?) How hard of a journey am I starting here?

Any help would be greatly appreciated.

  • SWD/JTAG dongle + openocd. It might not work, if fuse bits are programmed to prevent this. – domen Mar 4 '19 at 9:10
  • I'm reading the datasheet for the chip and I'm struggling to answer this question - can the flash dump protection be in place if the device supports over the air updates? As far as I understand, the protection works by disallowing data reads from the flash and only allowing instruction-fetch reads. Can you even implement OTA in a system like this? – Delyan Mar 4 '19 at 19:34
  • Restrictions are normally for debug interfaces, not for reading from flash when executing (as you said, instructions and data must be fetched from there) and not for programming from code (IAP). – domen Mar 5 '19 at 0:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.