devanlai / dapboot

DFU Bootloader for STM32 chips
Other
337 stars 111 forks source link

Add a new target for the GigaDevice variant of the BluePill Plus. #40

Closed obra closed 3 years ago

obra commented 3 years ago

WeAct ships two variants of this board, one with an STM32F103 and another with a GD32F303 series chip. The two boards are otherwise identical.

The GD32F303 series is pin-compatible and register compatible with the STM32F103, but features a cortex M4, more ram, and more flash.

In this case, the chip included has 48k of RAM and 256k of flash.

The biggest difference is that flash pages are 2k and not 1k.

While it's a little bit gross to be compiling code targeting the Cortex M3 on an ST chip and using it on an M4 made by somebody else, this was exactly the use case envisioned by GigaDevice.

I've tested this bootloader on actual hardware and additionally validated that WebDFU works from https://devanlai.github.io/webdfu/dfu-util/ to it.

The LED does not light up in the bootloader and I haven't dug into that, although the pin definition is correctly targeting PB2.

I'm not entirely confident that this device always ships with a 256K GD32F303. (They're also available in larger sizes up to a meg of flash.) Because I don't really grok the high bootloader code and didn't want to muck with the linker scripts, I've opted to skip over the highboot variants for this port.

devanlai commented 3 years ago

This looks fine to me, especially since there's not really any potential for a new target configuration to break any existing targets.