Microcontroller functions
Description
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.
See also hal/micro/cortexm3/micro.h for source code.
Functions |
|
uint8_t | halGetResetInfo (void) |
Gets information about what caused the microcontroller to reset.
|
|
const char * | halGetResetString (void) |
Calls
halGetResetInfo()
and supplies a string describing it.
|
|
void | halInternalSysReset (uint16_t extendedCause) |
Records the specified reset cause then forces a reboot.
|
|
uint16_t | halGetExtendedResetInfo (void) |
Returns the Extended Reset Cause information.
|
|
const char * | halGetExtendedResetString (void) |
Calls
halGetExtendedResetInfo()
and supplies a string describing the extended cause of the reset.
|
|
void | halInit (void) |
Initializes microcontroller-specific peripherals.
|
|
void | halReboot (void) |
Restarts the microcontroller and therefore everything else.
|
|
void | halInternalEnableWatchDog (void) |
Enables the watchdog timer.
|
|
void | halInternalDisableWatchDog (uint8_t magicKey) |
Disables the watchdog timer.
|
|
bool | halInternalWatchDogEnabled (void) |
Determines whether the watchdog has been enabled or disabled.
|
|
void | halResetWatchdog (void) |
Macros |
|
#define | MICRO_DISABLE_WATCH_DOG_KEY 0xA5U |
The value that must be passed as the single parameter to
halInternalDisableWatchDog()
in order to successfully disable the watchdog timer.
|
|
Vector Table Index Definitions |
|
These are numerical definitions for vector table. Only Cortex-M standard exception vectors (indices 0 through 15) are represented since device specific vectors can be (and often are) different across dies. |
|
#define | STACK_VECTOR_INDEX 0U |
A numerical definition for a vector.
|
|
#define | RESET_VECTOR_INDEX 1U |
#define | NMI_VECTOR_INDEX 2U |
#define | HARD_FAULT_VECTOR_INDEX 3U |
#define | MEMORY_FAULT_VECTOR_INDEX 4U |
#define | BUS_FAULT_VECTOR_INDEX 5U |
#define | USAGE_FAULT_VECTOR_INDEX 6U |
#define | RESERVED07_VECTOR_INDEX 7U |
#define | RESERVED08_VECTOR_INDEX 8U |
#define | RESERVED09_VECTOR_INDEX 9U |
#define | RESERVED10_VECTOR_INDEX 10U |
#define | SVCALL_VECTOR_INDEX 11U |
#define | DEBUG_MONITOR_VECTOR_INDEX 12U |
#define | RESERVED13_VECTOR_INDEX 13U |
#define | PENDSV_VECTOR_INDEX 14U |
#define | SYSTICK_VECTOR_INDEX 15U |
#define | IRQ_TO_VECTOR_NUMBER (x) ((x) + 16U) |
Utility macro to convert from IRQ numbers to exception numbers/ vector indices.
|
|
#define | VECTOR_TABLE_LENGTH ( IRQ_TO_VECTOR_NUMBER (EXT_IRQ_COUNT)) |
Number of vectors.
|
|
Function Documentation
◆ halGetResetInfo()
uint8_t halGetResetInfo | ( | void |
|
) |
Gets information about what caused the microcontroller to reset.
- Returns
- A code identifying the cause of the reset.
◆ halGetResetString()
const char* halGetResetString | ( | void |
|
) |
Calls halGetResetInfo() and supplies a string describing it.
@appusage Useful for diagnostic printing of text just after program initialization.
- Returns
- A pointer to a program space string.
◆ halInternalSysReset()
void halInternalSysReset | ( | uint16_t |
extendedCause
|
) |
Records the specified reset cause then forces a reboot.
◆ halGetExtendedResetInfo()
uint16_t halGetExtendedResetInfo | ( | void |
|
) |
Returns the Extended Reset Cause information.
- Returns
- A 16-bit code identifying the base and extended cause of the reset
◆ halGetExtendedResetString()
const char* 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
@appusage Useful for diagnostic printing of text just after program initialization.
- Returns
- A pointer to a program space string.
◆ halInit()
void halInit | ( | void |
|
) |
Initializes microcontroller-specific peripherals.
◆ halReboot()
void halReboot | ( | void |
|
) |
Restarts the microcontroller and therefore everything else.
◆ halInternalEnableWatchDog()
void halInternalEnableWatchDog | ( | void |
|
) |
Enables the watchdog timer.
◆ halInternalDisableWatchDog()
void halInternalDisableWatchDog | ( | uint8_t |
magicKey
|
) |
Disables the watchdog timer.
- Note
- To prevent the watchdog from being disabled accidentally, a magic key must be provided.
- Parameters
-
magicKey
A value ( MICRO_DISABLE_WATCH_DOG_KEY ) that enables the function.
◆ halInternalWatchDogEnabled()
bool halInternalWatchDogEnabled | ( | void |
|
) |
Determines whether the watchdog has been enabled or disabled.
- Returns
- A bool value indicating if the watchdog is current enabled.
Macro Definition Documentation
◆ STACK_VECTOR_INDEX
#define STACK_VECTOR_INDEX 0U |
A numerical definition for a vector.
◆ IRQ_TO_VECTOR_NUMBER
#define IRQ_TO_VECTOR_NUMBER | ( |
x
|
) | ((x) + 16U) |
Utility macro to convert from IRQ numbers to exception numbers/ vector indices.
These are different because the latter include the Cortex-M standard exceptions while the former do not.
◆ VECTOR_TABLE_LENGTH
#define VECTOR_TABLE_LENGTH ( IRQ_TO_VECTOR_NUMBER (EXT_IRQ_COUNT)) |
Number of vectors.
EXT_IRQ_COUNT is defined in the device header but does not include the Cortex-M standard exceptions.
◆ MICRO_DISABLE_WATCH_DOG_KEY
#define MICRO_DISABLE_WATCH_DOG_KEY 0xA5U |
The value that must be passed as the single parameter to halInternalDisableWatchDog() in order to successfully disable the watchdog timer.