Exploring the GD32C231 MCU: A Look at the Cortex®-M23

Today I checked the news and saw that ST has been breached? Then I noticed the new product from GD32. I took a quick look and felt that the Cortex®-M23 was somewhat unfamiliar, so I gathered some information to write about it before going to sleep.

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
GD32C231-MCU.png

On June 5, 2025, GigaDevice (stock code 603986), a leading semiconductor device supplier, announced the official launch of the value-oriented GD32C231 series, further expanding the product lineup of the Arm® Cortex®-M23 core. The GD32C231 series is positioned as “high-performance entry-level” and will provide more competitive solutions for applications such as small appliances, BMS battery management systems, small display devices, handheld consumer products, industrial auxiliary control, and automotive aftermarket.

GD32C231 Series MCU: The Ultimate Cost-Performance Choice

While maintaining excellent price competitiveness, it significantly enhances computing performance and peripheral specifications, achieving an ultra-high cost-performance upgrade. This series adopts Arm®’s advanced Cortex®-M23 core architecture, with performance improved by 10% compared to Cortex® M0+, a maximum frequency of 48MHz, and efficient processing capabilities such as single-cycle multiplication and integer division, greatly enhancing software execution efficiency.

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
What will it look like in a moment?

In terms of storage configuration, it is equipped with 32KB to 64KB of high-reliability embedded Flash and 12KB of low-power SRAM, with ECC error correction functionality across all storage areas. To meet the needs of different application scenarios, it offers various packaging options including TSSOP20/LGA20, QFN28, LQFP32/QFN32, and LQFP48/QFN48. Through highly integrated chip design, it effectively reduces the number of external components, providing users with a more cost-effective Bill of Materials (BOM) solution.

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
GD32C231.png

Perfect Balance of Wide Voltage, Low Power, and High-Speed Wake-Up

It features excellent power flexibility and low power characteristics, supporting a wide voltage supply of 1.8V to 5.5V and a wide temperature operating range of -40℃ to 105℃, making it suitable for various harsh environments. The chip provides multiple power management modes, with a current of less than 5μA in deep sleep mode while maintaining a fast response speed, with a wake-up time of 2.6μs, perfectly balancing low power consumption and real-time requirements, empowering battery-powered and portable device applications.

The GD32C231 also excels in safety and reliability: outstanding anti-static capability, reaching high standards of ESD protection with contact discharge of 8KV (CD) and air discharge of 15KV (AD); all Flash/SRAM adopts ECC error correction design to effectively prevent data errors; and it integrates a hardware CRC cyclic redundancy check module to ensure the integrity and reliability of data transmission. These features enable the chip to operate stably in industrial control, automotive electronics, and other fields with stringent safety requirements.

Highly Integrated Peripheral Resources Empowering Diverse Application Scenarios

It integrates rich peripheral resources, significantly enhancing system integration and application flexibility: it has a built-in 12-bit ADC (supporting 13 external channels) and 2 internal comparators to meet precision measurement needs; and provides up to 4 general-purpose 16-bit timers and 1 16-bit advanced timer. It is equipped with 2 high-speed SPI interfaces (supporting four-wire QSPI mode, with a rate of up to 24Mbps), 2 I2C interfaces (supporting Fast Mode+, with a rate of 1Mbit/s), and 3 UARTs (with a rate of 6Mbps), integrating 3 DMA controllers and 1 I2S to ensure efficient communication capabilities.

It also offers excellent GPIO expandability, supporting up to 45 GPIOs in a 48-pin package, significantly enhancing hardware design flexibility. These professional configurations enable the chip to easily handle diverse application scenarios in industrial control, consumer electronics, and more.

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
GD32C231 Specification Block Diagram

Alright, that’s what I saw on the official website. In summary, it’s a great MCU, but the UART of GD32 is very sensitive to timing.

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
Looking at the architecture, the storage seems a bit different

Next, let’s look at the core:

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
This thing should have been around since 2016
Exploring the GD32C231 MCU: A Look at the Cortex®-M23
It’s the v8 instruction set

Let me state the conclusion first!

The Cortex-M23 is an entry-level processor designed specifically for ultra-low power, area-sensitive MCU applications (such as IoT nodes and secure sensors): particularly suitable for scenarios with certain security requirements but limited resources; compared to Cortex-M0+, it supports higher-level security isolation mechanisms such as TrustZone and MPU; compared to Cortex-M33, it is lighter in functionality and more suitable for applications with extreme area/power constraints.

Overview

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
image-20250606213548066

Processor Architecture: Based on Armv8-M Baseline, supporting Thumb/Thumb-2 instruction sets.

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
It’s a subset of the big V8

