mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Embed: (wiki syntax)

« Back to documentation index

Hal

Data Structures

struct  buffer_s
 Generic buffer structure. More...
struct  CAN_Message
 Holder for single CAN message. More...
struct  _ARM_DRIVER_VERSION
 Driver Version. More...
struct  _ARM_STORAGE_BLOCK_ATTRIBUTES
 Attributes of the storage range within a storage block. More...
struct  _ARM_STORAGE_BLOCK
 A storage block is a range of memory with uniform attributes. More...
struct  _ARM_STORAGE_SECURITY_FEATURES
 Device Data Security Protection Features. More...
struct  _ARM_STORAGE_INFO
 Storage information. More...
struct  _ARM_STORAGE_STATUS
 Operating status of the storage controller. More...
struct  _ARM_STORAGE_CAPABILITIES
 Storage Driver API Capabilities. More...
struct  _ARM_DRIVER_STORAGE
 This is the set of operations constituting the Storage driver. More...
struct  i2c_t
 Asynch I2C HAL structure. More...
struct  serial_t
 Asynch serial HAL structure. More...
struct  spi_t
 Asynch SPI HAL structure. More...
struct  ticker_event_s
 Ticker's event structure. More...
struct  ticker_info_t
 Information about the ticker implementation. More...
struct  ticker_interface_t
 Ticker's interface structure - required API for a ticker. More...
struct  ticker_event_queue_t
 Ticker's event queue structure. More...
struct  ticker_data_t
 Ticker's data structure. More...

Modules

 Analogin hal functions
 Analogout hal functions
 Hardware CRC
 

The Hardware CRC HAL API provides a low-level interface to the Hardware CRC module of a target platform.


 Critical Section HAL functions
 Flash HAL API
 GPIO HAL functions
 GPIO IRQ HAL functions
 I2C Events Macros
 I2C Configuration Functions
 Synchronous I2C Hardware Abstraction Layer for slave
 Asynchronous I2C Hardware Abstraction Layer
 Instrumented Trace Macrocell HAL API
 Low Power Ticker
 

Low level interface to the low power ticker of a target.


 MPU hal
 

The MPU hal provides a simple MPU API to enhance device security by preventing execution from ram.


 Port HAL functions
 Pwmout hal functions
 QSPI HAL
 RTC hal
 

The RTC hal provides a low level interface to the Real Time Counter (RTC) of a target.


 Serial TX Events Macros
 Serial RX Events Macros
 Serial Configuration Functions
 Asynchronous Serial Hardware Abstraction Layer
 sleep hal requirements
 

Low level interface to the sleep mode of a target.


 SPI Configuration Functions
 Synchronous SPI Hardware Abstraction Layer
 Asynchronous SPI Hardware Abstraction Layer
 SPM HAL API
 

The HAL functions for PSA SPM.


 Ticker HAL functions
 TRNG hal functions
 Microsecond Ticker
 

Low level interface to the microsecond ticker of a target.


Typedefs

typedef struct analogin_s analogin_t
 Analogin hal structure.
typedef struct dac_s dac_t
 Analogout hal structure.
typedef struct buffer_s buffer_t
 Generic buffer structure.
typedef enum crc_polynomial crc_polynomial_t
 CRC Polynomial value.
typedef struct _ARM_DRIVER_VERSION ARM_DRIVER_VERSION
 Driver Version.
typedef enum _ARM_POWER_STATE ARM_POWER_STATE
 General power states.
typedef struct
_ARM_STORAGE_BLOCK_ATTRIBUTES 
ARM_STORAGE_BLOCK_ATTRIBUTES
 Attributes of the storage range within a storage block.
typedef struct _ARM_STORAGE_BLOCK ARM_STORAGE_BLOCK
 A storage block is a range of memory with uniform attributes.
typedef struct
_ARM_STORAGE_SECURITY_FEATURES 
ARM_STORAGE_SECURITY_FEATURES
 Device Data Security Protection Features.
typedef struct _ARM_STORAGE_INFO ARM_STORAGE_INFO
 Storage information.
typedef struct _ARM_STORAGE_STATUS ARM_STORAGE_STATUS
 Operating status of the storage controller.
typedef struct
_ARM_STORAGE_CAPABILITIES 
ARM_STORAGE_CAPABILITIES
 Storage Driver API Capabilities.
