Files
libretiny/cores/realtek-ambz2/base/api/lt_device.c
2023-06-22 18:30:14 +02:00

62 lines
1.3 KiB
C

/* Copyright (c) Kuba Szczodrzyński 2023-05-22. */
#include <libretiny.h>
#include <sdk_private.h>
void lt_get_device_mac(uint8_t *mac) {
efuse_logical_read(0x11A, 6, mac);
}
void lt_reboot() {
sys_cpu_reset();
while (1) {}
}
bool lt_reboot_download_mode() {
sys_uart_download_mode();
while (1) {}
return true;
}
lt_reboot_reason_t lt_get_reboot_reason() {
hal_reset_reason_t reason = -1;
rtl8710c_reset_reason_get(&reason);
switch (reason) {
case HAL_RESET_REASON_POWER_ON:
return REBOOT_REASON_POWER;
case HAL_RESET_REASON_SOFTWARE:
return REBOOT_REASON_SOFTWARE;
case HAL_RESET_REASON_WATCHDOG:
return REBOOT_REASON_WATCHDOG;
case HAL_RESET_REASON_JTAG:
return REBOOT_REASON_DEBUGGER;
default:
return REBOOT_REASON_UNKNOWN;
}
}
bool lt_set_debug_mode(lt_debug_mode_t mode) {
switch (mode) {
case DEBUG_MODE_OFF:
if (hal_misc_jtag_pin_ctrl(0) != HAL_OK)
return false;
if (hal_misc_swd_pin_ctrl(0) != HAL_OK)
return false;
return true;
case DEBUG_MODE_JTAG:
if (hal_misc_swd_pin_ctrl(0) != HAL_OK)
return false;
if (hal_misc_jtag_pin_ctrl(1) != HAL_OK)
return false;
return true;
case DEBUG_MODE_SWD:
if (hal_misc_jtag_pin_ctrl(0) != HAL_OK)
return false;
if (hal_misc_swd_pin_ctrl(1) != HAL_OK)
return false;
return true;
default:
return false;
}
}