mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-08 01:17:07 +00:00
refactor(interrupt):put the interrupts definitions in soc/interrupts.h
Now the soc interrupts definitions are scattered around in the esp-idf which are out of sync. Put interrupts definitions in soc/periph_defs.h (!ESP32) or soc/soc.h(ESP32) together in soc/interrupts.h.
This commit is contained in:
95
components/soc/esp32/include/soc/interrupts.h
Normal file
95
components/soc/esp32/include/soc/interrupts.h
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2018-2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
//Interrupt hardware source table
|
||||
//This table is decided by hardware, don't touch this.
|
||||
typedef enum {
|
||||
ETS_WIFI_MAC_INTR_SOURCE = 0, /**< interrupt of WiFi MAC, level*/
|
||||
ETS_WIFI_MAC_NMI_SOURCE, /**< interrupt of WiFi MAC, NMI, use if MAC have bug to fix in NMI*/
|
||||
ETS_WIFI_BB_INTR_SOURCE, /**< interrupt of WiFi BB, level, we can do some calibartion*/
|
||||
ETS_BT_MAC_INTR_SOURCE, /**< will be cancelled*/
|
||||
ETS_BT_BB_INTR_SOURCE, /**< interrupt of BT BB, level*/
|
||||
ETS_BT_BB_NMI_SOURCE, /**< interrupt of BT BB, NMI, use if BB have bug to fix in NMI*/
|
||||
ETS_RWBT_INTR_SOURCE, /**< interrupt of RWBT, level*/
|
||||
ETS_RWBLE_INTR_SOURCE, /**< interrupt of RWBLE, level*/
|
||||
ETS_RWBT_NMI_SOURCE, /**< interrupt of RWBT, NMI, use if RWBT have bug to fix in NMI*/
|
||||
ETS_RWBLE_NMI_SOURCE, /**< interrupt of RWBLE, NMI, use if RWBT have bug to fix in NMI*/
|
||||
ETS_SLC0_INTR_SOURCE, /**< interrupt of SLC0, level*/
|
||||
ETS_SLC1_INTR_SOURCE, /**< interrupt of SLC1, level*/
|
||||
ETS_UHCI0_INTR_SOURCE, /**< interrupt of UHCI0, level*/
|
||||
ETS_UHCI1_INTR_SOURCE, /**< interrupt of UHCI1, level*/
|
||||
ETS_TG0_T0_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER0, level, we would like use EDGE for timer if permission*/
|
||||
ETS_TG0_T1_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER1, level, we would like use EDGE for timer if permission*/
|
||||
ETS_TG0_WDT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, WATCHDOG, level*/
|
||||
ETS_TG0_LACT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, LACT, level*/
|
||||
ETS_TG1_T0_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER0, level, we would like use EDGE for timer if permission*/
|
||||
ETS_TG1_T1_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER1, level, we would like use EDGE for timer if permission*/
|
||||
ETS_TG1_WDT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, WATCHDOG, level*/
|
||||
ETS_TG1_LACT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, LACT, level*/
|
||||
ETS_GPIO_INTR_SOURCE, /**< interrupt of GPIO, level*/
|
||||
ETS_GPIO_NMI_SOURCE, /**< interrupt of GPIO, NMI*/
|
||||
ETS_FROM_CPU_INTR0_SOURCE, /**< interrupt0 generated from a CPU, level*/ /* Used for FreeRTOS */
|
||||
ETS_FROM_CPU_INTR1_SOURCE, /**< interrupt1 generated from a CPU, level*/ /* Used for FreeRTOS */
|
||||
ETS_FROM_CPU_INTR2_SOURCE, /**< interrupt2 generated from a CPU, level*/ /* Used for IPC_ISR */
|
||||
ETS_FROM_CPU_INTR3_SOURCE, /**< interrupt3 generated from a CPU, level*/ /* Used for IPC_ISR */
|
||||
ETS_SPI0_INTR_SOURCE, /**< interrupt of SPI0, level, SPI0 is for Cache Access, do not use this*/
|
||||
ETS_SPI1_INTR_SOURCE, /**< interrupt of SPI1, level, SPI1 is for flash read/write, do not use this*/
|
||||
ETS_SPI2_INTR_SOURCE, /**< interrupt of SPI2, level*/
|
||||
ETS_SPI3_INTR_SOURCE, /**< interrupt of SPI3, level*/
|
||||
ETS_I2S0_INTR_SOURCE, /**< interrupt of I2S0, level*/
|
||||
ETS_I2S1_INTR_SOURCE, /**< interrupt of I2S1, level*/
|
||||
ETS_UART0_INTR_SOURCE, /**< interrupt of UART0, level*/
|
||||
ETS_UART1_INTR_SOURCE, /**< interrupt of UART1, level*/
|
||||
ETS_UART2_INTR_SOURCE, /**< interrupt of UART2, level*/
|
||||
ETS_SDIO_HOST_INTR_SOURCE, /**< interrupt of SD/SDIO/MMC HOST, level*/
|
||||
ETS_ETH_MAC_INTR_SOURCE, /**< interrupt of ethernet mac, level*/
|
||||
ETS_PWM0_INTR_SOURCE, /**< interrupt of PWM0, level, Reserved*/
|
||||
ETS_PWM1_INTR_SOURCE, /**< interrupt of PWM1, level, Reserved*/
|
||||
|
||||
ETS_LEDC_INTR_SOURCE = 43, /**< interrupt of LED PWM, level*/
|
||||
ETS_EFUSE_INTR_SOURCE, /**< interrupt of efuse, level, not likely to use*/
|
||||
ETS_TWAI_INTR_SOURCE, /**< interrupt of twai, level*/
|
||||
ETS_RTC_CORE_INTR_SOURCE, /**< interrupt of rtc core, level, include rtc watchdog*/
|
||||
ETS_RMT_INTR_SOURCE, /**< interrupt of remote controller, level*/
|
||||
ETS_PCNT_INTR_SOURCE, /**< interrupt of pluse count, level*/
|
||||
ETS_I2C_EXT0_INTR_SOURCE, /**< interrupt of I2C controller1, level*/
|
||||
ETS_I2C_EXT1_INTR_SOURCE, /**< interrupt of I2C controller0, level*/
|
||||
ETS_RSA_INTR_SOURCE, /**< interrupt of RSA accelerator, level*/
|
||||
ETS_SPI1_DMA_INTR_SOURCE, /**< interrupt of SPI1 DMA, SPI1 is for flash read/write, do not use this*/
|
||||
ETS_SPI2_DMA_INTR_SOURCE, /**< interrupt of SPI2 DMA, level*/
|
||||
ETS_SPI3_DMA_INTR_SOURCE, /**< interrupt of SPI3 DMA, level*/
|
||||
ETS_WDT_INTR_SOURCE, /**< will be cancelled*/
|
||||
ETS_TIMER1_INTR_SOURCE, /**< will be cancelled*/
|
||||
ETS_TIMER2_INTR_SOURCE, /**< will be cancelled*/
|
||||
ETS_TG0_T0_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER0, EDGE*/
|
||||
ETS_TG0_T1_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER1, EDGE*/
|
||||
ETS_TG0_WDT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, WATCH DOG, EDGE*/
|
||||
ETS_TG0_LACT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, LACT, EDGE*/
|
||||
ETS_TG1_T0_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER0, EDGE*/
|
||||
ETS_TG1_T1_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER1, EDGE*/
|
||||
ETS_TG1_WDT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, WATCHDOG, EDGE*/
|
||||
ETS_TG1_LACT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, LACT, EDGE*/
|
||||
ETS_MMU_IA_INTR_SOURCE, /**< interrupt of MMU Invalid Access, LEVEL*/
|
||||
ETS_MPU_IA_INTR_SOURCE, /**< interrupt of MPU Invalid Access, LEVEL*/
|
||||
ETS_CACHE_IA_INTR_SOURCE, /**< interrupt of Cache Invalied Access, LEVEL*/
|
||||
ETS_MAX_INTR_SOURCE, /**< total number of interrupt sources*/
|
||||
} periph_interrput_t;
|
||||
|
||||
#define ETS_CAN_INTR_SOURCE ETS_TWAI_INTR_SOURCE
|
||||
|
||||
extern const char *const esp_isr_names[ETS_MAX_INTR_SOURCE];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2010-2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <stdint.h>
|
||||
#include "esp_assert.h"
|
||||
#include "soc/soc_caps.h"
|
||||
#include "soc/interrupts.h"
|
||||
#endif
|
||||
|
||||
#include "esp_bit_defs.h"
|
||||
@@ -218,78 +219,6 @@
|
||||
// Start (highest address) of ROM boot stack, only relevant during early boot
|
||||
#define SOC_ROM_STACK_START 0x3ffe3f20
|
||||
|
||||
//Interrupt hardware source table
|
||||
//This table is decided by hardware, don't touch this.
|
||||
#define ETS_WIFI_MAC_INTR_SOURCE 0/**< interrupt of WiFi MAC, level*/
|
||||
#define ETS_WIFI_MAC_NMI_SOURCE 1/**< interrupt of WiFi MAC, NMI, use if MAC have bug to fix in NMI*/
|
||||
#define ETS_WIFI_BB_INTR_SOURCE 2/**< interrupt of WiFi BB, level, we can do some calibartion*/
|
||||
#define ETS_BT_MAC_INTR_SOURCE 3/**< will be cancelled*/
|
||||
#define ETS_BT_BB_INTR_SOURCE 4/**< interrupt of BT BB, level*/
|
||||
#define ETS_BT_BB_NMI_SOURCE 5/**< interrupt of BT BB, NMI, use if BB have bug to fix in NMI*/
|
||||
#define ETS_RWBT_INTR_SOURCE 6/**< interrupt of RWBT, level*/
|
||||
#define ETS_RWBLE_INTR_SOURCE 7/**< interrupt of RWBLE, level*/
|
||||
#define ETS_RWBT_NMI_SOURCE 8/**< interrupt of RWBT, NMI, use if RWBT have bug to fix in NMI*/
|
||||
#define ETS_RWBLE_NMI_SOURCE 9/**< interrupt of RWBLE, NMI, use if RWBT have bug to fix in NMI*/
|
||||
#define ETS_SLC0_INTR_SOURCE 10/**< interrupt of SLC0, level*/
|
||||
#define ETS_SLC1_INTR_SOURCE 11/**< interrupt of SLC1, level*/
|
||||
#define ETS_UHCI0_INTR_SOURCE 12/**< interrupt of UHCI0, level*/
|
||||
#define ETS_UHCI1_INTR_SOURCE 13/**< interrupt of UHCI1, level*/
|
||||
#define ETS_TG0_T0_LEVEL_INTR_SOURCE 14/**< interrupt of TIMER_GROUP0, TIMER0, level, we would like use EDGE for timer if permission*/
|
||||
#define ETS_TG0_T1_LEVEL_INTR_SOURCE 15/**< interrupt of TIMER_GROUP0, TIMER1, level, we would like use EDGE for timer if permission*/
|
||||
#define ETS_TG0_WDT_LEVEL_INTR_SOURCE 16/**< interrupt of TIMER_GROUP0, WATCHDOG, level*/
|
||||
#define ETS_TG0_LACT_LEVEL_INTR_SOURCE 17/**< interrupt of TIMER_GROUP0, LACT, level*/
|
||||
#define ETS_TG1_T0_LEVEL_INTR_SOURCE 18/**< interrupt of TIMER_GROUP1, TIMER0, level, we would like use EDGE for timer if permission*/
|
||||
#define ETS_TG1_T1_LEVEL_INTR_SOURCE 19/**< interrupt of TIMER_GROUP1, TIMER1, level, we would like use EDGE for timer if permission*/
|
||||
#define ETS_TG1_WDT_LEVEL_INTR_SOURCE 20/**< interrupt of TIMER_GROUP1, WATCHDOG, level*/
|
||||
#define ETS_TG1_LACT_LEVEL_INTR_SOURCE 21/**< interrupt of TIMER_GROUP1, LACT, level*/
|
||||
#define ETS_GPIO_INTR_SOURCE 22/**< interrupt of GPIO, level*/
|
||||
#define ETS_GPIO_NMI_SOURCE 23/**< interrupt of GPIO, NMI*/
|
||||
#define ETS_FROM_CPU_INTR0_SOURCE 24/**< interrupt0 generated from a CPU, level*/ /* Used for FreeRTOS */
|
||||
#define ETS_FROM_CPU_INTR1_SOURCE 25/**< interrupt1 generated from a CPU, level*/ /* Used for FreeRTOS */
|
||||
#define ETS_FROM_CPU_INTR2_SOURCE 26/**< interrupt2 generated from a CPU, level*/ /* Used for IPC_ISR */
|
||||
#define ETS_FROM_CPU_INTR3_SOURCE 27/**< interrupt3 generated from a CPU, level*/ /* Used for IPC_ISR */
|
||||
#define ETS_SPI0_INTR_SOURCE 28/**< interrupt of SPI0, level, SPI0 is for Cache Access, do not use this*/
|
||||
#define ETS_SPI1_INTR_SOURCE 29/**< interrupt of SPI1, level, SPI1 is for flash read/write, do not use this*/
|
||||
#define ETS_SPI2_INTR_SOURCE 30/**< interrupt of SPI2, level*/
|
||||
#define ETS_SPI3_INTR_SOURCE 31/**< interrupt of SPI3, level*/
|
||||
#define ETS_I2S0_INTR_SOURCE 32/**< interrupt of I2S0, level*/
|
||||
#define ETS_I2S1_INTR_SOURCE 33/**< interrupt of I2S1, level*/
|
||||
#define ETS_UART0_INTR_SOURCE 34/**< interrupt of UART0, level*/
|
||||
#define ETS_UART1_INTR_SOURCE 35/**< interrupt of UART1, level*/
|
||||
#define ETS_UART2_INTR_SOURCE 36/**< interrupt of UART2, level*/
|
||||
#define ETS_SDIO_HOST_INTR_SOURCE 37/**< interrupt of SD/SDIO/MMC HOST, level*/
|
||||
#define ETS_ETH_MAC_INTR_SOURCE 38/**< interrupt of ethernet mac, level*/
|
||||
#define ETS_PWM0_INTR_SOURCE 39/**< interrupt of PWM0, level, Reserved*/
|
||||
#define ETS_PWM1_INTR_SOURCE 40/**< interrupt of PWM1, level, Reserved*/
|
||||
#define ETS_LEDC_INTR_SOURCE 43/**< interrupt of LED PWM, level*/
|
||||
#define ETS_EFUSE_INTR_SOURCE 44/**< interrupt of efuse, level, not likely to use*/
|
||||
#define ETS_TWAI_INTR_SOURCE 45/**< interrupt of twai, level*/
|
||||
#define ETS_CAN_INTR_SOURCE ETS_TWAI_INTR_SOURCE
|
||||
#define ETS_RTC_CORE_INTR_SOURCE 46/**< interrupt of rtc core, level, include rtc watchdog*/
|
||||
#define ETS_RMT_INTR_SOURCE 47/**< interrupt of remote controller, level*/
|
||||
#define ETS_PCNT_INTR_SOURCE 48/**< interrupt of pluse count, level*/
|
||||
#define ETS_I2C_EXT0_INTR_SOURCE 49/**< interrupt of I2C controller1, level*/
|
||||
#define ETS_I2C_EXT1_INTR_SOURCE 50/**< interrupt of I2C controller0, level*/
|
||||
#define ETS_RSA_INTR_SOURCE 51/**< interrupt of RSA accelerator, level*/
|
||||
#define ETS_SPI1_DMA_INTR_SOURCE 52/**< interrupt of SPI1 DMA, SPI1 is for flash read/write, do not use this*/
|
||||
#define ETS_SPI2_DMA_INTR_SOURCE 53/**< interrupt of SPI2 DMA, level*/
|
||||
#define ETS_SPI3_DMA_INTR_SOURCE 54/**< interrupt of SPI3 DMA, level*/
|
||||
#define ETS_WDT_INTR_SOURCE 55/**< will be cancelled*/
|
||||
#define ETS_TIMER1_INTR_SOURCE 56/**< will be cancelled*/
|
||||
#define ETS_TIMER2_INTR_SOURCE 57/**< will be cancelled*/
|
||||
#define ETS_TG0_T0_EDGE_INTR_SOURCE 58/**< interrupt of TIMER_GROUP0, TIMER0, EDGE*/
|
||||
#define ETS_TG0_T1_EDGE_INTR_SOURCE 59/**< interrupt of TIMER_GROUP0, TIMER1, EDGE*/
|
||||
#define ETS_TG0_WDT_EDGE_INTR_SOURCE 60/**< interrupt of TIMER_GROUP0, WATCH DOG, EDGE*/
|
||||
#define ETS_TG0_LACT_EDGE_INTR_SOURCE 61/**< interrupt of TIMER_GROUP0, LACT, EDGE*/
|
||||
#define ETS_TG1_T0_EDGE_INTR_SOURCE 62/**< interrupt of TIMER_GROUP1, TIMER0, EDGE*/
|
||||
#define ETS_TG1_T1_EDGE_INTR_SOURCE 63/**< interrupt of TIMER_GROUP1, TIMER1, EDGE*/
|
||||
#define ETS_TG1_WDT_EDGE_INTR_SOURCE 64/**< interrupt of TIMER_GROUP1, WATCHDOG, EDGE*/
|
||||
#define ETS_TG1_LACT_EDGE_INTR_SOURCE 65/**< interrupt of TIMER_GROUP0, LACT, EDGE*/
|
||||
#define ETS_MMU_IA_INTR_SOURCE 66/**< interrupt of MMU Invalid Access, LEVEL*/
|
||||
#define ETS_MPU_IA_INTR_SOURCE 67/**< interrupt of MPU Invalid Access, LEVEL*/
|
||||
#define ETS_CACHE_IA_INTR_SOURCE 68/**< interrupt of Cache Invalied Access, LEVEL*/
|
||||
#define ETS_MAX_INTR_SOURCE 69/**< total number of interrupt sources*/
|
||||
|
||||
#if CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5
|
||||
//interrupt cpu using table, Please see the core-isa.h
|
||||
/*************************************************************************************************************
|
||||
|
||||
@@ -48,8 +48,8 @@ const char * const esp_isr_names[ETS_MAX_INTR_SOURCE] = {
|
||||
[38] = "ETH_MAC",
|
||||
[39] = "PWM0",
|
||||
[40] = "PWM1",
|
||||
[41] = "PWM2",
|
||||
[42] = "PWM3",
|
||||
[41] = "RESERVED",
|
||||
[42] = "RESERVED",
|
||||
[43] = "LEDC",
|
||||
[44] = "EFUSE",
|
||||
[45] = "TWAI",
|
||||
|
||||
Reference in New Issue
Block a user