 Hello, and welcome to this presentation of the STM32Cube firmware drivers, including the hardware abstraction layer drivers. While this presentation is specifically about the STM32G0, the STM32Cube comprehensive software tool offers STM32Cube MX graphical software configuration tool used to generate initialization code based on user choices. A complete embedded software package for each STM32 series, such as our STM32Cube G0 with hardware abstraction layer and low-layer APIs, a consistent set of middleware components, RTOS, USB, TCPIP graphics, etc. The embedded software package is a layered approach, low-level hardware abstraction layer or HAL with libraries and examples, middleware level, set of libraries with examples including RTOS, USB, TCPIP, etc. The figure highlights the library's relevant for STM32G0, FAT file system, free RTOS and USB power delivery, application level, demonstrations for use on ST boards. Embedded software is delivered by series, STM32G0, STM32L4, etc., and common modules are covered with fully portable APIs. Embedded software initialization code can be generated through STM32Cube MX, allowing the customer to remain focused on the core application code. The STM32Cube package is a complete embedded software offer that ensures maximum portability between all STM32 series through three software layers, HAL, middleware, and applications. The HAL layer is providing an API for the STM32 embedded peripherals from analog to connectivity. A rich set of examples is available to help developers start using the HAL and the product. The middleware layer contains a full USB power delivery. There is also a CM-SYS RTOS implementation with free RTOS, an open source solution, and a FAT file system based on an open source FATFS solution. Advanced demos putting together all the embedded software components are also provided in the STM32Cube G0 package. There is a complete set of documents including release notes, readme files, or associated user manual. The packages come with free and user-friendly licensed terms. Like all STM32Cube firmware packages, the STM32Cube G0 firmware solution comes in a single zip file having the structure shown in this slide. It's organized in several main folders. The documentation folder contains the STM32Cube G0, getting started document, helping developers to quickly become familiar with the firmware package and its contents. The drivers folder contains all the ST developed drivers. CM-SYS contains the files defining STM32G0XX supported devices, peripheral registers declarations, their associated bit definitions, and address mapping. STM32G0XXHAL driver folder contains the drivers for all the peripherals. The drivers for all supported boards are found in the BSP folder. Middleware contains the supported middleware libraries and stacks provided either by ST or third parties. The projects folder contains templates, examples, applications, and demonstrations for supported boards and with preconfigured projects and specific readme files that provides all necessary information for a quick and easy execution. The utilities folder contains miscellaneous utility drivers that are used by the provided projects. Through its generic architecture, STM32Cube offers a highly portable hardware abstraction layer. It allows developers to implement application functions by building on layers, such as the middleware layer, without requiring any in-depth knowledge of the MCU. This improves the reusability of the library code and guarantees an easy portability to other devices. In addition, thanks to its layered architecture, STM32Cube G0 offers full support of all STM32G0 microcontrollers and the development boards designed by ST. The user has only to define the correct macro in the STM32G0XX.H file and get in touch with BSP drivers and example and application projects specific to each board provided within the firmware package. For each board, a set of examples is provided with preconfigured projects for EW ARM, MDK ARM, and SW4 STM32 tool chains. The right-side figure shows the project structure for Nucleo G071RB board, which is identical for all the other boards. The examples are classified depending on the STM32Cube level they apply to and are named as follows. Examples in Level 0 are called examples and use HAL drivers without any middleware component. Examples in Level 1 are called applications and provide typical use cases of each middleware component. Examples in Level 2 are called demonstration and implement all the HAL, BSP, and middleware components. The template project is provided to quickly build any firmware application for all supported boards. The STM32Cube project list file allows a quick access and search for a given example within the firmware package. All examples have the same structure. INC folder contains all header files. SRC folder contains the sources code. EW ARM, MDK ARM, and SW4 STM32 folders contain the preconfigured project for each tool chain. A README text file describes the example behavior an environment needed to make it work. Note that most of the examples have a .IOC file enabling the configuration of the firmware from CUBE MXTool. Rich documentation is associated to the STM32Cube G0 firmware package. Some documents are generic to all STM32 series and others are specific to the STM32G0 series. The getting started with the STM32Cube G0 firmware package user manual is the document that you need to read first when you start using the STM32Cube firmware package. The STM32Cube G0 firmware can be downloaded from ST website at www.st.com.stm32cubefw.