/** * @file furi_hal.h * Furi HAL API */ #pragma once #ifdef __cplusplus template struct STOP_EXTERNING_ME {}; #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /** Set whether booting normally with all subsystems */ void furi_hal_set_is_normal_boot(bool value); /** True if booting normally with all subsystems */ bool furi_hal_is_normal_boot(void); /** Early FuriHal init, only essential subsystems */ void furi_hal_init_early(void); /** Early FuriHal deinit */ void furi_hal_deinit_early(void); /** Init FuriHal */ void furi_hal_init(void); /** Jump to the void* * * Allow your code to transfer control to another firmware. * * @warning This code doesn't reset system before jump. Call it only from * main thread, no kernel should be running. Ensure that no * peripheral blocks active and no interrupts are pending. * * @param address The System Vector address(start of your new firmware) */ void furi_hal_switch(void* address); #ifdef __cplusplus } #endif