Software overview AN4594
8/16 DocID026958 Rev 1
3 Software overview
3.1 Software architecture
This chapter describes the following software layers which are used by the application
software to access and use the sensor expansion board:
• STM32Cube HAL layer
• board support package (BSP) layer
The next figure outlines the layering of the software architecture that comprises the STM32
Nucleo and the BlueNRG expansion board:
Figure 4. Software architecture
3.2 STM32Cube HAL
The STM32Cube HAL is the hardware abstraction layer for the STM32 microcontroller
which ensures maximum portability across STM32 platforms.
The HAL driver layer provides a simple, generic, multi-instance set of APIs (application
programming interfaces) to interact with the upper layers (application, libraries and stacks).
It is composed of generic and extension APIs and is based on generic architecture which
allows the layers built upon it, such as the middleware layer, to implement their functions
without dependence on the specific hardware configuration for a given Microcontroller Unit
(MCU). This structure improves the library code reusability and facilitates portability to other
devices.
For detailed information regarding the STM32Cube HAL drivers API, please refer to the
document “Description of STM32F4xx HAL drivers”, User manual UM1749, available from
st.com at http://www.st.com/st-web-
ui/static/active/en/resource/technical/document/user_manual/DM00113898.pdf.