Modules#

RTCCRamData

Common Microcontroller Functions#

Many of the supplied example applications use these microcontroller functions. See hal/micro/micro.h for source code.

Note

  • The term SFD refers to the Start Frame Delimiter.

Many of the supplied example applications use these microcontroller functions. See hal/micro/micro-common.h for source code.

See also hal/micro/cortexm3/micro.h for source code.

Vector Table Index Definitions#

These are numerical definitions for vector table. Indices 0 through 15 are Cortex-M3 standard exception vectors and indices 16 through 35 are EM3XX specific interrupt vectors.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

A numerical definition for a vector.

#define

Number of vectors.

Enumerations#

enum
SLEEPMODE_RUNNING = 0U
SLEEPMODE_IDLE = 1U
SLEEPMODE_WAKETIMER = 2U
SLEEPMODE_MAINTAINTIMER = 3U
SLEEPMODE_NOTIMER = 4U
SLEEPMODE_HIBERNATE = 5U
SLEEPMODE_RESERVED = 6U
SLEEPMODE_POWERDOWN = 7U
SLEEPMODE_POWERSAVE = 8U
}

Enumerations for the possible microcontroller sleep modes.

Typedefs#

typedef uint32_t
typedef uint32_t

Variables#

int8_t

Helper variable to track the state of 1.8V regulator.

Functions#

void

Called from emberInit and provides a means for the HAL to increment a boot counter, most commonly in non-volatile memory.

uint8_t

Gets information about what caused the microcontroller to reset.

PGM_P

Calls halGetResetInfo() and supplies a string describing it.

void
halInit(void)

Initializes microcontroller-specific peripherals.

void
halReboot(void)

Restarts the microcontroller and therefore everything else.

void

Powers up microcontroller peripherals and board peripherals.

void

Powers down microcontroller peripherals and board peripherals.

void
halResume(void)

Resumes microcontroller peripherals and board peripherals.

void

Suspends microcontroller peripherals and board peripherals.

void

Enables the watchdog timer.

void
halInternalDisableWatchDog(uint8_t magicKey)

Disables the watchdog timer.

bool

Determines whether the watchdog has been enabled or disabled.

void
halSleep(SleepModes sleepMode)

Puts the microcontroller to sleep in a specified mode.

void
halSleepPreserveInts(SleepModes sleepMode)

Same as halSleep() except it preserves the current interrupt state rather than always enabling interrupts prior to returning.

void

Blocks the current thread of execution for the specified amount of time, in microseconds.

void

Disable the 1.8V regulator. This function is to be used when the 1.8V supply is provided externally. Disabling the regulator saves current consumption. Disabling the regulator will cause ADC readings of external signals to be wrong. These exteranl signals include analog sources ADC0 thru ADC5 and VDD_PADS/4.

void

Enable the 1.8V regulator. Normally the 1.8V regulator is enabled out of reset. This function is only needed if the 1.8V regulator has been disabled and ADC conversions on external signals are needed. These exteranl signals include analog sources ADC0 thru ADC5 and VDD_PADS/4. The state of 1v8 survives deep sleep.

void
halBeforeEM4(uint32_t duration, RTCCRamData input)
void
halInternalSysReset(uint16_t extendedCause)

Records the specified reset cause then forces a reboot.

uint16_t

Returns the Extended Reset Cause information.

PGM_P

Calls halGetExtendedResetInfo() and supplies a string describing the extended cause of the reset. halGetResetString() should also be called to get the string for the base reset cause.

halSetRadioHoldOff(bool enable)

Enables or disables Radio HoldOff support.

bool

Returns whether Radio HoldOff has been enabled or not.

void

To assist with saving power when the radio automatically powers down, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerdown state. The pin state used is the state used by halInternalPowerDownBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function is often called from interrupt context.

void

To assist with saving power when radio2 automatically powers down, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerdown state. The pin state used is the state used by halInternalPowerDownBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function is often called from interrupt context.

void

To assist with saving power when the radio automatically powers up, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerup state. The pin state used is the state used by halInternalPowerUpBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function can be called from interrupt context.

void

