furi_hal.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * @file furi_hal.h
  3. * Furi HAL API
  4. */
  5. #pragma once
  6. #ifdef __cplusplus
  7. template <unsigned int N>
  8. struct STOP_EXTERNING_ME {};
  9. #endif
  10. #include <furi_hal_cortex.h>
  11. #include <furi_hal_clock.h>
  12. #include <furi_hal_crypto.h>
  13. #include <furi_hal_console.h>
  14. #include <furi_hal_debug.h>
  15. #include <furi_hal_os.h>
  16. #include <furi_hal_sd.h>
  17. #include <furi_hal_i2c.h>
  18. #include <furi_hal_region.h>
  19. #include <furi_hal_resources.h>
  20. #include <furi_hal_rtc.h>
  21. #include <furi_hal_speaker.h>
  22. #include <furi_hal_gpio.h>
  23. #include <furi_hal_light.h>
  24. #include <furi_hal_power.h>
  25. #include <furi_hal_interrupt.h>
  26. #include <furi_hal_version.h>
  27. #include <furi_hal_bt.h>
  28. #include <furi_hal_spi.h>
  29. #include <furi_hal_flash.h>
  30. #include <furi_hal_vibro.h>
  31. #include <furi_hal_usb.h>
  32. #include <furi_hal_usb_hid.h>
  33. #include <furi_hal_uart.h>
  34. #include <furi_hal_info.h>
  35. #include <furi_hal_random.h>
  36. #include <furi_hal_target_hw.h>
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40. /** Early FuriHal init, only essential subsystems */
  41. void furi_hal_init_early();
  42. /** Early FuriHal deinit */
  43. void furi_hal_deinit_early();
  44. /** Init FuriHal */
  45. void furi_hal_init();
  46. /** Transfer execution to address
  47. *
  48. * @param[in] address pointer to new executable
  49. */
  50. void furi_hal_switch(void* address);
  51. #ifdef __cplusplus
  52. }
  53. #endif