ports/rp2: Additions for rp2 init hooks.

Signed-off-by: Christopher Parrott <chris@pimoroni.com>
pull/12283/head
ZodiusInfuser 2023-08-22 17:15:46 +01:00
rodzic b1ac266bb5
commit e73f8fd5f7
3 zmienionych plików z 38 dodań i 0 usunięć

Wyświetl plik

@ -412,6 +412,7 @@ endif()
list(APPEND MICROPY_SOURCE_QSTR
${MICROPY_SOURCE_EXTMOD}
${MICROPY_SOURCE_USERMOD}
${MICROPY_SOURCE_BOARD}
)
# Define mpy-cross flags
@ -430,6 +431,7 @@ target_sources(${MICROPY_TARGET} PRIVATE
${MICROPY_SOURCE_LIB}
${MICROPY_SOURCE_DRIVERS}
${MICROPY_SOURCE_PORT}
${MICROPY_SOURCE_BOARD}
)
target_link_libraries(${MICROPY_TARGET} micropy_lib_mbedtls)

Wyświetl plik

@ -76,6 +76,9 @@ int main(int argc, char **argv) {
// This is a tickless port, interrupts should always trigger SEV.
SCB->SCR |= SCB_SCR_SEVONPEND_Msk;
// Hook for setting up anything that needs to be super early in the bootup process
MICROPY_BOARD_STARTUP();
#if MICROPY_HW_ENABLE_UART_REPL
bi_decl(bi_program_feature("UART REPL"))
setup_default_uart();
@ -146,6 +149,9 @@ int main(int argc, char **argv) {
}
#endif
// Hook for setting up anything that can wait until after other hardware features are initialised
MICROPY_BOARD_EARLY_INIT();
for (;;) {
// Initialise MicroPython runtime.
@ -169,6 +175,9 @@ int main(int argc, char **argv) {
mod_network_lwip_init();
#endif
// Hook for setting up anything that should follow the MicroPy runtime but be prior to _boot.py
MICROPY_BOARD_LATE_INIT();
// Execute _boot.py to set up the filesystem.
#if MICROPY_VFS_FAT && MICROPY_HW_USB_MSC
pyexec_frozen_module("_boot_fat.py", false);
@ -207,6 +216,10 @@ int main(int argc, char **argv) {
soft_reset_exit:
mp_printf(MP_PYTHON_PRINTER, "MPY: soft reboot\n");
// Hook for resetting anything immediately following a soft reboot command
MICROPY_BOARD_EARLY_RESET();
#if MICROPY_PY_NETWORK
mod_network_deinit();
#endif
@ -227,6 +240,9 @@ int main(int argc, char **argv) {
gc_sweep_all();
mp_deinit();
// Hook for resetting anything after the MicroPy runtime has been deinitialised
MICROPY_BOARD_LATE_RESET();
}
return 0;

Wyświetl plik

@ -275,3 +275,23 @@ extern void lwip_lock_release(void);
#define MICROPY_PY_BLUETOOTH_ENTER uint32_t atomic_state = 0;
#define MICROPY_PY_BLUETOOTH_EXIT (void)atomic_state;
#endif
#ifndef MICROPY_BOARD_STARTUP
#define MICROPY_BOARD_STARTUP()
#endif
#ifndef MICROPY_BOARD_EARLY_INIT
#define MICROPY_BOARD_EARLY_INIT()
#endif
#ifndef MICROPY_BOARD_LATE_INIT
#define MICROPY_BOARD_LATE_INIT()
#endif
#ifndef MICROPY_BOARD_EARLY_RESET
#define MICROPY_BOARD_EARLY_RESET()
#endif
#ifndef MICROPY_BOARD_LATE_RESET
#define MICROPY_BOARD_LATE_RESET()
#endif