To assist with saving power when radio2 automatically powers up, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerup state. The pin state used is the state used by halInternalPowerUpBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function can be called from interrupt context.

void

This function is called automatically by the stack prior to Radio power-up and after Radio power-down. It can be used to prepare for the radio being powered on and to clean up after it's been powered off. Unlike halStackRadioPowerUpBoard() and halStackRadioPowerDownBoard(), which can be called from interrupt context, this function is only called from main-line context.

void

Handler called in main context prior to radio being powered on.

void

Handler called in main context after radio has been powered off.

Macros#

#define

Calls halGetExtendedResetInfo() and translates the EM35x reset code to the corresponding value used by the EM2XX HAL. Any reset codes not present in the EM2XX are returned after being OR'ed with 0x80.

#define

The value that must be passed as the single parameter to halInternalDisableWatchDog() in order to successfully disable the watchdog timer.

#define
#define
GPIO_MASK 0xFFFFFF
#define
WAKE_GPIO_MASK GPIO_MASK
#define
WAKE_GPIO_SIZE GPIO_MASK_SIZE
#define
#define
#define

Vector Table Index Definitions Documentation#

STACK_VECTOR_INDEX#

#define STACK_VECTOR_INDEX
Value:
0U

A numerical definition for a vector.


Definition at line 135 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

RESET_VECTOR_INDEX#

#define RESET_VECTOR_INDEX
Value:
1U

A numerical definition for a vector.


Definition at line 136 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

NMI_VECTOR_INDEX#

#define NMI_VECTOR_INDEX
Value:
2U

A numerical definition for a vector.


Definition at line 137 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

HARD_FAULT_VECTOR_INDEX#

#define HARD_FAULT_VECTOR_INDEX
Value:
3U

A numerical definition for a vector.


Definition at line 138 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

MEMORY_FAULT_VECTOR_INDEX#

#define MEMORY_FAULT_VECTOR_INDEX
Value:
4U

A numerical definition for a vector.


Definition at line 139 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

BUS_FAULT_VECTOR_INDEX#

#define BUS_FAULT_VECTOR_INDEX
Value:
5U

A numerical definition for a vector.


Definition at line 140 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

USAGE_FAULT_VECTOR_INDEX#

#define USAGE_FAULT_VECTOR_INDEX
Value:
6U

A numerical definition for a vector.


Definition at line 141 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

RESERVED07_VECTOR_INDEX#

#define RESERVED07_VECTOR_INDEX
Value:
7U

A numerical definition for a vector.


Definition at line 142 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

RESERVED08_VECTOR_INDEX#

#define RESERVED08_VECTOR_INDEX
Value:
8U

A numerical definition for a vector.


Definition at line 143 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

RESERVED09_VECTOR_INDEX#

#define RESERVED09_VECTOR_INDEX
Value:
9U

A numerical definition for a vector.


Definition at line 144 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

RESERVED10_VECTOR_INDEX#

#define RESERVED10_VECTOR_INDEX
Value:
10U

A numerical definition for a vector.


Definition at line 145 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SVCALL_VECTOR_INDEX#

#define SVCALL_VECTOR_INDEX
Value:
11U

A numerical definition for a vector.


Definition at line 146 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

DEBUG_MONITOR_VECTOR_INDEX#

#define DEBUG_MONITOR_VECTOR_INDEX
Value:
12U

A numerical definition for a vector.


Definition at line 147 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

RESERVED13_VECTOR_INDEX#

#define RESERVED13_VECTOR_INDEX
Value:
13U

A numerical definition for a vector.


Definition at line 148 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

PENDSV_VECTOR_INDEX#

#define PENDSV_VECTOR_INDEX
Value:
14U

A numerical definition for a vector.


Definition at line 149 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SYSTICK_VECTOR_INDEX#

#define SYSTICK_VECTOR_INDEX
Value:
15U

A numerical definition for a vector.


Definition at line 150 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

TIMER1_VECTOR_INDEX#

#define TIMER1_VECTOR_INDEX
Value:
16U

A numerical definition for a vector.


Definition at line 151 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

TIMER2_VECTOR_INDEX#

