UM2776 User manual STM32CubeG0 STM32G0C1E-EV demonstration firmware 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 UM2776 - Rev 1 - November 2020 www.st.com For further information contact your local STMicroelectronics sales office.UM2776 STM32CubeG0 main features 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 Evaluation Discovery STM32 Nucleo Dedicated User boards boards boards boards Utilities application Application level demonstrations CMSIS USB USB USB FAT OpenBootloader RTOS Device Host PD file system (1) Middleware level Utilities Board support package Low-layer APIs Hardware abstraction layer APIs (BSP) (LL) (HAL) HAL and LL APIs (1) The set of middleware components depends on the product Series. 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 - Rev 1 page 2/62