]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/interrupts/girq17.c
Add PIC32MEC14xx port and demo application.
[freertos] / FreeRTOS / Demo / PIC32MEC14xx_MPLAB / src / MEC14xx / interrupts / girq17.c
1 /*****************************************************************************\r
2 * (c) 2014 Microchip Technology Inc. and its subsidiaries.\r
3 * You may use this software and any derivatives exclusively with\r
4 * Microchip products.\r
5 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".\r
6 * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,\r
7 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,\r
8 * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP\r
9 * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.\r
10 * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,\r
11 * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND\r
12 * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS\r
13 * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.\r
14 * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL\r
15 * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF\r
16 * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.\r
17 * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE\r
18 * OF THESE TERMS.\r
19 *****************************************************************************/\r
20 \r
21 /** @file girq17.c\r
22  *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32\r
23  */\r
24 /** @defgroup MEC14xx ISR\r
25  *  @{\r
26  */\r
27 \r
28 #include "appcfg.h"\r
29 #include "platform.h"\r
30 #include "MEC14xx/mec14xx.h"\r
31 #include "MEC14xx/mec14xx_girqs.h"\r
32 #include "MEC14xx/mec14xx_gpio.h"\r
33 #include "MEC14xx/mec14xx_trace_func.h"\r
34 \r
35 \r
36 #if GIRQ17_DISAGG == 0\r
37 \r
38 void __attribute__((weak, interrupt, nomips16, section(".girqs")))\r
39 girq17_isr(void)\r
40 {\r
41     JTVIC_GROUP_EN_CLR->w = (1ul<<9);\r
42 }\r
43 \r
44 #else\r
45 \r
46 void __attribute__((weak, interrupt, nomips16))\r
47 girq17_b0(void)\r
48 {\r
49     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 0);\r
50     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 0);\r
51 }\r
52 \r
53 void __attribute__((weak, interrupt, nomips16))\r
54 girq17_b1(void)\r
55 {\r
56     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 1);\r
57     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 1);\r
58 }\r
59 \r
60 void __attribute__((weak, interrupt, nomips16))\r
61 girq17_b2(void)\r
62 {\r
63     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 2);\r
64     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 2);\r
65 }\r
66 \r
67 void __attribute__((weak, interrupt, nomips16))\r
68 girq17_b3(void)\r
69 {\r
70     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 3);\r
71     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 3);\r
72 }\r
73 \r
74 void __attribute__((weak, interrupt, nomips16))\r
75 girq17_b4(void)\r
76 {\r
77     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 4);\r
78     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 4);\r
79 }\r
80 \r
81 void __attribute__((weak, interrupt, nomips16))\r
82 girq17_b5(void)\r
83 {\r
84     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 5);\r
85     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 5);\r
86 }\r
87 \r
88 void __attribute__((weak, interrupt, nomips16))\r
89 girq17_b6(void)\r
90 {\r
91     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 6);\r
92     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 6);\r
93 }\r
94 \r
95 void __attribute__((weak, interrupt, nomips16))\r
96 girq17_b7(void)\r
97 {\r
98     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 7);\r
99     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 7);\r
100 }\r
101 \r
102 void __attribute__((weak, interrupt, nomips16))\r
103 girq17_b8(void)\r
104 {\r
105     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 8);\r
106     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 8);\r
107 }\r
108 \r
109 void __attribute__((weak, interrupt, nomips16))\r
110 girq17_b9(void)\r
111 {\r
112     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 9);\r
113     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 9);\r
114 }\r
115 \r
116 void __attribute__((weak, interrupt, nomips16))\r
117 girq17_b10(void)\r
118 {\r
119     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 10);\r
120     JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 10);\r
121 }\r
122 \r
123 #endif\r
124 \r
125 /* end girq17.c */\r
126 /**   @}\r
127  */\r
128 \r