#define TIMER2_VECTOR_INDEX
Value:
17U

A numerical definition for a vector.


Definition at line 152 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

MANAGEMENT_VECTOR_INDEX#

#define MANAGEMENT_VECTOR_INDEX
Value:
18U

A numerical definition for a vector.


Definition at line 153 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

BASEBAND_VECTOR_INDEX#

#define BASEBAND_VECTOR_INDEX
Value:
19U

A numerical definition for a vector.


Definition at line 154 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SLEEP_TIMER_VECTOR_INDEX#

#define SLEEP_TIMER_VECTOR_INDEX
Value:
20U

A numerical definition for a vector.


Definition at line 155 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SC1_VECTOR_INDEX#

#define SC1_VECTOR_INDEX
Value:
21U

A numerical definition for a vector.


Definition at line 156 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SC2_VECTOR_INDEX#

#define SC2_VECTOR_INDEX
Value:
22U

A numerical definition for a vector.


Definition at line 157 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SECURITY_VECTOR_INDEX#

#define SECURITY_VECTOR_INDEX
Value:
23U

A numerical definition for a vector.


Definition at line 158 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

MAC_TIMER_VECTOR_INDEX#

#define MAC_TIMER_VECTOR_INDEX
Value:
24U

A numerical definition for a vector.


Definition at line 159 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

MAC_TX_VECTOR_INDEX#

#define MAC_TX_VECTOR_INDEX
Value:
25U

A numerical definition for a vector.


Definition at line 160 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

MAC_RX_VECTOR_INDEX#

#define MAC_RX_VECTOR_INDEX
Value:
26U

A numerical definition for a vector.


Definition at line 161 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

ADC_VECTOR_INDEX#

#define ADC_VECTOR_INDEX
Value:
27U

A numerical definition for a vector.


Definition at line 162 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

IRQA_VECTOR_INDEX#

#define IRQA_VECTOR_INDEX
Value:
28U

A numerical definition for a vector.


Definition at line 163 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

IRQB_VECTOR_INDEX#

#define IRQB_VECTOR_INDEX
Value:
29U

A numerical definition for a vector.


Definition at line 164 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

IRQC_VECTOR_INDEX#

#define IRQC_VECTOR_INDEX
Value:
30U

A numerical definition for a vector.


Definition at line 165 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

IRQD_VECTOR_INDEX#

#define IRQD_VECTOR_INDEX
Value:
31U

A numerical definition for a vector.


Definition at line 166 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

DEBUG_VECTOR_INDEX#

#define DEBUG_VECTOR_INDEX
Value:
32U

A numerical definition for a vector.


Definition at line 167 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SC3_VECTOR_INDEX#

#define SC3_VECTOR_INDEX
Value:
33U

A numerical definition for a vector.


Definition at line 168 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

SC4_VECTOR_INDEX#

#define SC4_VECTOR_INDEX
Value:
34U

A numerical definition for a vector.


Definition at line 169 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

USB_VECTOR_INDEX#

#define USB_VECTOR_INDEX
Value:
35U

A numerical definition for a vector.


Definition at line 170 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

VECTOR_TABLE_LENGTH#

#define VECTOR_TABLE_LENGTH
Value:
36U

Number of vectors.


Definition at line 175 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

Enumeration Documentation#

SleepModes#

SleepModes

Enumerations for the possible microcontroller sleep modes.

  • SLEEPMODE_RUNNING Everything is active and running. In practice this mode is not used, but it is defined for completeness of information.

  • SLEEPMODE_IDLE Only the CPU is idled. The rest of the chip continues running normally. The chip will wake from any interrupt.

  • SLEEPMODE_WAKETIMER The sleep timer clock sources remain running. The RC is always running and the 32kHz XTAL depends on the board header. Wakeup is possible from both GPIO and the sleep timer. System time is maintained. The sleep timer is assumed to be configured properly for wake events.

  • SLEEPMODE_MAINTAINTIMER The sleep timer clock sources remain running. The RC is always running and the 32kHz XTAL depends on the board header. Wakeup is possible from only GPIO. System time is maintained. NOTE: This mode is not available on EM2XX chips.

  • SLEEPMODE_NOTIMER The sleep timer clock sources (both RC and XTAL) are turned off. Wakeup is possible from only GPIO. System time is lost.

  • SLEEPMODE_HIBERNATE This maps to EM4 Hibernate on the EFM32/EFR32 devices. RAM is not retained in SLEEPMODE_HIBERNATE so waking up from this sleepmode will behave like a reset. NOTE: This mode is only available on EFM32/EFR32