typedef enum _ARM_STORAGE_OPERATION ARM_STORAGE_OPERATION
 Command opcodes for Storage.
typedef void(* ARM_Storage_Callback_t )(int32_t status, ARM_STORAGE_OPERATION operation)
 Declaration of the callback-type for command completion.
typedef struct _ARM_DRIVER_STORAGE ARM_DRIVER_STORAGE
 This is the set of operations constituting the Storage driver.
typedef struct gpio_irq_s gpio_irq_t
 GPIO IRQ HAL structure.
typedef struct i2c_s i2c_t
 Non-asynch I2C HAL structure.
typedef struct port_s port_t
 Port HAL structure.
typedef struct pwmout_s pwmout_t
 Pwmout hal structure.
typedef struct serial_s serial_t
 Non-asynch serial HAL structure.
typedef struct spi_s spi_t
 Non-asynch SPI HAL structure.
typedef uint32_t timestamp_t
 Legacy format representing a timestamp in us.
typedef uint64_t us_timestamp_t
 A us timestamp stored in a 64 bit integer.
typedef struct ticker_event_s ticker_event_t
 Ticker's event structure.
typedef struct trng_s trng_t
 TRNG HAL structure.
typedef struct analogin_s analogin_t
 Analogin hal structure.
typedef struct dac_s dac_t
 Analogout hal structure.
typedef struct buffer_s buffer_t
 Generic buffer structure.
typedef enum crc_polynomial crc_polynomial_t
 CRC Polynomial value.
typedef struct gpio_irq_s gpio_irq_t
 GPIO IRQ HAL structure.
typedef struct i2c_s i2c_t
 Non-asynch I2C HAL structure.
typedef struct port_s port_t
 Port HAL structure.
typedef struct pwmout_s pwmout_t
 Pwmout hal structure.
typedef struct serial_s serial_t
 Non-asynch serial HAL structure.
typedef struct spi_s spi_t
 Non-asynch SPI HAL structure.
typedef struct _ARM_DRIVER_VERSION ARM_DRIVER_VERSION
 Driver Version.
typedef enum _ARM_POWER_STATE ARM_POWER_STATE
 General power states.
typedef struct
_ARM_STORAGE_BLOCK_ATTRIBUTES 
ARM_STORAGE_BLOCK_ATTRIBUTES
 Attributes of the storage range within a storage block.
typedef struct _ARM_STORAGE_BLOCK ARM_STORAGE_BLOCK
 A storage block is a range of memory with uniform attributes.
typedef struct
_ARM_STORAGE_SECURITY_FEATURES 
ARM_STORAGE_SECURITY_FEATURES
 Device Data Security Protection Features.
typedef struct _ARM_STORAGE_INFO ARM_STORAGE_INFO
 Storage information.
typedef struct _ARM_STORAGE_STATUS ARM_STORAGE_STATUS
 Operating status of the storage controller.
typedef struct
_ARM_STORAGE_CAPABILITIES 
ARM_STORAGE_CAPABILITIES
 Storage Driver API Capabilities.
typedef enum _ARM_STORAGE_OPERATION ARM_STORAGE_OPERATION
 Command opcodes for Storage.
typedef void(* ARM_Storage_Callback_t )(int32_t status, ARM_STORAGE_OPERATION operation)
 Declaration of the callback-type for command completion.
typedef struct _ARM_DRIVER_STORAGE ARM_DRIVER_STORAGE
 This is the set of operations constituting the Storage driver.
typedef uint32_t timestamp_t
 Legacy format representing a timestamp in us.
typedef uint64_t us_timestamp_t
 A us timestamp stored in a 64 bit integer.
typedef struct ticker_event_s ticker_event_t
 Ticker's event structure.
typedef struct trng_s trng_t
 TRNG HAL structure.

Enumerations

enum  CANFormat
 

Values that represent CAN Format.

More...
enum  CANType
 

Values that represent CAN Type.

More...
enum  crc_polynomial
 

CRC Polynomial value.

More...
enum  _ARM_POWER_STATE {
  ARM_POWER_OFF, ARM_POWER_LOW, ARM_POWER_FULL, ARM_POWER_OFF,
  ARM_POWER_LOW, ARM_POWER_FULL
}
 

General power states.

