5 HAL System Driver
5.1 HAL Firmware driver API description
5.1.1 How to use this driver
The common HAL driver contains a set of generic and common APIs that can be used by
the PPP peripheral drivers and the user to start using the HAL.
The HAL contains two APIs' categories:
Common HAL APIs
Services HAL APIs
5.1.2 Initialization and de-initialization functions
This section provides functions allowing to:
Initializes the Flash interface the NVIC allocation and initial clock configuration. It
initializes the systick also when timeout is needed and the backup domain when
enabled.
de-Initializes common part of the HAL
Configure The time base source to have 1ms time base with a dedicated Tick interrupt
priority.
Systick timer is used by default as source of time base, but user can eventually
implement his proper time base source (a general purpose timer for example or
other time source), keeping in mind that Time base duration should be kept 1ms
since PPP_TIMEOUT_VALUEs are defined and handled in milliseconds basis.
Time base configuration function (HAL_InitTick ()) is called automatically at the
beginning of the program after reset by HAL_Init() or at any time when clock is
configured, by HAL_RCC_ClockConfig().
Source of time base is configured to generate interrupts at regular time intervals.
Care must be taken if HAL_Delay() is called from a peripheral ISR process, the
Tick interrupt line must have higher priority (numerically lower) than the
peripheral interrupt. Otherwise the caller ISR process will be blocked.
functions affecting time base configurations are declared as __weak to make
override possible in case of other implementations in user file.
This section contains the following APIs:
HAL_Init()
HAL_DeInit()
HAL_MspInit()
HAL_MspDeInit()
HAL_InitTick()
5.1.3 HAL Control functions
This section provides functions allowing to:
Provide a tick value in millisecond
Provide a blocking delay in millisecond
Suspend the time base source interrupt
Resume the time base source interrupt
Get the HAL API driver version
Get the device identifier