Enumerator
SLEEPMODE_RUNNING
SLEEPMODE_IDLE
SLEEPMODE_WAKETIMER
SLEEPMODE_MAINTAINTIMER
SLEEPMODE_NOTIMER
SLEEPMODE_HIBERNATE
SLEEPMODE_RESERVED
SLEEPMODE_POWERDOWN
SLEEPMODE_POWERSAVE

Definition at line 106 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

Typedef Documentation#

WakeEvents#

typedef uint32_t WakeEvents

Definition at line 231 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

WakeMask#

typedef uint32_t WakeMask

Definition at line 232 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

Variable Documentation#

halCommonVreg1v8EnableCount#

volatile int8_t halCommonVreg1v8EnableCount

Helper variable to track the state of 1.8V regulator.

Note

  • : Only used when DISABLE_INTERNAL_1V8_REGULATOR is defined.


Definition at line 285 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

Function Documentation#

halStackProcessBootCount#

void halStackProcessBootCount (void )

Called from emberInit and provides a means for the HAL to increment a boot counter, most commonly in non-volatile memory.

Parameters
N/A

This is useful while debugging to determine the number of resets that might be seen over a period of time. Exposing this functionality allows the application to disable or alter processing of the boot counter if, for example, the application is expecting a lot of resets that could wear out non-volatile storage or some

@stackusage Called from emberInit only as helpful debugging information. This should be left enabled by default, but this function can also be reduced to a simple return statement if boot counting is not desired.


Definition at line 68 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro.h

halGetResetInfo#

uint8_t halGetResetInfo (void )

Gets information about what caused the microcontroller to reset.

Parameters
N/A

Returns

  • A code identifying the cause of the reset.


Definition at line 74 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro.h

halGetResetString#

PGM_P halGetResetString (void )

Calls halGetResetInfo() and supplies a string describing it.

Parameters
N/A

@appusage Useful for diagnostic printing of text just after program initialization.

Returns

  • A pointer to a program space string.


Definition at line 83 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro.h

halInit#

void halInit (void )

Initializes microcontroller-specific peripherals.

Parameters
N/A

Definition at line 30 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halReboot#

void halReboot (void )

Restarts the microcontroller and therefore everything else.

Parameters
N/A

Definition at line 34 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halPowerUp#

void halPowerUp (void )

Powers up microcontroller peripherals and board peripherals.

Parameters
N/A

Definition at line 38 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halPowerDown#

void halPowerDown (void )

Powers down microcontroller peripherals and board peripherals.

Parameters
N/A

Definition at line 42 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halResume#

void halResume (void )

Resumes microcontroller peripherals and board peripherals.

Parameters
N/A

Definition at line 46 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halSuspend#

void halSuspend (void )

Suspends microcontroller peripherals and board peripherals.

Parameters
N/A

Definition at line 50 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halInternalEnableWatchDog#

void halInternalEnableWatchDog (void )

Enables the watchdog timer.

Parameters
N/A

Definition at line 60 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halInternalDisableWatchDog#

void halInternalDisableWatchDog (uint8_t magicKey)

Disables the watchdog timer.

Parameters
N/AmagicKey

A value (MICRO_DISABLE_WATCH_DOG_KEY) that enables the function.

Note

  • To prevent the watchdog from being disabled accidentally, a magic key must be provided.


Definition at line 69 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halInternalWatchDogEnabled#

bool halInternalWatchDogEnabled (void )

Determines whether the watchdog has been enabled or disabled.

Parameters
N/A

Returns

  • A bool value indicating if the watchdog is current enabled.


Definition at line 75 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halSleep#

void halSleep (SleepModes sleepMode)

Puts the microcontroller to sleep in a specified mode.