More...
enum  _ARM_STORAGE_OPERATION
 

Command opcodes for Storage.

More...
enum  gpio_irq_event
 

GPIO IRQ events.

More...
enum  crc_polynomial
 

CRC Polynomial value.

More...
enum  gpio_irq_event
 

GPIO IRQ events.

More...
enum  _ARM_POWER_STATE {
  ARM_POWER_OFF, ARM_POWER_LOW, ARM_POWER_FULL, ARM_POWER_OFF,
  ARM_POWER_LOW, ARM_POWER_FULL
}
 

General power states.

More...
enum  _ARM_STORAGE_OPERATION
 

Command opcodes for Storage.

More...

Functions

void lp_ticker_wrapper_irq_handler (ticker_irq_handler_type handler)
 Interrupt handler for the wrapped lp ticker.
const ticker_data_tget_lp_ticker_wrapper_data (const ticker_data_t *data)
 Get wrapped lp ticker data.
void lp_ticker_wrapper_suspend (void)
 Suspend the wrapper layer code.
void lp_ticker_wrapper_resume (void)
 Resume the wrapper layer code.

Typedef Documentation

typedef struct analogin_s analogin_t

Analogin hal structure.

analogin_s is declared in the target's hal

Definition at line 33 of file cmsis/BUILD/mbed/hal/analogin_api.h.

typedef struct analogin_s analogin_t

Analogin hal structure.

analogin_s is declared in the target's hal

Definition at line 33 of file hal/analogin_api.h.

This is the set of operations constituting the Storage driver.

Their implementation is platform-specific, and needs to be supplied by the porting effort.

Some APIs within `ARM_DRIVER_STORAGE` will always operate synchronously: GetVersion, GetCapabilities, GetStatus, GetInfo, ResolveAddress, GetNextBlock, and GetBlock. This means that control returns to the caller with a relevant status code only after the completion of the operation (or the discovery of a failure condition).

The remainder of the APIs: Initialize, Uninitialize, PowerControl, ReadData, ProgramData, Erase, EraseAll, can function asynchronously if the underlying controller supports it--i.e. if ARM_STORAGE_CAPABILITIES::asynchronous_ops is set. In the case of asynchronous operation, the invocation returns early (with ARM_DRIVER_OK) and results in a completion callback later. If ARM_STORAGE_CAPABILITIES::asynchronous_ops is not set, then all such APIs execute synchronously, and control returns to the caller with a status code only after the completion of the operation (or the discovery of a failure condition).

If ARM_STORAGE_CAPABILITIES::asynchronous_ops is set, a storage driver may still choose to execute asynchronous operations in a synchronous manner. If so, the driver returns a positive value to indicate successful synchronous completion (or an error code in case of failure) and no further invocation of completion callback should be expected. The expected return value for synchronous completion of such asynchronous operations varies depending on the operation. For operations involving data access, it often equals the amount of data transferred or affected. For non data-transfer operations, such as EraseAll or Initialize, it is usually 1.

Here's a code snippet to suggest how asynchronous APIs might be used by callers to handle both synchronous and asynchronous execution by the underlying storage driver:

     ASSERT(ARM_DRIVER_OK == 0); // this is a precondition; it doesn't need to be put in code
     int32_t returnValue = drv->asynchronousAPI(...);
     if (returnValue < ARM_DRIVER_OK) {
         // handle error.
     } else if (returnValue == ARM_DRIVER_OK) {
         ASSERT(drv->GetCapabilities().asynchronous_ops == 1);
         // handle early return from asynchronous execution; remainder of the work is done in the callback handler.
     } else {
         ASSERT(returnValue == EXPECTED_RETURN_VALUE_FOR_SYNCHRONOUS_COMPLETION);
         // handle synchronous completion.
     }

This is the set of operations constituting the Storage driver.

Their implementation is platform-specific, and needs to be supplied by the porting effort.

Some APIs within `ARM_DRIVER_STORAGE` will always operate synchronously: GetVersion, GetCapabilities, GetStatus, GetInfo, ResolveAddress, GetNextBlock, and GetBlock. This means that control returns to the caller with a relevant status code only after the completion of the operation (or the discovery of a failure condition).

