System

A hardware independent interface for starting and resetting the system.

Description

The API allows the user to detect whether a debugger is connected, sissue a soft reset, and enumerate the reset causes. The functions are implemented in the MCU specific directories e.g. hal_reset_cause.c, hal_system.c, and hal_system_start.c in /hw/mcu/nordic/nrf52xxx/src/ directory for Nordic nRF52 series of chips.

API

enum hal_reset_reason

Reboot reason.

Values:

enumerator HAL_RESET_POR

Power on Reset.

enumerator HAL_RESET_PIN

Caused by Reset Pin.

enumerator HAL_RESET_WATCHDOG

Caused by Watchdog.

enumerator HAL_RESET_SOFT

Soft reset, either system reset or crash.

enumerator HAL_RESET_BROWNOUT

Low supply voltage.

enumerator HAL_RESET_REQUESTED

Restart due to user request.

enumerator HAL_RESET_SYS_OFF_INT

System Off, wakeup on external interrupt.

enumerator HAL_RESET_DFU

Restart due to DFU.

enumerator HAL_RESET_OTHER

Restart reason other.

void hal_system_reset (void) __attribute((noreturn))

System reset.

void hal_system_start (void *img_start) __attribute((noreturn))

Called by bootloader to start loaded program.

void hal_system_restart (void *img_start) __attribute((noreturn))

Called by split app loader to start the app program.

int hal_debugger_connected(void)

Returns non-zero if there is a HW debugger attached.

enum hal_reset_reason hal_reset_cause(void)

Return the reboot reason.

Return

A reboot reason

const char *hal_reset_cause_str(void)

Return the reboot reason as a string.

Return

String describing previous reset reason

void hal_system_clock_start(void)

Starts clocks needed by system.

void hal_system_reset_cb(void)

Reset callback to be called before an reset happens inside hal_system_reset()