Legacy HAL#
The Legacy HAL is an implementation of the Hardware Abstraction Layer (HAL) that was used by the Zigbee EmberZNet and Flex Connect stacks before their transition to the new component-based architecture (Zigbee version 7.0 and Connect version 3.0).
This component is not a complete duplicate of the old HAL. It only contains the most commonly used pieces to enable our networking stacks and sample applications and to support porting customer applications to the new component-based implementation. Currently, Zigbee and Connect sample applications are dependent on this component. Eventually, they will be ported to use new HAL components directly so that this component can become optional or be deprecated. Note
This component is only designed to be used with Zigbee and Connect stack applications. Do not use with any other stacks as it will likely introduce problems.
Modules#
Functions#
This function will get 16u ms tick data.
This function will get 32u ms tick data.
This function will get 64u ms tick data.
This function will get 16u quater second tick data.
This function will start system timer.
This function will delay an amount of time in us.
This function will delay an amount of time in ms.
This function will set state to idle for an amount of time in ms.
This function is halStackSymbolDelayAIsr.
This function is halStackRadioPowerUpBoard.
This function is halStackRadioPowerUpBoard.
This function is halStackProcessBootCount.
Call this function to get information about the external EEPROM and its capabilities.
Macros#
Definition of an EEPROM page size, in bytes.
Define the location of the first page in EEPROM.
Define the location of the image start in EEPROM as a function of the EEPROM_FIRST_PAGE and EEPROM_PAGE_SIZE.
Define EEPROM success status.
Define EEPROM error status.
Define EEPROM error mask.
Define EEPROM page boundary error.
Define EEPROM page size error.
Define EEPROM write data error.
Define EEPROM image too large error.
Define EEPROM invalid address error.
Define EEPROM chip initialization error.
Define EEPROM erase required error.
Define EEPROM error for no erase support.
The current version of the HalEepromInformationType data structure.
eeprom info major version
eeprom info major version mask
eeprom info min version with word size support
Eeprom capabilites mask that indicates the erase API is supported.
Eeprom capabilites mask that indicates page erasing is required before new data can be written to a device.
Eeprom capabilites mask that indicates that the write routine is blocking on this device.
Eeprom capabilites mask that indicates that the erase routine is blocking on this device.
Eeprom capabilities mask that indicateds that the partEraseTime field of HalEepromInformationType is in seconds instead of the usual millisecondss.
Function Documentation#
halCommonGetInt16uMillisecondTick#
uint16_t halCommonGetInt16uMillisecondTick (void )
This function will get 16u ms tick data.
N/A |
Returns
77
of file platform/service/legacy_hal/inc/hal.h
halCommonGetInt32uMillisecondTick#
uint32_t halCommonGetInt32uMillisecondTick (void )
This function will get 32u ms tick data.
N/A |
Returns
84
of file platform/service/legacy_hal/inc/hal.h
halCommonGetInt64uMillisecondTick#
uint64_t halCommonGetInt64uMillisecondTick (void )
This function will get 64u ms tick data.
N/A |
Returns
91
of file platform/service/legacy_hal/inc/hal.h
halCommonGetInt16uQuarterSecondTick#
uint16_t halCommonGetInt16uQuarterSecondTick (void )
This function will get 16u quater second tick data.
N/A |
Returns
98
of file platform/service/legacy_hal/inc/hal.h
halInternalStartSystemTimer#
uint16_t halInternalStartSystemTimer (void )
This function will start system timer.
N/A |
Returns
105
of file platform/service/legacy_hal/inc/hal.h
halCommonDelayMicroseconds#
void halCommonDelayMicroseconds (uint16_t us)
This function will delay an amount of time in us.
N/A | us | second in us |
112
of file platform/service/legacy_hal/inc/hal.h
halCommonDelayMilliseconds#
void halCommonDelayMilliseconds (uint16_t ms)
This function will delay an amount of time in ms.
N/A | ms | second in ms |
119
of file platform/service/legacy_hal/inc/hal.h
halCommonIdleForMilliseconds#
sl_status_t halCommonIdleForMilliseconds (uint32_t * duration)
This function will set state to idle for an amount of time in ms.
N/A | duration | second in us |
Returns
sl_status_t
128
of file platform/service/legacy_hal/inc/hal.h
halStackSymbolDelayAIsr#
void halStackSymbolDelayAIsr (void )
This function is halStackSymbolDelayAIsr.
N/A |
133
of file platform/service/legacy_hal/inc/hal.h
halStackRadioPowerUpBoard#
void halStackRadioPowerUpBoard (void )
This function is halStackRadioPowerUpBoard.
N/A |
138
of file platform/service/legacy_hal/inc/hal.h
halStackRadioPowerDownBoard#
void halStackRadioPowerDownBoard (void )
This function is halStackRadioPowerUpBoard.
N/A |
143
of file platform/service/legacy_hal/inc/hal.h
halStackProcessBootCount#
void halStackProcessBootCount (void )
This function is halStackProcessBootCount.
N/A |
148
of file platform/service/legacy_hal/inc/hal.h
halEepromInfo#
const HalEepromInformationType * halEepromInfo (void )
Call this function to get information about the external EEPROM and its capabilities.
N/A |
The format of this call must not be altered. However, the content can be changed to work with a different device.
Returns
A pointer to a HalEepromInformationType data structure, or NULL if the driver does not support this API
166
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
Macro Definition Documentation#
simulatedTimePasses#
#define simulatedTimePasses
68
of file platform/service/legacy_hal/inc/hal.h
EEPROM_PAGE_SIZE#
#define EEPROM_PAGE_SIZEValue:
(128ul)
Definition of an EEPROM page size, in bytes.
This definition is deprecated, and should no longer be used.
30
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_FIRST_PAGE#
#define EEPROM_FIRST_PAGEValue:
(0)
Define the location of the first page in EEPROM.
This definition is deprecated, and should no longer be used.
35
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_IMAGE_START#
#define EEPROM_IMAGE_STARTValue:
(EEPROM_FIRST_PAGE * EEPROM_PAGE_SIZE)
Define the location of the image start in EEPROM as a function of the EEPROM_FIRST_PAGE and EEPROM_PAGE_SIZE.
This definition is deprecated, and should no longer be used.
41
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_SUCCESS#
#define EEPROM_SUCCESSValue:
0U
Define EEPROM success status.
45
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR#
#define EEPROM_ERRValue:
1U
Define EEPROM error status.
49
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_MASK#
#define EEPROM_ERR_MASKValue:
0x80U
Define EEPROM error mask.
53
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_PG_BOUNDARY#
#define EEPROM_ERR_PG_BOUNDARYValue:
0x81U
Define EEPROM page boundary error.
57
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_PG_SZ#
#define EEPROM_ERR_PG_SZValue:
0x82U
Define EEPROM page size error.
61
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_WRT_DATA#
#define EEPROM_ERR_WRT_DATAValue:
0x83U
Define EEPROM write data error.
65
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_IMG_SZ#
#define EEPROM_ERR_IMG_SZValue:
0x84U
Define EEPROM image too large error.
69
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_ADDR#
#define EEPROM_ERR_ADDRValue:
0x85U
Define EEPROM invalid address error.
73
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_INVALID_CHIP#
#define EEPROM_ERR_INVALID_CHIPValue:
0x86U
Define EEPROM chip initialization error.
77
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_ERASE_REQUIRED#
#define EEPROM_ERR_ERASE_REQUIREDValue:
0x87U
Define EEPROM erase required error.
81
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_ERR_NO_ERASE_SUPPORT#
#define EEPROM_ERR_NO_ERASE_SUPPORTValue:
0x88U
Define EEPROM error for no erase support.
85
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_INFO_VERSION#
#define EEPROM_INFO_VERSIONValue:
(0x0202)
The current version of the HalEepromInformationType data structure.
119
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_INFO_MAJOR_VERSION#
#define EEPROM_INFO_MAJOR_VERSIONValue:
(0x0200)
eeprom info major version
120
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_INFO_MAJOR_VERSION_MASK#
#define EEPROM_INFO_MAJOR_VERSION_MASKValue:
(0xFF00)
eeprom info major version mask
121
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_INFO_MIN_VERSION_WITH_WORD_SIZE_SUPPORT#
#define EEPROM_INFO_MIN_VERSION_WITH_WORD_SIZE_SUPPORTValue:
0x0102U
eeprom info min version with word size support
130
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_CAPABILITIES_ERASE_SUPPORTED#
#define EEPROM_CAPABILITIES_ERASE_SUPPORTEDValue:
(0x0001U)
Eeprom capabilites mask that indicates the erase API is supported.
134
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_CAPABILITIES_PAGE_ERASE_REQD#
#define EEPROM_CAPABILITIES_PAGE_ERASE_REQDValue:
(0x0002U)
Eeprom capabilites mask that indicates page erasing is required before new data can be written to a device.
139
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_CAPABILITIES_BLOCKING_WRITE#
#define EEPROM_CAPABILITIES_BLOCKING_WRITEValue:
(0x0004U)
Eeprom capabilites mask that indicates that the write routine is blocking on this device.
144
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_CAPABILITIES_BLOCKING_ERASE#
#define EEPROM_CAPABILITIES_BLOCKING_ERASEValue:
(0x0008U)
Eeprom capabilites mask that indicates that the erase routine is blocking on this device.
149
of file platform/service/legacy_hal/inc/bootloader-eeprom.h
EEPROM_CAPABILITIES_PART_ERASE_SECONDS#
#define EEPROM_CAPABILITIES_PART_ERASE_SECONDSValue:
(0x0010U)
Eeprom capabilities mask that indicateds that the partEraseTime field of HalEepromInformationType is in seconds instead of the usual millisecondss.
155
of file platform/service/legacy_hal/inc/bootloader-eeprom.h