The remainder of the APIs: Initialize, Uninitialize, PowerControl, ReadData, ProgramData, Erase, EraseAll, can function asynchronously if the underlying controller supports it--i.e. if ARM_STORAGE_CAPABILITIES::asynchronous_ops is set. In the case of asynchronous operation, the invocation returns early (with ARM_DRIVER_OK) and results in a completion callback later. If ARM_STORAGE_CAPABILITIES::asynchronous_ops is not set, then all such APIs execute synchronously, and control returns to the caller with a status code only after the completion of the operation (or the discovery of a failure condition).

If ARM_STORAGE_CAPABILITIES::asynchronous_ops is set, a storage driver may still choose to execute asynchronous operations in a synchronous manner. If so, the driver returns a positive value to indicate successful synchronous completion (or an error code in case of failure) and no further invocation of completion callback should be expected. The expected return value for synchronous completion of such asynchronous operations varies depending on the operation. For operations involving data access, it often equals the amount of data transferred or affected. For non data-transfer operations, such as EraseAll or Initialize, it is usually 1.

Here's a code snippet to suggest how asynchronous APIs might be used by callers to handle both synchronous and asynchronous execution by the underlying storage driver:

     ASSERT(ARM_DRIVER_OK == 0); // this is a precondition; it doesn't need to be put in code
     int32_t returnValue = drv->asynchronousAPI(...);
     if (returnValue < ARM_DRIVER_OK) {
         // handle error.
     } else if (returnValue == ARM_DRIVER_OK) {
         ASSERT(drv->GetCapabilities().asynchronous_ops == 1);
         // handle early return from asynchronous execution; remainder of the work is done in the callback handler.
     } else {
         ASSERT(returnValue == EXPECTED_RETURN_VALUE_FOR_SYNCHRONOUS_COMPLETION);
         // handle synchronous completion.
     }

Driver Version.

Driver Version.

General power states.

General power states.

A storage block is a range of memory with uniform attributes.

Storage blocks combine to make up the address map of a storage controller.

A storage block is a range of memory with uniform attributes.

Storage blocks combine to make up the address map of a storage controller.

Attributes of the storage range within a storage block.

Attributes of the storage range within a storage block.

typedef void(* ARM_Storage_Callback_t)(int32_t status, ARM_STORAGE_OPERATION operation)

Declaration of the callback-type for command completion.

Parameters:
[in]statusA code to indicate the status of the completed operation. For data transfer operations, the status field is overloaded in case of success to return the count of items successfully transferred; this can be done safely because error codes are negative values.
[in]operationThe command op-code. This value isn't essential for the callback in the presence of the command instance-id, but it is expected that this information could be a quick and useful filter.

Definition at line 242 of file hal/storage_abstraction/Driver_Storage.h.

typedef void(* ARM_Storage_Callback_t)(int32_t status, ARM_STORAGE_OPERATION operation)

Declaration of the callback-type for command completion.

Parameters:
[in]statusA code to indicate the status of the completed operation. For data transfer operations, the status field is overloaded in case of success to return the count of items successfully transferred; this can be done safely because error codes are negative values.
[in]operationThe command op-code. This value isn't essential for the callback in the presence of the command instance-id, but it is expected that this information could be a quick and useful filter.

Definition at line 242 of file cmsis/BUILD/mbed/hal/Driver_Storage.h.

Storage Driver API Capabilities.

This data structure is designed to fit within a single word so that it can be fetched cheaply using a call to driver->GetCapabilities().

Storage Driver API Capabilities.

This data structure is designed to fit within a single word so that it can be fetched cheaply using a call to driver->GetCapabilities().

Storage information.

This contains device-metadata. It is the return value from calling GetInfo() on the storage driver.

These fields serve a different purpose than the ones contained in ARM_STORAGE_CAPABILITIES, which is another structure containing device-level metadata. ARM_STORAGE_CAPABILITIES describes the API capabilities, whereas ARM_STORAGE_INFO describes the device. Furthermore ARM_STORAGE_CAPABILITIES fits within a single word, and is designed to be passed around by value; ARM_STORAGE_INFO, on the other hand, contains metadata which doesn't fit into a single word and requires the use of pointers to be moved around.

Storage information.

This contains device-metadata. It is the return value from calling GetInfo() on the storage driver.

