GigaDevice GD32

From SEGGER Wiki
Revision as of 10:56, 16 February 2024 by Torben.scharping (talk | contribs) (Device Table)
Jump to: navigation, search

The GD32 Cortex-M Series is family of devices by GigaDevice Semiconductor Inc.
The following article contains information which applies to all members of the product family (e.g. readout protection).
Information which is more specific to the respective sub-family(e.g. QSPI programming) is provided in family specific articles.

A list of all GigaDevice devices supported by SEGGER can be found here.
For further information regarding the product family, please refer to the website and documentation by GigaDevice.

Connect under reset

In case that J-Link fails to connect to the device (usually caused by a low-power state of the MCU), J-Link will try to connect to the device under reset to make debugging possible.

MCU Security

GD32 Cortex-M device can have up to 3 different protection level:

Device Table

Protection level OB_SPC value OB_SPC_N value Flash access Data flash access EEPROM access Option Byte 0 access

None: No Protection.
Full access to flash, RAM and debug access.
OB_SPC == 0xA5, OB_SPC_N == 0x5A
Low:
No access flash, OTP, data flash and EEPROM from the debugger, only option byte is accessible.
High: Device is locked.
No access to flash, RAM and debug
OB_SPC == 0xCC, OB_SPC_N == 0x33

Disabling readout protection

J-Link Commander and J-Flash

J-Link Commander and J-Flash automatically detects secured GD32 Cortex-M devices and ask the user if it should be unlocked on connect.
This is called native unlock.
GD32 unlock dialog.png

Note:
  • It is possible to disable device access completely, by setting protection level to high. A connect will not be possible anymore afterwards and the security cannot be reset.
  • Unsecuring the device causes a mass erase of the flash.
  • It is possible to save the selection of the unlock dialog. To reset this, please refer to: Reset unlock message box.

Flasher standalone mode

In order to unlock a GD32 Cortex-M device in stand-alone mode, the unlock sequence is executed automatically if a secured device is detected.

Enabling readout protection

==== J-Link Commander ====
The below provided J-Link Commander command files set the protection level low (OB_SPC = 0x11 / OB_SPC_N = 0xEE).
On certain devices this is called "Under protection" in the reference manual.

J-Flash and Flasher standalone mode

Please use the Hex files below for J-Flash and append to your application hex file. Take care of the adjustment of the other settings in option byte 0 area for your hardware.

How to set protection level high

In order to set protection level high, the value "0x11" needs to be changed to "0xCC" and "0xEE" to "0x33".
Please note that protection level high is permanent and can neither be reverted by SEGGER nor by GigaDevice.

Device Table

GD32 Cortex-M series overview
Sub-Family Core Protection Levels J-Link Commander and J-Flash:
native Unlock support
J-Link Commander:
Lock via command file
J-Flash:
Lock via hex file (adjust to your setup)
GigaDevice_GD32C1 Cortex-M4 None/Low NO.png
GigaDevice_GD32A5 Cortex-M33 None/Low/High YES.png GD32A5 Lock GD32A5 OptionByte0 Protection Low