Parameters
N/AsleepMode

A microcontroller sleep mode

Note

  • This routine always enables interrupts.

See Also


Definition at line 250 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halSleepPreserveInts#

void halSleepPreserveInts (SleepModes sleepMode)

Same as halSleep() except it preserves the current interrupt state rather than always enabling interrupts prior to returning.

Parameters
N/AsleepMode

A microcontroller sleep mode

See Also


Definition at line 259 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halCommonDelayMicroseconds#

void halCommonDelayMicroseconds (uint16_t us)

Blocks the current thread of execution for the specified amount of time, in microseconds.

Parameters
N/Aus

The specified time, in microseconds. Values should be between 1 and 65535 microseconds.

The function is implemented with cycle-counted busy loops and is intended to create the short delays required when interfacing with hardware peripherals.

The accuracy of the timing provided by this function is not specified, but a general rule is that when running off of a crystal oscillator it will be within 10us. If the micro is running off of another type of oscillator (e.g. RC) the timing accuracy will potentially be much worse.


Definition at line 276 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halCommonDisableVreg1v8#

void halCommonDisableVreg1v8 (void )

Disable the 1.8V regulator. This function is to be used when the 1.8V supply is provided externally. Disabling the regulator saves current consumption. Disabling the regulator will cause ADC readings of external signals to be wrong. These exteranl signals include analog sources ADC0 thru ADC5 and VDD_PADS/4.

Parameters
N/A

Note

  • : Only used when DISABLE_INTERNAL_1V8_REGULATOR is defined.


Definition at line 296 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halCommonEnableVreg1v8#

void halCommonEnableVreg1v8 (void )

Enable the 1.8V regulator. Normally the 1.8V regulator is enabled out of reset. This function is only needed if the 1.8V regulator has been disabled and ADC conversions on external signals are needed. These exteranl signals include analog sources ADC0 thru ADC5 and VDD_PADS/4. The state of 1v8 survives deep sleep.

Parameters
N/A

Note

  • : Only used when DISABLE_INTERNAL_1V8_REGULATOR is defined.


Definition at line 307 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halBeforeEM4#

void halBeforeEM4 (uint32_t duration, RTCCRamData input)
Parameters
N/Aduration
N/Ainput

Definition at line 318 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halAfterEM4#

RTCCRamData halAfterEM4 (void )
Parameters
N/A

Definition at line 319 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

halInternalSysReset#

void halInternalSysReset (uint16_t extendedCause)

Records the specified reset cause then forces a reboot.

Parameters
N/AextendedCause

Definition at line 182 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halGetExtendedResetInfo#

uint16_t halGetExtendedResetInfo (void )

Returns the Extended Reset Cause information.

Parameters
N/A

Returns

  • A 16-bit code identifying the base and extended cause of the reset


Definition at line 189 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halGetExtendedResetString#

PGM_P halGetExtendedResetString (void )

Calls halGetExtendedResetInfo() and supplies a string describing the extended cause of the reset. halGetResetString() should also be called to get the string for the base reset cause.

Parameters
N/A

@appusage Useful for diagnostic printing of text just after program initialization.

Returns

  • A pointer to a program space string.


Definition at line 200 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halSetRadioHoldOff#

EmberStatus halSetRadioHoldOff (bool enable)

Enables or disables Radio HoldOff support.

Parameters
N/Aenable

When true, configures ::RHO_GPIO in BOARD_HEADER as an input which, when asserted, will prevent the radio from transmitting. When false, configures ::RHO_GPIO for its original default purpose.

Returns

  • EMBER_SUCCESS if Radio HoldOff was configured as desired or EMBER_BAD_ARGUMENT if requesting it be enabled but RHO has not been configured by the BOARD_HEADER.


Definition at line 252 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halGetRadioHoldOff#

bool halGetRadioHoldOff (void )

Returns whether Radio HoldOff has been enabled or not.

Parameters
N/A

Returns

  • true if Radio HoldOff has been enabled, false otherwise.


Definition at line 258 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halStackRadioPowerDownBoard#

void halStackRadioPowerDownBoard (void )

