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