| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #include <rtthread.h>
- #include "board.h"
- #include "gicv3.h"
- /* MCU1 interrupt numbers extracted from the original SDK configuration. */
- #define Os_IntChannel_PDMA0_Ch0Isr 213U
- #define Os_IntChannel_Pps_IcuRtcIsr 221U
- #define Os_IntChannel_Pps_IcuEthIsr 229U
- #define Os_IntChannel_Spi0_Isr 171U
- #define Os_IntChannel_Spi1_Isr 172U
- #define Os_IntChannel_Spi2_Isr 173U
- #define Os_IntChannel_Spi3_Isr 174U
- #define Os_IntChannel_Uart4_Isr 45U
- #define Os_IntChannel_Uart5_Isr 46U
- #define Os_IntChannel_Adc_Ch0WdIsr 48U
- #define Os_IntChannel_Adc_Ch1WdIsr 49U
- #define Os_IntChannel_Adc_Ch2WdIsr 50U
- #define Os_IntChannel_Adc_Ch3WdIsr 51U
- #define Os_IntChannel_Adc_Ch4WdIsr 52U
- #define Os_IntChannel_Adc_Ch5WdIsr 53U
- #define Os_IntChannel_Adc_Ch6WdIsr 54U
- #define Os_IntChannel_Adc_Ch7WdIsr 55U
- #define Os_IntChannel_Adc_Ch8WdIsr 56U
- #define Os_IntChannel_Adc_Ch9WdIsr 57U
- #define Os_IntChannel_Adc_Ch10WdIsr 58U
- #define Os_IntChannel_Adc_Ch11WdIsr 59U
- #define Os_IntChannel_Adc_Ch12WdIsr 60U
- #define Os_IntChannel_Adc_Ch13WdIsr 61U
- #define Os_IntChannel_Adc_InjIsr 62U
- #define Os_IntChannel_Adc_NorIsr 63U
- #define Os_IntChannel_I2c0_Isr 64U
- #define Os_IntChannel_I2c1_Isr 65U
- #define Os_IntChannel_I2c2_Isr 66U
- #define Os_IntChannel_I2c3_Isr 67U
- #define Os_IntChannel_Gpio_Icu0ExtIsr 68U
- #define Os_IntChannel_Gpio_Icu1ExtIsr 69U
- #define Os_IntChannel_Gpio_Icu2ExtIsr 70U
- #define Os_IntChannel_Mdma1_Ch1Isr 212U
- #define Os_IntChannel_Ipc_CpuIpc0Ch0Isr 254U
- #define Os_IntChannel_Ipc_CpuIpc0Ch4Isr 258U
- #define Os_IntChannel_Ipc_CpuIpc0Ch7Isr 261U
- #define Os_IntChannel_Ipc_CpuIpc0Ch10Isr 264U
- #define Os_Cross_Core_Ins0_Isr 237U
- #define Os_Cross_Core_Ins1_Isr 238U
- #define Os_Cross_Core_Ins2_Isr 239U
- #define Os_Cross_Core_Ins3_Isr 234U
- #define Os_Cross_Core_Ins4_Isr 235U
- #define Os_Cross_Core_Ins5_Isr 236U
- #define Os_IntChannel_Can5_DataIsr 136U
- #define Os_IntChannel_Can6_DataIsr 140U
- #define Os_IntChannel_Can7_DataIsr 144U
- #define Os_IntChannel_Can8_DataIsr 148U
- #define Os_IntChannel_Can9_DataIsr 152U
- /*
- * MCU1 interrupt whitelist extracted from the original SDK interrupt map.
- * The current BSP only manages these SPI IDs; everything else is treated as
- * out-of-scope to avoid colliding with resources still owned by MCU0.
- */
- const s100_rt_irq_config_t s100_mcu1_rt_irq_configs[] =
- {
- {Os_IntChannel_PDMA0_Ch0Isr, RT_TRUE, "PDMA0_Ch0"},
- {Os_IntChannel_Pps_IcuRtcIsr, RT_TRUE, "Pps_IcuRtc"},
- {Os_IntChannel_Pps_IcuEthIsr, RT_TRUE, "Pps_IcuEth"},
- {Os_IntChannel_Spi0_Isr, RT_TRUE, "Spi0"},
- {Os_IntChannel_Spi1_Isr, RT_TRUE, "Spi1"},
- {Os_IntChannel_Spi2_Isr, RT_TRUE, "Spi2"},
- {Os_IntChannel_Spi3_Isr, RT_TRUE, "Spi3"},
- {Os_IntChannel_Uart4_Isr, RT_TRUE, "Uart4"},
- {Os_IntChannel_Uart5_Isr, RT_TRUE, "Uart5"},
- {Os_IntChannel_Adc_Ch0WdIsr, RT_TRUE, "Adc_Ch0Wd"},
- {Os_IntChannel_Adc_Ch1WdIsr, RT_TRUE, "Adc_Ch1Wd"},
- {Os_IntChannel_Adc_Ch2WdIsr, RT_TRUE, "Adc_Ch2Wd"},
- {Os_IntChannel_Adc_Ch3WdIsr, RT_TRUE, "Adc_Ch3Wd"},
- {Os_IntChannel_Adc_Ch4WdIsr, RT_TRUE, "Adc_Ch4Wd"},
- {Os_IntChannel_Adc_Ch5WdIsr, RT_TRUE, "Adc_Ch5Wd"},
- {Os_IntChannel_Adc_Ch6WdIsr, RT_TRUE, "Adc_Ch6Wd"},
- {Os_IntChannel_Adc_Ch7WdIsr, RT_TRUE, "Adc_Ch7Wd"},
- {Os_IntChannel_Adc_Ch8WdIsr, RT_TRUE, "Adc_Ch8Wd"},
- {Os_IntChannel_Adc_Ch9WdIsr, RT_TRUE, "Adc_Ch9Wd"},
- {Os_IntChannel_Adc_Ch10WdIsr, RT_TRUE, "Adc_Ch10Wd"},
- {Os_IntChannel_Adc_Ch11WdIsr, RT_TRUE, "Adc_Ch11Wd"},
- {Os_IntChannel_Adc_Ch12WdIsr, RT_TRUE, "Adc_Ch12Wd"},
- {Os_IntChannel_Adc_Ch13WdIsr, RT_TRUE, "Adc_Ch13Wd"},
- {Os_IntChannel_Adc_InjIsr, RT_TRUE, "Adc_Inj"},
- {Os_IntChannel_Adc_NorIsr, RT_TRUE, "Adc_Nor"},
- {Os_IntChannel_I2c0_Isr, RT_TRUE, "I2c0"},
- {Os_IntChannel_I2c1_Isr, RT_TRUE, "I2c1"},
- {Os_IntChannel_I2c2_Isr, RT_TRUE, "I2c2"},
- {Os_IntChannel_I2c3_Isr, RT_TRUE, "I2c3"},
- {Os_IntChannel_Gpio_Icu0ExtIsr, RT_TRUE, "Gpio_Icu0Ext"},
- {Os_IntChannel_Gpio_Icu1ExtIsr, RT_TRUE, "Gpio_Icu1Ext"},
- {Os_IntChannel_Gpio_Icu2ExtIsr, RT_TRUE, "Gpio_Icu2Ext"},
- {Os_IntChannel_Mdma1_Ch1Isr, RT_TRUE, "Mdma1_Ch1"},
- {Os_IntChannel_Ipc_CpuIpc0Ch0Isr, RT_TRUE, "Ipc_CpuIpc0Ch0"},
- {Os_IntChannel_Ipc_CpuIpc0Ch4Isr, RT_TRUE, "Ipc_CpuIpc0Ch4"},
- {Os_IntChannel_Ipc_CpuIpc0Ch7Isr, RT_TRUE, "Ipc_CpuIpc0Ch7"},
- {Os_IntChannel_Ipc_CpuIpc0Ch10Isr, RT_TRUE, "Ipc_CpuIpc0Ch10"},
- {Os_Cross_Core_Ins0_Isr, RT_TRUE, "Cross_Core_Ins0"},
- {Os_Cross_Core_Ins1_Isr, RT_TRUE, "Cross_Core_Ins1"},
- {Os_Cross_Core_Ins2_Isr, RT_TRUE, "Cross_Core_Ins2"},
- {Os_Cross_Core_Ins3_Isr, RT_TRUE, "Cross_Core_Ins3"},
- {Os_Cross_Core_Ins4_Isr, RT_TRUE, "Cross_Core_Ins4"},
- {Os_Cross_Core_Ins5_Isr, RT_TRUE, "Cross_Core_Ins5"},
- {Os_IntChannel_Can5_DataIsr, RT_TRUE, "Can5_Data"},
- {Os_IntChannel_Can6_DataIsr, RT_TRUE, "Can6_Data"},
- {Os_IntChannel_Can7_DataIsr, RT_TRUE, "Can7_Data"},
- {Os_IntChannel_Can8_DataIsr, RT_TRUE, "Can8_Data"},
- {Os_IntChannel_Can9_DataIsr, RT_TRUE, "Can9_Data"},
- };
- const rt_size_t s100_mcu1_rt_irq_configs_count =
- sizeof(s100_mcu1_rt_irq_configs) / sizeof(s100_mcu1_rt_irq_configs[0]);
- rt_bool_t s100_board_irq_is_supported(int irq)
- {
- rt_size_t i;
- if ((irq >= 0) && (irq < 32))
- {
- return RT_TRUE;
- }
- for (i = 0; i < s100_mcu1_rt_irq_configs_count; i++)
- {
- if (s100_mcu1_rt_irq_configs[i].irq_number == irq)
- {
- return RT_TRUE;
- }
- }
- return RT_FALSE;
- }
|