STM32F30xx Standard Peripheral Library
1.2 Architecture
The library is built around a modular programming model ensuring the independencies
between the several components building the main application and allowing an easy
porting on a large product range, evaluation boards and even the use of some integrated
firmware components for other application with the minimum changes on the code of the
common parts.
The following figure provides a global view of the STM32F30xx Standard Peripheral Library
usage and interaction with other firmware components.
Figure 1: Library architecture
HAL
HAL is a Hardware Abstraction Layer (HAL) that allows controlling the different
STM32F30/F31xx device registers and features.
ï‚· CMSIS layer
ï€ Core Peripheral Access Layer: contains name definitions, address definitions and
helper functions to access core registers and peripherals. It defines also a device
independent interface for RTOS Kernels that includes debug channel definitions.
ï€ STM32F30xx Device Peripheral Access Layer: provides definitions for all the
peripheral register's definitions, bits definitions and memory mapping for
STM32F30xx and STM32F31xx devices.
ï‚· STM32F30xx standard peripheral driver that provides drivers and header files for all
the peripherals. It uses CMSIS layer to access STM32F30xx and STM32F31xx
registers.
BSP
BSP is a board specific package (BSP) that implements an abstraction layer to interact with
the Human Interface resources; buttons, LEDs, LCD and COM ports (USARTs) available
on STMicroelectronics evaluation boards. A common API is provided to manage these
different resources, and can be easily tailored to support any other development board, by
just adapting the initialization routine.