41#define __CHIBIOS_HAL__
46#define CH_HAL_STABLE 1
55#define CH_HAL_VERSION "9.0.0"
81#define HAL_SUCCESS false
86#define HAL_FAILED true
93#define HAL_RET_SUCCESS MSG_OK
98#define HAL_RET_CONFIG_ERROR (msg_t)-16
104#define HAL_RET_NO_RESOURCE (msg_t)-17
110#define HAL_RET_HW_BUSY (msg_t)-18
115#define HAL_RET_HW_FAILURE (msg_t)-19
119#define HAL_RET_UNKNOWN_CTL (msg_t)-20
123#define HAL_RET_IS_INVALID (msg_t)-21
135#if !defined(_CHIBIOS_HAL_CONF_)
136#error "invalid configuration file"
139#if !defined(_CHIBIOS_HAL_CONF_VER_9_0_)
140#error "obsolete or unknown configuration file"
144#if !defined(HAL_USE_PAL)
145#define HAL_USE_PAL FALSE
148#if !defined(HAL_USE_ADC)
149#define HAL_USE_ADC FALSE
152#if !defined(HAL_USE_CAN)
153#define HAL_USE_CAN FALSE
156#if !defined(HAL_USE_CRY)
157#define HAL_USE_CRY FALSE
160#if !defined(HAL_USE_DAC)
161#define HAL_USE_DAC FALSE
164#if !defined(HAL_USE_EFL)
165#define HAL_USE_EFL FALSE
168#if !defined(HAL_USE_GPT)
169#define HAL_USE_GPT FALSE
172#if !defined(HAL_USE_I2C)
173#define HAL_USE_I2C FALSE
176#if !defined(HAL_USE_I2S)
177#define HAL_USE_I2S FALSE
180#if !defined(HAL_USE_ICU)
181#define HAL_USE_ICU FALSE
184#if !defined(HAL_USE_MAC)
185#define HAL_USE_MAC FALSE
188#if !defined(HAL_USE_PWM)
189#define HAL_USE_PWM FALSE
192#if !defined(HAL_USE_RTC)
193#define HAL_USE_RTC FALSE
196#if !defined(HAL_USE_SERIAL)
197#define HAL_USE_SERIAL FALSE
200#if !defined(HAL_USE_SDC)
201#define HAL_USE_SDC FALSE
204#if !defined(HAL_USE_SIO)
205#define HAL_USE_SIO FALSE
208#if !defined(HAL_USE_SPI)
209#define HAL_USE_SPI FALSE
212#if !defined(HAL_USE_TRNG)
213#define HAL_USE_TRNG FALSE
216#if !defined(HAL_USE_UART)
217#define HAL_USE_UART FALSE
220#if !defined(HAL_USE_USB)
221#define HAL_USE_USB FALSE
224#if !defined(HAL_USE_WDG)
225#define HAL_USE_WDG FALSE
228#if !defined(HAL_USE_WSPI)
229#define HAL_USE_WSPI FALSE
285#if defined(HAL_LLD_USE_CLOCK_MANAGEMENT) || defined(__DOXYGEN__)
349#if OSAL_ST_MODE != OSAL_ST_MODE_NONE
358#if defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__)
359#if (HAL_USE_COMMUNITY == TRUE) || defined(__DOXYGEN__)
360#include "hal_community.h"
Compiler portability layer.
unsigned halclkpt_t
Type of a clock point identifier.
static bool halClockSwitchMode(const halclkcfg_t *ccp)
Switches to a different clock configuration.
halfreq_t hal_lld_get_clock_point(halclkpt_t clkpt)
Returns the frequency of a clock point in Hz.
static halfreq_t halClockGetPointX(halclkpt_t clkpt)
Returns the frequency of a clock point in Hz.
uint32_t halfreq_t
Type of a clock point frequency in Hz.
bool hal_lld_clock_switch_mode(const halclkcfg_t *ccp)
Switches to a different clock configuration.
void halInit(void)
HAL initialization.
ADC Driver macros and structures.
Buffered Serial Driver code.
I/O Buffers macros and structures.
CAN Driver macros and structures.
Cryptographic Driver macros and structures.
DAC Driver macros and structures.
Embedded Flash Driver macros and structures.
Generic flash driver class header.
GPT Driver macros and structures.
I2C Driver macros and structures.
I2S Driver macros and structures.
ICU Driver macros and structures.
I/O block devices access.
PLATFORM HAL subsystem low level driver header.
MAC Driver macros and structures.
MMC over SPI driver header.
MMC/SD cards common header.
I/O Ports Abstraction Layer macros, types and structures.
Generic persistent storage class header.
PWM Driver macros and structures.
I/O Queues macros and structures.
RTC Driver macros and structures.
SDC Driver macros and structures.
Serial Driver macros and structures.
Serial over USB Driver macros and structures.
SIO Driver macros and structures.
SPI Driver selector macros and structures.
ST Driver macros and structures.
TRNG Driver macros and structures.
UART Driver macros and structures.
USB Driver macros and structures.
WDG Driver macros and structures.
WSPI Driver macros and structures.
HAL configuration header.
Type of a clock configuration structure.