These fields serve a different purpose than the ones contained in ARM_STORAGE_CAPABILITIES, which is another structure containing device-level metadata. ARM_STORAGE_CAPABILITIES describes the API capabilities, whereas ARM_STORAGE_INFO describes the device. Furthermore ARM_STORAGE_CAPABILITIES fits within a single word, and is designed to be passed around by value; ARM_STORAGE_INFO, on the other hand, contains metadata which doesn't fit into a single word and requires the use of pointers to be moved around.

Command opcodes for Storage.

Completion callbacks use these codes to refer to completing commands. Refer to ARM_Storage_Callback_t.

Command opcodes for Storage.

Completion callbacks use these codes to refer to completing commands. Refer to ARM_Storage_Callback_t.

Device Data Security Protection Features.

Applicable mostly to EXTERNAL_NVM.

Device Data Security Protection Features.

Applicable mostly to EXTERNAL_NVM.

Operating status of the storage controller.

Operating status of the storage controller.

typedef struct buffer_s buffer_t

Generic buffer structure.

typedef struct buffer_s buffer_t

Generic buffer structure.

CRC Polynomial value.

Different polynomial values supported

CRC Polynomial value.

Different polynomial values supported

typedef struct dac_s dac_t

Analogout hal structure.

dac_s is declared in the target's hal

Definition at line 33 of file cmsis/BUILD/mbed/hal/analogout_api.h.

typedef struct dac_s dac_t

Analogout hal structure.

dac_s is declared in the target's hal

Definition at line 33 of file hal/analogout_api.h.

typedef struct gpio_irq_s gpio_irq_t

GPIO IRQ HAL structure.

gpio_irq_s is declared in the target's HAL

Definition at line 41 of file cmsis/BUILD/mbed/hal/gpio_irq_api.h.

typedef struct gpio_irq_s gpio_irq_t

GPIO IRQ HAL structure.

gpio_irq_s is declared in the target's HAL

Definition at line 41 of file hal/gpio_irq_api.h.

typedef struct i2c_s i2c_t

Non-asynch I2C HAL structure.

Definition at line 57 of file hal/i2c_api.h.

typedef struct i2c_s i2c_t

Non-asynch I2C HAL structure.

Definition at line 57 of file cmsis/BUILD/mbed/hal/i2c_api.h.

typedef struct port_s port_t

Port HAL structure.

port_s is declared in the target's HAL

Definition at line 33 of file cmsis/BUILD/mbed/hal/port_api.h.

typedef struct port_s port_t

Port HAL structure.

port_s is declared in the target's HAL

Definition at line 33 of file hal/port_api.h.

typedef struct pwmout_s pwmout_t

Pwmout hal structure.

pwmout_s is declared in the target's hal

Definition at line 33 of file hal/pwmout_api.h.

typedef struct pwmout_s pwmout_t

Pwmout hal structure.

pwmout_s is declared in the target's hal

Definition at line 33 of file cmsis/BUILD/mbed/hal/pwmout_api.h.

typedef struct serial_s serial_t

Non-asynch serial HAL structure.

Definition at line 100 of file hal/serial_api.h.

typedef struct serial_s serial_t

Non-asynch serial HAL structure.

Definition at line 100 of file cmsis/BUILD/mbed/hal/serial_api.h.

typedef struct spi_s spi_t

Non-asynch SPI HAL structure.

Definition at line 51 of file cmsis/BUILD/mbed/hal/spi_api.h.

typedef struct spi_s spi_t

Non-asynch SPI HAL structure.

Definition at line 51 of file hal/spi_api.h.

Ticker's event structure.

Ticker's event structure.

typedef uint32_t timestamp_t

Legacy format representing a timestamp in us.

Given it is modeled as a 32 bit integer, this type can represent timestamp up to 4294 seconds (71 minutes). Prefer using us_timestamp_t which store timestamp as 64 bits integer.

Definition at line 33 of file cmsis/BUILD/mbed/hal/ticker_api.h.

typedef uint32_t timestamp_t

Legacy format representing a timestamp in us.

Given it is modeled as a 32 bit integer, this type can represent timestamp up to 4294 seconds (71 minutes). Prefer using us_timestamp_t which store timestamp as 64 bits integer.

Definition at line 33 of file hal/ticker_api.h.

typedef struct trng_s trng_t

TRNG HAL structure.

