Required Software
-
Simplicity Studio - as the primary operational environment and graphical user interface (GUI) for flashing the firmware.
-
Simplicity Commander - the native CLI tool for performing safe memory dumps and low-level operations.
Hardware Interface and Wiring
Communication with the EFR32MG21 microcontroller is established using the physical JTAG interface.
Pinout and Wiring: * On the three bottom pins, looking from the left, connect the signal wires in the following order: red, white, green. * Connect the ground wire (black) to the pin on the right side.
Performing a Backup
Dumping the memory prior to any modifications is an absolute engineering requirement. Simplicity Commander is flexible and automatically determines the output encoding format based on the provided file extension (.hex, .s37, or .bin).
Dumping the configuration area (User Data):
commander readmem --region @userdata --outfile userdata_sw2_TZ3000_wkai4ga5.s37 -d EFR32MG21
Dumping the main program memory (Main Flash):
commander readmem --region @mainflash --outfile mainflash_sw2_TZ3000_wkai4ga5.s37 -d EFR32MG21
Flashing Firmware
Flashing compiled binaries to the target device is executed via the Simplicity Studio interface.
Best Practice (Format Management):
For flashing and archiving, you must strictly use files in structured text formatsâi.e., .s37 (Motorola S-Record) or .hex (Intel HEX). Avoid using raw .bin formats.
Structured formats contain hardcoded memory addresses (offsets) embedded within them. This ensures the hardware programmer has absolute certainty about which physical memory block the specific snippet of code should be written to. Using .bin files carries the risk of human error (e.g., providing the wrong starting address) and overwriting the interrupt vector, which results in immediately bricking the chip.