2 * Copyright (C) 2017 C-SKY Microsystems Co., Ltd. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 /******************************************************************************
19 * @brief source file for the interrupt server route
21 * @date 25. August 2017
22 ******************************************************************************/
23 #include <drv_common.h>
26 #ifndef CONFIG_KERNEL_NONE
27 #include <csi_kernel.h>
30 extern void dw_usart_irqhandler(int32_t idx);
31 extern void dw_timer_irqhandler(int32_t idx);
32 extern void dw_gpio_irqhandler(int32_t idx);
33 extern void dw_iic_irqhandler(int32_t idx);
34 extern void ck_rtc_irqhandler(int32_t idx);
35 extern void dw_spi_irqhandler(int32_t idx);
36 extern void dw_wdt_irqhandler(int32_t idx);
37 extern void ck_dma_irqhandler(int32_t idx);
38 extern void ck_aes_irqhandler(int32_t idx);
39 extern void ck_sha_irqhandler(int32_t idx);
40 extern void xPortSysTickHandler( void );
43 ({ unsigned int __v = (*(volatile unsigned int *) (addr)); __v; })
47 #ifndef CONFIG_KERNEL_NONE
48 #define CSI_INTRPT_ENTER() csi_kernel_intrpt_enter()
49 #define CSI_INTRPT_EXIT() csi_kernel_intrpt_exit()
51 #define CSI_INTRPT_ENTER()
52 #define CSI_INTRPT_EXIT()
57 ATTRIBUTE_ISR void CORET_IRQHandler(void)
61 xPortSysTickHandler();
64 #if defined(CONFIG_USART)
65 ATTRIBUTE_ISR void USART0_IRQHandler(void)
68 dw_usart_irqhandler(0);
72 ATTRIBUTE_ISR void USART1_IRQHandler(void)
75 dw_usart_irqhandler(1);
79 ATTRIBUTE_ISR void USART2_IRQHandler(void)
82 dw_usart_irqhandler(2);
86 ATTRIBUTE_ISR void USART3_IRQHandler(void)
89 dw_usart_irqhandler(3);
95 #if defined(CONFIG_TIMER)
96 ATTRIBUTE_ISR void TIMA0_IRQHandler(void)
99 dw_timer_irqhandler(0);
103 ATTRIBUTE_ISR void TIMA1_IRQHandler(void)
106 dw_timer_irqhandler(1);
110 ATTRIBUTE_ISR void TIMB0_IRQHandler(void)
113 dw_timer_irqhandler(2);
117 ATTRIBUTE_ISR void TIMB1_IRQHandler(void)
120 dw_timer_irqhandler(3);
126 #if defined(CONFIG_GPIO)
128 ATTRIBUTE_ISR void GPIO0_IRQHandler(void)
131 dw_gpio_irqhandler(0);
135 ATTRIBUTE_ISR void GPIO1_IRQHandler(void)
138 dw_gpio_irqhandler(1);
144 #if defined(CONFIG_IIC)
145 ATTRIBUTE_ISR void I2C0_IRQHandler(void)
148 dw_iic_irqhandler(0);
152 ATTRIBUTE_ISR void I2C1_IRQHandler(void)
155 dw_iic_irqhandler(1);
160 #if defined(CONFIG_RTC)
162 ATTRIBUTE_ISR void RTC_IRQHandler(void)
165 ck_rtc_irqhandler(0);
169 ATTRIBUTE_ISR void RTC1_IRQHandler(void)
172 ck_rtc_irqhandler(1);
177 #if defined(CONFIG_AES)
179 ATTRIBUTE_ISR void AES_IRQHandler(void)
182 ck_aes_irqhandler(0);
188 #if defined(CONFIG_TRNG)
189 ATTRIBUTE_ISR void TRNG_IRQHandler(void)
197 #if defined(CONFIG_RSA)
198 ATTRIBUTE_ISR void RSA_IRQHandler(void)
206 #if defined(CONFIG_SPI) && defined(CONFIG_GPIO)
207 ATTRIBUTE_ISR void SPI0_IRQHandler(void)
210 dw_spi_irqhandler(0);
214 ATTRIBUTE_ISR void SPI1_IRQHandler(void)
217 dw_spi_irqhandler(1);
222 #if defined(CONFIG_WDT)
223 ATTRIBUTE_ISR void WDT_IRQHandler(void)
226 dw_wdt_irqhandler(0);