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
22 ******************************************************************************/
23 #include <drv_common.h>
26 #ifndef CONFIG_KERNEL_NONE
27 #include <csi_kernel.h>
31 extern void dw_spi_irqhandler(int32_t idx);
32 extern void dw_usart_irqhandler(int32_t idx);
33 extern void dw_iic_irqhandler(int32_t idx);
35 extern void ck_usi_irqhandler(int idx);
37 extern void ck_spu_irqhandler(int32_t idx);
38 extern void dw_timer_irqhandler(int32_t idx);
39 extern void dw_gpio_irqhandler(int32_t idx);
40 extern void ck_rtc_irqhandler(int32_t idx);
41 extern void dw_wdt_irqhandler(int32_t idx);
42 extern void ck_dma_irqhandler(int32_t idx);
43 extern void ck_aes_irqhandler(int32_t idx);
44 extern void ck_sha_irqhandler(int32_t idx);
45 #ifdef CONFIG_KERNEL_FREERTOS
46 extern void CoretimeIsr(void);
47 extern void CKPendSVIsr(void);
49 extern void systick_handler(void);
50 extern void xPortSysTickHandler(void);
51 extern void OSTimeTick(void);
54 ({ unsigned int __v = (*(volatile unsigned int *) (addr)); __v; })
56 #ifndef CONFIG_KERNEL_NONE
57 #define CSI_INTRPT_ENTER() csi_kernel_intrpt_enter()
58 #define CSI_INTRPT_EXIT() csi_kernel_intrpt_exit()
60 #define CSI_INTRPT_ENTER()
61 #define CSI_INTRPT_EXIT()
64 ATTRIBUTE_ISR void CORET_IRQHandler(void)
66 #ifndef CONFIG_KERNEL_FREERTOS
72 #if defined(CONFIG_KERNEL_RHINO)
74 #elif defined(CONFIG_KERNEL_FREERTOS)
75 xPortSysTickHandler();
76 #elif defined(CONFIG_KERNEL_UCOS)
80 #ifndef CONFIG_KERNEL_FREERTOS
86 ATTRIBUTE_ISR void SPU_IRQHandler(void)
93 ATTRIBUTE_ISR void SPI0_IRQHandler(void)
100 ATTRIBUTE_ISR void SPI1_IRQHandler(void)
103 dw_spi_irqhandler(1);
107 ATTRIBUTE_ISR void I2C0_IRQHandler(void)
110 dw_iic_irqhandler(0);
114 ATTRIBUTE_ISR void I2C1_IRQHandler(void)
117 dw_iic_irqhandler(1);
121 ATTRIBUTE_ISR void USART0_IRQHandler(void)
124 dw_usart_irqhandler(0);
128 ATTRIBUTE_ISR void USART1_IRQHandler(void)
131 dw_usart_irqhandler(1);
135 ATTRIBUTE_ISR void USART2_IRQHandler(void)
138 dw_usart_irqhandler(2);
142 ATTRIBUTE_ISR void USART3_IRQHandler(void)
145 dw_usart_irqhandler(3);
149 ATTRIBUTE_ISR void USI0_IRQHandler(void)
152 ck_usi_irqhandler(0);
156 ATTRIBUTE_ISR void USI1_IRQHandler(void)
159 ck_usi_irqhandler(1);
163 ATTRIBUTE_ISR void TIMA0_IRQHandler(void)
166 dw_timer_irqhandler(0);
170 ATTRIBUTE_ISR void TIMA1_IRQHandler(void)
173 dw_timer_irqhandler(1);
176 ATTRIBUTE_ISR void TIMB0_IRQHandler(void)
179 dw_timer_irqhandler(2);
183 ATTRIBUTE_ISR void TIMB1_IRQHandler(void)
186 dw_timer_irqhandler(3);
190 ATTRIBUTE_ISR void TIM34567_IRQHandler(void)
193 dw_timer_irqhandler(4);
197 ATTRIBUTE_ISR void GPIOA_IRQHandler(void)
200 dw_gpio_irqhandler(0);
204 ATTRIBUTE_ISR void GPIOB_IRQHandler(void)
207 dw_gpio_irqhandler(1);
211 ATTRIBUTE_ISR void RTC_IRQHandler(void)
214 ck_rtc_irqhandler(0);
218 ATTRIBUTE_ISR void AES_IRQHandler(void)
221 ck_aes_irqhandler(0);
225 ATTRIBUTE_ISR void SHA_IRQHandler(void)
228 ck_sha_irqhandler(0);
232 ATTRIBUTE_ISR void WDT_IRQHandler(void)
235 dw_wdt_irqhandler(0);
239 ATTRIBUTE_ISR void DMAC_IRQHandler(void)
242 ck_dma_irqhandler(0);