To assist with saving power when the radio automatically powers down, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerdown state. The pin state used is the state used by halInternalPowerDownBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function is often called from interrupt context.

Parameters
N/A

Definition at line 270 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halStackRadio2PowerDownBoard#

void halStackRadio2PowerDownBoard (void )

To assist with saving power when radio2 automatically powers down, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerdown state. The pin state used is the state used by halInternalPowerDownBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function is often called from interrupt context.

Parameters
N/A

Definition at line 282 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halStackRadioPowerUpBoard#

void halStackRadioPowerUpBoard (void )

To assist with saving power when the radio automatically powers up, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerup state. The pin state used is the state used by halInternalPowerUpBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function can be called from interrupt context.

Parameters
N/A

Definition at line 294 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halStackRadio2PowerUpBoard#

void halStackRadio2PowerUpBoard (void )

To assist with saving power when radio2 automatically powers up, this function allows the stack to tell the HAL to put pins specific to radio functionality in their powerup state. The pin state used is the state used by halInternalPowerUpBoard, but applied only to the pins identified in the global variable gpioRadioPowerBoardMask. The stack will automatically call this function as needed, but it will only change GPIO state based on gpioRadioPowerBoardMask. Most commonly, the bits set in gpioRadioPowerBoardMask petain to using a Front End Module. This function can be called from interrupt context.

Parameters
N/A

Definition at line 306 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halStackRadioPowerMainControl#

void halStackRadioPowerMainControl (bool powerUp)

This function is called automatically by the stack prior to Radio power-up and after Radio power-down. It can be used to prepare for the radio being powered on and to clean up after it's been powered off. Unlike halStackRadioPowerUpBoard() and halStackRadioPowerDownBoard(), which can be called from interrupt context, this function is only called from main-line context.

Parameters
N/ApowerUp

Definition at line 315 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halRadioPowerUpHandler#

void halRadioPowerUpHandler (void )

Handler called in main context prior to radio being powered on.

Parameters
N/A

Definition at line 320 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

halRadioPowerDownHandler#

void halRadioPowerDownHandler (void )

Handler called in main context after radio has been powered off.

Parameters
N/A

Definition at line 325 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/cortexm3/micro.h

Macro Definition Documentation#

halGetEm2xxResetInfo#

#define halGetEm2xxResetInfo
Value:
()

Calls halGetExtendedResetInfo() and translates the EM35x reset code to the corresponding value used by the EM2XX HAL. Any reset codes not present in the EM2XX are returned after being OR'ed with 0x80.

@appusage Used by the EZSP host as a platform-independent NCP reset code.

Returns

  • The EM2XX-compatible reset code. If not supported by the EM2XX, return the platform-specific code with B7 set.


Definition at line 98 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro.h

MICRO_DISABLE_WATCH_DOG_KEY#

#define MICRO_DISABLE_WATCH_DOG_KEY
Value:
0xA5U

The value that must be passed as the single parameter to halInternalDisableWatchDog() in order to successfully disable the watchdog timer.


Definition at line 56 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

GPIO_MASK_SIZE#

#define GPIO_MASK_SIZE
Value:
24

Definition at line 227 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

GPIO_MASK#

#define GPIO_MASK
Value:
0xFFFFFF

Definition at line 228 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

WAKE_GPIO_MASK#

#define WAKE_GPIO_MASK
Value:
GPIO_MASK

Definition at line 229 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

WAKE_GPIO_SIZE#

#define WAKE_GPIO_SIZE
Value:
GPIO_MASK_SIZE

Definition at line 230 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

WAKE_MASK_INVALID#

#define WAKE_MASK_INVALID
Value:
(-1)

Definition at line 235 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

WAKE_EVENT_SIZE#

#define WAKE_EVENT_SIZE
Value:
WakeMask

Note

  • The preprocessor symbol WAKE_EVENT_SIZE has been deprecated. Please use WakeMask instead.


Definition at line 240 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h

DEBUG_TOGGLE#

#define DEBUG_TOGGLE

Definition at line 278 of file /Users/vihuszar/Git/EmbeddedSoftware/super/platform/base/hal/micro/micro-common.h