trng_s is declared in the target's HAL

Definition at line 30 of file cmsis/BUILD/mbed/hal/trng_api.h.

typedef struct trng_s trng_t

TRNG HAL structure.

trng_s is declared in the target's HAL

Definition at line 30 of file hal/trng_api.h.

typedef uint64_t us_timestamp_t

A us timestamp stored in a 64 bit integer.

Can store timestamp up to 584810 years.

Definition at line 39 of file cmsis/BUILD/mbed/hal/ticker_api.h.

typedef uint64_t us_timestamp_t

A us timestamp stored in a 64 bit integer.

Can store timestamp up to 584810 years.

Definition at line 39 of file hal/ticker_api.h.


Enumeration Type Documentation

General power states.

Enumerator:
ARM_POWER_OFF 

Power off: no operation possible.

ARM_POWER_LOW 

Low Power mode: retain state, detect and signal wake-up events.

ARM_POWER_FULL 

Power on: full operation at maximum performance.

ARM_POWER_OFF 

Power off: no operation possible.

ARM_POWER_LOW 

Low Power mode: retain state, detect and signal wake-up events.

ARM_POWER_FULL 

Power on: full operation at maximum performance.

Definition at line 52 of file cmsis/BUILD/mbed/hal/Driver_Common.h.

General power states.

Enumerator:
ARM_POWER_OFF 

Power off: no operation possible.

ARM_POWER_LOW 

Low Power mode: retain state, detect and signal wake-up events.

ARM_POWER_FULL 

Power on: full operation at maximum performance.

ARM_POWER_OFF 

Power off: no operation possible.

ARM_POWER_LOW 

Low Power mode: retain state, detect and signal wake-up events.

ARM_POWER_FULL 

Power on: full operation at maximum performance.

Definition at line 52 of file hal/storage_abstraction/Driver_Common.h.

Command opcodes for Storage.

Completion callbacks use these codes to refer to completing commands. Refer to ARM_Storage_Callback_t.

Definition at line 211 of file cmsis/BUILD/mbed/hal/Driver_Storage.h.

Command opcodes for Storage.

Completion callbacks use these codes to refer to completing commands. Refer to ARM_Storage_Callback_t.

Definition at line 211 of file hal/storage_abstraction/Driver_Storage.h.

enum CANFormat

Values that represent CAN Format.

Definition at line 35 of file cmsis/BUILD/mbed/hal/can_helper.h.

enum CANType

Values that represent CAN Type.

Definition at line 48 of file cmsis/BUILD/mbed/hal/can_helper.h.

CRC Polynomial value.

Different polynomial values supported

Definition at line 30 of file hal/crc_api.h.

CRC Polynomial value.

Different polynomial values supported

Definition at line 30 of file cmsis/BUILD/mbed/hal/crc_api.h.

GPIO IRQ events.

Definition at line 33 of file hal/gpio_irq_api.h.

GPIO IRQ events.

Definition at line 33 of file cmsis/BUILD/mbed/hal/gpio_irq_api.h.


Function Documentation

const ticker_data_t * get_lp_ticker_wrapper_data ( const ticker_data_t data )

Get wrapped lp ticker data.

Parameters:
datahardware low power ticker object
Returns:
wrapped low power ticker object

Definition at line 94 of file mbed_lp_ticker_wrapper.cpp.

void lp_ticker_wrapper_irq_handler ( ticker_irq_handler_type  handler )

Interrupt handler for the wrapped lp ticker.

Parameters:
handlerthe function which would normally be called by the lp ticker handler when it is not wrapped

Definition at line 80 of file mbed_lp_ticker_wrapper.cpp.

void lp_ticker_wrapper_resume ( void   )

Resume the wrapper layer code.

Resume operation of the wrapper layer. Interrupts will be filtered as normal and the microsecond timer will be used for interrupts scheduled too quickly back-to-back.

Definition at line 118 of file mbed_lp_ticker_wrapper.cpp.

void lp_ticker_wrapper_suspend ( void   )

Suspend the wrapper layer code.

Pass through all interrupts to the low power ticker and stop using the microsecond ticker.

Warning:
: Make sure to suspend the LP ticker first (call ticker_suspend()), otherwise the behavior is undefined.

Definition at line 108 of file mbed_lp_ticker_wrapper.cpp.