From cf52021d3822d8f62826a846c68b1a46a1a5df4f Mon Sep 17 00:00:00 2001 From: cap9qd <33727568+cap9qd@users.noreply.github.com> Date: Sun, 25 Feb 2024 11:45:22 -0600 Subject: [PATCH] [core] Split reboot reasons due to wakeup (#254) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Updates to break out wakeup reasons. Per https://github.com/libretiny-eu/libretiny/issues/234 * Update cores/common/base/api/lt_device.h Co-authored-by: Kuba Szczodrzyński * fix clang-format * Fix formatting of python files. * Update lt_device.h --------- Co-authored-by: Kuba Szczodrzyński --- builder/utils/cores.py | 20 ++++++------ cores/beken-72xx/base/api/lt_device.c | 6 ++-- cores/common/base/api/lt_device.c | 8 +++-- cores/common/base/api/lt_device.h | 46 ++++++++++++++++----------- docs/scripts/write_boards.py | 38 +++++++++++++--------- 5 files changed, 71 insertions(+), 47 deletions(-) diff --git a/builder/utils/cores.py b/builder/utils/cores.py index 8848e08fd..9e4018466 100644 --- a/builder/utils/cores.py +++ b/builder/utils/cores.py @@ -89,15 +89,17 @@ def env_add_arduino_libraries(env: Environment, queue, name: str, path: str) -> srcs=[ "+<**/*.c*>", ], - includes=[ - "!<*/.>", - "!<*/*>", - ] - if name.startswith("common") - else [ - "!<.>", - "!<*>", - ], + includes=( + [ + "!<*/.>", + "!<*/*>", + ] + if name.startswith("common") + else [ + "!<.>", + "!<*>", + ] + ), ) return True diff --git a/cores/beken-72xx/base/api/lt_device.c b/cores/beken-72xx/base/api/lt_device.c index 200802724..eed4f7e37 100644 --- a/cores/beken-72xx/base/api/lt_device.c +++ b/cores/beken-72xx/base/api/lt_device.c @@ -31,10 +31,12 @@ lt_reboot_reason_t lt_get_reboot_reason() { case RESET_SOURCE_CRASH_UNUSED: case RESET_SOURCE_CRASH_PER_XAT0: return REBOOT_REASON_CRASH; + case RESET_SOURCE_DEEPPS_USB: + return REBOOT_REASON_SLEEP_USB; case RESET_SOURCE_DEEPPS_GPIO: + return REBOOT_REASON_SLEEP_GPIO; case RESET_SOURCE_DEEPPS_RTC: - case RESET_SOURCE_DEEPPS_USB: - return REBOOT_REASON_SLEEP; + return REBOOT_REASON_SLEEP_RTC; default: return REBOOT_REASON_UNKNOWN; } diff --git a/cores/common/base/api/lt_device.c b/cores/common/base/api/lt_device.c index 983ddadad..af8cd6875 100644 --- a/cores/common/base/api/lt_device.c +++ b/cores/common/base/api/lt_device.c @@ -62,8 +62,12 @@ const char *lt_get_reboot_reason_name(lt_reboot_reason_t reason) { return "WDT Reset"; case REBOOT_REASON_CRASH: return "Crash"; - case REBOOT_REASON_SLEEP: - return "Sleep Wakeup"; + case REBOOT_REASON_SLEEP_GPIO: + return "Sleep Wakeup (GPIO)"; + case REBOOT_REASON_SLEEP_RTC: + return "Sleep Wakeup (RTC)"; + case REBOOT_REASON_SLEEP_USB: + return "Sleep Wakeup (USB)"; case REBOOT_REASON_DEBUGGER: return "Debugger"; default: diff --git a/cores/common/base/api/lt_device.h b/cores/common/base/api/lt_device.h index 5074c2820..7e1c4df76 100644 --- a/cores/common/base/api/lt_device.h +++ b/cores/common/base/api/lt_device.h @@ -4,32 +4,40 @@ #include -#define RESET_REASON_UNKNOWN REBOOT_REASON_UNKNOWN -#define RESET_REASON_POWER REBOOT_REASON_POWER -#define RESET_REASON_BROWNOUT REBOOT_REASON_BROWNOUT -#define RESET_REASON_HARDWARE REBOOT_REASON_HARDWARE -#define RESET_REASON_SOFTWARE REBOOT_REASON_SOFTWARE -#define RESET_REASON_WATCHDOG REBOOT_REASON_WATCHDOG -#define RESET_REASON_CRASH REBOOT_REASON_CRASH -#define RESET_REASON_SLEEP REBOOT_REASON_SLEEP -#define RESET_REASON_MAX REBOOT_REASON_MAX +#define RESET_REASON_UNKNOWN REBOOT_REASON_UNKNOWN +#define RESET_REASON_POWER REBOOT_REASON_POWER +#define RESET_REASON_BROWNOUT REBOOT_REASON_BROWNOUT +#define RESET_REASON_HARDWARE REBOOT_REASON_HARDWARE +#define RESET_REASON_SOFTWARE REBOOT_REASON_SOFTWARE +#define RESET_REASON_WATCHDOG REBOOT_REASON_WATCHDOG +#define RESET_REASON_CRASH REBOOT_REASON_CRASH +#define RESET_REASON_SLEEP_GPIO REBOOT_REASON_SLEEP_GPIO +#define RESET_REASON_SLEEP_RTC REBOOT_REASON_SLEEP_RTC +#define RESET_REASON_SLEEP_USB REBOOT_REASON_SLEEP_USB +#define RESET_REASON_MAX REBOOT_REASON_MAX /** * @brief Reset reason enumeration. */ typedef enum { - REBOOT_REASON_UNKNOWN = 1, - REBOOT_REASON_POWER = 2, - REBOOT_REASON_BROWNOUT = 3, - REBOOT_REASON_HARDWARE = 4, - REBOOT_REASON_SOFTWARE = 5, - REBOOT_REASON_WATCHDOG = 6, - REBOOT_REASON_CRASH = 7, - REBOOT_REASON_SLEEP = 8, - REBOOT_REASON_DEBUGGER = 9, - REBOOT_REASON_MAX = 10, + REBOOT_REASON_UNKNOWN = 1, + REBOOT_REASON_POWER = 2, + REBOOT_REASON_BROWNOUT = 3, + REBOOT_REASON_HARDWARE = 4, + REBOOT_REASON_SOFTWARE = 5, + REBOOT_REASON_WATCHDOG = 6, + REBOOT_REASON_CRASH = 7, + REBOOT_REASON_SLEEP_GPIO = 8, + REBOOT_REASON_SLEEP_RTC = 9, + REBOOT_REASON_SLEEP_USB = 10, + REBOOT_REASON_DEBUGGER = 11, + REBOOT_REASON_MAX = 12, } lt_reboot_reason_t; +// RESET_REASON_SLEEP deprecated, kept for compatibility +#define RESET_REASON_SLEEP REBOOT_REASON_SLEEP_GPIO +#define REBOOT_REASON_SLEEP REBOOT_REASON_SLEEP_GPIO + /** * @brief Debugging mode enumeration. */ diff --git a/docs/scripts/write_boards.py b/docs/scripts/write_boards.py index e40833308..fa773e168 100644 --- a/docs/scripts/write_boards.py +++ b/docs/scripts/write_boards.py @@ -285,12 +285,14 @@ def write_families(supported: list[Family]): docs = get_readme_family_link(family) row = [ # Title - "[{}]({})".format( - family.description, - docs, - ) - if docs - else family.description, + ( + "[{}]({})".format( + family.description, + docs, + ) + if docs + else family.description + ), # Name family.is_supported and f"`{family.name}`" or "`-`", # Code @@ -301,16 +303,22 @@ def write_families(supported: list[Family]): family.id, ), # Arduino Core - "✔️" - if family in supported and family.is_supported and family.has_arduino_core - else "❌", + ( + "✔️" + if family in supported + and family.is_supported + and family.has_arduino_core + else "❌" + ), # Source SDK - "[`{}`]({})".format( - family.target_package, - f"https://github.com/libretiny-eu/{family.target_package}", - ) - if family.target_package - else "-", + ( + "[`{}`]({})".format( + family.target_package, + f"https://github.com/libretiny-eu/{family.target_package}", + ) + if family.target_package + else "-" + ), ] rows.append(row) md.add_table(header, *rows)