MORE THAN THE SUM OF ITS PARTS
The instruction-set architecture decisions discussed in the previous boxout (page 67) are not the only problem faced by chip designers. Creating a microcontroller requires more than just the compute element – in particular, various peripheral-device building blocks need to be licensed or provided.
Their job is, for example, the provisioning of an I2C acceleration engine or the GPIO transceivers enabling the microcontroller to communicate with the outside world and any attached circuitry.
Given that most microcontroller development is quite low level (and hardware-communication-intensive), peripheral device selection is more critical to the developer – while the ISA base usually does not affect a C programmer much, as it is the problem of the C compiler, the way the peripheral devices work directly affects program structure and quality of life during development.
In the case of the GD32VF103, GigaDevice licensed IP similar to the STMicroelectronics STM32F103. This evergreen was at the core of the coronavirus chip crisis due to its extreme popularity; while its peripheral device complement might not be the most modern on the market, it is easy to understand and well documented.
Similarities in the peripheral devices mean that competent programmers are relatively easy to find – this is a significant benefit, especially when comparing the GD32VF103 to the offerings provided by more sectarian chip manufacturers.
Finally, look at Reusable Firmware Development by Jacob Beningo – this book shows programming practices for the embedded space. Following them mitigates the impact of the peripheral device layout on higher-level application code.