esp_ipc_isr.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #pragma once
  7. #include "sdkconfig.h"
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #ifdef CONFIG_ESP_IPC_ISR_ENABLE
  12. /**
  13. * @brief Initialize the IPC ISR feature, must be called for each CPU
  14. *
  15. * @note This function is called from ipc_task().
  16. *
  17. * This function initializes the IPC ISR feature and must be called before any other esp_ipc_isr...() functions.
  18. * The IPC ISR feature allows for callbacks (written in assembly) to be run on a particular CPU in the context of a
  19. * High Priority Interrupt.
  20. *
  21. * - This function will register a High Priority Interrupt for a CPU where it is called. The priority of the interrupts is dependent on
  22. * the CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL option.
  23. * - Callbacks written in assembly can then run in context of the registered High Priority Interrupts
  24. * - Callbacks can be executed by calling esp_ipc_isr_call() or esp_ipc_isr_call_blocking()
  25. */
  26. void esp_ipc_isr_init(void);
  27. #endif // CONFIG_ESP_IPC_ISR_ENABLE
  28. #ifdef __cplusplus
  29. }
  30. #endif