Introduction
STM32Cube is an STMicroelectronics original initiative to significantly improve designer's productivity by reducing development
effort, time, and cost. STM32Cube covers the whole STM32 portfolio.
STM32Cube includes:
A set of user-friendly software development tools to cover project development from conception to realization, among which
are:
STM32CubeMX, a graphical software configuration tool that allows the automatic generation of C initialization code
using graphical wizards
STM32CubeIDE, an all-in-one development tool with peripheral configuration, code generation, code compilation, and
debug features
STM32CubeProgrammer (STM32CubeProg), a programming tool available in graphical and command-line versions
STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD)
powerful monitoring tools to fine-tune the behavior and performance of STM32 applications in real-time
STM32Cube MCU and MPU Packages, comprehensive embedded-software platforms specific to each microcontroller and
microprocessor series (such as STM32CubeG0 for the STM32G0 Series), which include:
STM32Cube hardware abstraction layer (HAL), ensuring maximized portability across the STM32 portfolio
STM32Cube low-layer APIs, ensuring the best performance and footprints with a high degree of user control over
hardware
A consistent set of middleware components such as FAT file system, RTOS, OpenBootloader, USB Host, USB Device,
and USB Power Delivery
All embedded software utilities with full sets of peripheral and applicative examples
STM32Cube Expansion Packages, which contain embedded software components that complement the functionalities of
the STM32Cube MCU and MPU Packages with:
Middleware extensions and applicative layers
Examples running on some specific STMicroelectronics development boards
The STM32CubeG0 demonstration firmware running on the STM32G0C1E-EV Evaluation board is built around the STM32Cube
hardware abstraction layer (HAL) and low-layer (LL) APIs, and board support package (BSP) components. It embeds
several applications that demonstrate various features of the STM32G0C1VET6 device and exercise some peripherals of the
STM32G0C1E-EV Evaluation board. These applications are:
UCPD application
Low-power application
Image viewer application
Audio application
Calendar application
Thermometer application
File browser application
STM32CubeG0 STM32G0C1E-EV demonstration firmware
UM2776
User manual
UM2776 - Rev 1 - November 2020
For further information contact your local STMicroelectronics sales office.
www.st.com
1 STM32CubeG0 main features
STM32CubeG0 gathers, in a single package, all the generic embedded software components, required to develop
an application on STM32G0 microcontrollers. In line with the STM32Cube initiative, this set of components is
highly portable, not only to the STM32G0 Series but also to other STM32 series.
STM32CubeG0 is fully compatible with the STM32CubeMX code generator that allows the generation of
initialization code.
The package includes a driver layer (HAL) proposing a set of abstraction services and a low-level hardware
layer (LL) proposing a set of register-level functions, together with an extensive set of examples running on
STMicroelectronics boards. HAL is available in an open-source BSD license for user convenience.
The STM32CubeG0 MCU Package also contains a set of middleware components with the corresponding
examples. They come in free user-friendly license terms:
FAT file system based on open source FatFS solution
CMSIS-RTOS implementation with FreeRTOS
open source solution
USB PD Devices and Core libraries
USB Host and Device libraries
OpenBootloader (OpenBL)
Several applications and demonstrations implementing all these middleware components are also provided in the
STM32CubeG0 MCU Package.
The block diagram of STM32Cube is shown in Figure 1.
Figure 1. STM32CubeG0 firmware components
Application level demonstrations
Utilities
Middleware level
(1)
HAL and LL APIs
(1) The set of middleware components depends on the product Series.
User
application
Evaluation
boards
Discovery
boards
STM32 Nucleo
boards
Dedicated
boards
USB
PD
FAT
file system
RTOS
Hardware abstraction layer APIs
(HAL)
Board support package
(BSP)
Low-layer APIs
(LL)
Utilities
CMSIS
USB
Device
USB
Host
OpenBootloader
The demonstration firmware for the STM32G0C1E-EV Evaluation board comes on top of the STM32CubeG0
MCU Package, which is based on a modular architecture allowing the reuse of software components separately
in standalone applications. All modules are managed by the STM32Cube demonstration kernel, which allows the
addition of new modules dynamically and access to the storage, graphical, and components common resources.
The demonstration firmware is built on the light kernel and services provided by the BSP as well as components
based on the STM32Cube HAL It makes extensive use of the STM32G0 device capability to offer a wide scope of
usages.
The STM32G0 microcontrollers are based on the Arm
®
32-bit Cortex
®
-M0+ processor.
Note: Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
UM2776
STM32CubeG0 main features
UM2776 - Rev 1
page 2/62