CommunityGD32Cores / ArduinoCore-GD32

Arduino core for GD32 devices, community developed, based on original GigaDevice's core
Other
93 stars 33 forks source link

Update firmware library from MBED dump to GD's 2.1.2. #33

Closed bjc closed 3 years ago

bjc commented 3 years ago

[#32 was on the main branch, this is a separate topic branch -- sorry about that!]

The main motivation of this PR is to never modify GD's sources. The existing firmware library included in the core has a series of modifications from persons unknown made in a scattershot fashion across the source tree, which may have been suitable for GigaDevice's use, since they presumably have their own SCM and can track changes effectively. However, since we need to be able to track local changes versus upstream changes, anything we modify should be done outside of the official firmware library tree.

In addition, as documentation for the USB parts of the library are missing from the version previously in use, the library has been updated to 2.1.2, as pulled from https://github.com/CommunityGD32Cores/gigadevice-firmware-and-docs/tree/main/GD32F30x/GD32F30x_Firmware_Library_V2.1.2 so that existing demo code may be referenced when creating the USB layer for Arduino and Platformio.

For the most part, the changes to our Arduino core files should be non-controversial, if clunky. Please look through the individual commits for my notes on them.

With these changes, the basic "Blink" example compiles.