Pipeline Structure: Two-stage pipeline.

Bus Interface: AMBA AHB5 (using von Neumann architecture), optionally supports single-cycle I/O interface.

Security Mechanisms (TrustZone & Memory Protection)

I have always been skeptical about this until I wanted to steal firmware from an MCU, and then I realized that security is useful, haha.

Supports TrustZone for Armv8-M: divides the system into secure (Secure) and non-secure (Non-Secure) areas, with hardware-enforced resource isolation.

Supports Security Attribution Unit (SAU): up to 8 secure attribute regions.

Supports MPU (Memory Protection Unit): supports up to 16 memory protection regions in each security state; used to restrict illegal access and provide runtime memory protection.

TrustZone is the most important new feature of this architecture, explained in layman’s terms:

“I drew a ‘security line’ in the MCU; this side is the secure area (for running encryption programs, key management), and that side is the non-secure area (for running UI, Bluetooth stack).”

You cannot access each other’s content, just like a person cannot arbitrarily enter a bank vault.

To access secure content, you must go through the “secure gateway function” (Secure Gateway, <span>SG</span> instruction); there is a “Security Attribution Unit SAU” that specifically defines whether each memory segment is secure/non-secure; each has its own stack (to prevent stack collision); interrupts can be configured to be received only by “secure code”.

Interrupt Control (NVIC)

Supports 1 to 240 external interrupt sources, with 4 levels of priority.

Non-Maskable Interrupt (NMI) is supported.

Supports WIC (Wake-up Interrupt Controller): low-power wake-up function.

Integrates Wait For Interrupt (WFI) and Wait For Event (WFE), supporting Sleep-On-Exit mode.

Debug & Trace

Supports JTAG and Serial Wire Debug (SWD).

Optional support:

ETM (Embedded Trace Macrocell): instruction-level tracing;MTB (Micro Trace Buffer): simplified tracing;CTI (Cross Trigger Interface): debugging interaction component; configurable for up to 4 breakpoints and 4 watchpoints (wow, 4? M0 seems to only have 2).

Performance Features

Multiplier: 32×32 bit multiplication, supports single-cycle implementation;

Divider: supports fast division (17 cycles) or slow division (34 cycles);

Instruction Dispatch: limited dual-issue support;

Fast interrupt context switching, supports nested interrupts and precise exception handling (precise bus error).

Peripheral Interfaces & System Integration

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
As we all know, ARM is also a software company

Supports AHB5 interface + optional single-cycle I/O interface (high-performance GPIO).

Optional use of Arm Corstone platform:

Provides a set of SoC reference subsystem designs, including the main control, security module, and peripheral components;

Can be adapted to PSA certified platforms.

Implementation Options

This is likely aimed at upstream, and we don’t know if we can use it:

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
That’s how it is
Configuration Options Optional Values/Description
TrustZone Support Yes/No
Number of MPU Regions 0, 4, 8, 12, 16 (divided into Secure/Non-secure)
Number of SAU Regions 0, 4, 8
SysTick Timer 0, 1, 2 (with or without security extension)
Number of Interrupts 1 to 240
VTOR Register Optional
Instruction Width 16-bit / 32-bit
Multiplier Fast/Slow
Divider Fast/Slow
Trace (ETM/MTB/CTI) Optional Enable
Interrupt Wake-Up Controller WIC Optional Enable
Debug Method JTAG / Serial Wire

Power & Area

For comparison under different processes:

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
First, look at the original text
Configuration Area (mm²) Power (µW/MHz)
Minimum Configuration (No Security Features) 0.009 3.86
Rich Configuration (Including TrustZone) 0.034 8.66
28nm Process Minimum Configuration 0.004 2.26
Exploring the GD32C231 MCU: A Look at the Cortex®-M23
Maximum operating frequency example: 155 MHz (40LP process)

Let me briefly talk about this V8 programming model (just a little bit):

Exploring the GD32C231 MCU: A Look at the Cortex®-M23
It’s this document

Armv8-M is an architecture designed specifically for microcontrollers, divided into two configurations:

Armv8-M Baseline (like Cortex-M23): lighter;

Armv8-M Mainline (like Cortex-M33): supports more debugging and DSP features.

Backward compatible with Thumb/Thumb-2 instruction sets, for efficient code density.

Core features include: streamlined pipeline; supports exception nesting, tail chaining; flexible interrupt priority; hardware stack management; security extension: TrustZone for Armv8-M (hardware-level isolation mechanism).

I feel like I can’t learn anymore, goodbye.

Leave a Comment