Skip to content

Commit dc625dd

Browse files
author
wb
committed
Update exti
1 parent 08ee280 commit dc625dd

File tree

2 files changed

+32
-14
lines changed

2 files changed

+32
-14
lines changed

os/hal/ports/WB32/WB32F3G71xx/wb32_isr.c

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI0_IRQ_VECTOR) {
6363
OSAL_IRQ_PROLOGUE();
6464

6565
pr = EXTI->PR & EXTI_PR_PR0;
66-
EXTI->PR = pr;
6766

6867
exti_serve_irq(pr, 0);
6968

69+
EXTI->PR = EXTI_PR_PR0;
70+
7071
OSAL_IRQ_EPILOGUE();
7172
}
7273
#endif
@@ -83,10 +84,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI1_IRQ_VECTOR) {
8384
OSAL_IRQ_PROLOGUE();
8485

8586
pr = EXTI->PR & EXTI_PR_PR1;
86-
EXTI->PR = pr;
8787

8888
exti_serve_irq(pr, 1);
8989

90+
EXTI->PR = EXTI_PR_PR1;
91+
9092
OSAL_IRQ_EPILOGUE();
9193
}
9294
#endif
@@ -103,9 +105,10 @@ OSAL_IRQ_HANDLER(WB32_EXTI2_IRQ_VECTOR) {
103105
OSAL_IRQ_PROLOGUE();
104106

105107
pr = EXTI->PR & EXTI_PR_PR2;
106-
EXTI->PR = pr;
107108

108109
exti_serve_irq(pr, 2);
110+
111+
EXTI->PR = EXTI_PR_PR2;
109112

110113
OSAL_IRQ_EPILOGUE();
111114
}
@@ -123,10 +126,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI3_IRQ_VECTOR) {
123126
OSAL_IRQ_PROLOGUE();
124127

125128
pr = EXTI->PR & EXTI_PR_PR3;
126-
EXTI->PR = pr;
127129

128130
exti_serve_irq(pr, 3);
129131

132+
EXTI->PR = EXTI_PR_PR3;
133+
130134
OSAL_IRQ_EPILOGUE();
131135
}
132136
#endif
@@ -143,10 +147,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI4_IRQ_VECTOR) {
143147
OSAL_IRQ_PROLOGUE();
144148

145149
pr = EXTI->PR & EXTI_PR_PR4;
146-
EXTI->PR = pr;
147150

148151
exti_serve_irq(pr, 4);
149152

153+
EXTI->PR = EXTI_PR_PR4;
154+
150155
OSAL_IRQ_EPILOGUE();
151156
}
152157
#endif
@@ -164,14 +169,16 @@ OSAL_IRQ_HANDLER(WB32_EXTI9_5_IRQ_VECTOR) {
164169

165170
pr = EXTI->PR & (EXTI_PR_PR5 | EXTI_PR_PR6 | EXTI_PR_PR7 |
166171
EXTI_PR_PR8 | EXTI_PR_PR9);
167-
EXTI->PR = pr;
168172

169173
exti_serve_irq(pr, 5);
170174
exti_serve_irq(pr, 6);
171175
exti_serve_irq(pr, 7);
172176
exti_serve_irq(pr, 8);
173177
exti_serve_irq(pr, 9);
174178

179+
EXTI->PR = EXTI_PR_PR5 | EXTI_PR_PR6 | EXTI_PR_PR7 |
180+
EXTI_PR_PR8 | EXTI_PR_PR9;
181+
175182
OSAL_IRQ_EPILOGUE();
176183
}
177184
#endif
@@ -189,7 +196,6 @@ OSAL_IRQ_HANDLER(WB32_EXTI15_10_IRQ_VECTOR) {
189196

190197
pr = EXTI->PR & (EXTI_PR_PR10 | EXTI_PR_PR11 | EXTI_PR_PR12 |
191198
EXTI_PR_PR13 | EXTI_PR_PR14 | EXTI_PR_PR15);
192-
EXTI->PR = pr;
193199

194200
exti_serve_irq(pr, 10);
195201
exti_serve_irq(pr, 11);
@@ -198,6 +204,9 @@ OSAL_IRQ_HANDLER(WB32_EXTI15_10_IRQ_VECTOR) {
198204
exti_serve_irq(pr, 14);
199205
exti_serve_irq(pr, 15);
200206

207+
EXTI->PR = EXTI_PR_PR10 | EXTI_PR_PR11 | EXTI_PR_PR12 |
208+
EXTI_PR_PR13 | EXTI_PR_PR14 | EXTI_PR_PR15;
209+
201210
OSAL_IRQ_EPILOGUE();
202211
}
203212
#endif

os/hal/ports/WB32/WB32FQ95xx/wb32_isr.c

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI0_IRQ_VECTOR) {
6363
OSAL_IRQ_PROLOGUE();
6464

6565
pr = EXTI->PR & EXTI_PR_PR0;
66-
EXTI->PR = pr;
6766

6867
exti_serve_irq(pr, 0);
6968

69+
EXTI->PR = EXTI_PR_PR0;
70+
7071
OSAL_IRQ_EPILOGUE();
7172
}
7273
#endif
@@ -83,10 +84,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI1_IRQ_VECTOR) {
8384
OSAL_IRQ_PROLOGUE();
8485

8586
pr = EXTI->PR & EXTI_PR_PR1;
86-
EXTI->PR = pr;
8787

8888
exti_serve_irq(pr, 1);
8989

90+
EXTI->PR = EXTI_PR_PR1;
91+
9092
OSAL_IRQ_EPILOGUE();
9193
}
9294
#endif
@@ -103,9 +105,10 @@ OSAL_IRQ_HANDLER(WB32_EXTI2_IRQ_VECTOR) {
103105
OSAL_IRQ_PROLOGUE();
104106

105107
pr = EXTI->PR & EXTI_PR_PR2;
106-
EXTI->PR = pr;
107108

108109
exti_serve_irq(pr, 2);
110+
111+
EXTI->PR = EXTI_PR_PR2;
109112

110113
OSAL_IRQ_EPILOGUE();
111114
}
@@ -123,10 +126,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI3_IRQ_VECTOR) {
123126
OSAL_IRQ_PROLOGUE();
124127

125128
pr = EXTI->PR & EXTI_PR_PR3;
126-
EXTI->PR = pr;
127129

128130
exti_serve_irq(pr, 3);
129131

132+
EXTI->PR = EXTI_PR_PR3;
133+
130134
OSAL_IRQ_EPILOGUE();
131135
}
132136
#endif
@@ -143,10 +147,11 @@ OSAL_IRQ_HANDLER(WB32_EXTI4_IRQ_VECTOR) {
143147
OSAL_IRQ_PROLOGUE();
144148

145149
pr = EXTI->PR & EXTI_PR_PR4;
146-
EXTI->PR = pr;
147150

148151
exti_serve_irq(pr, 4);
149152

153+
EXTI->PR = EXTI_PR_PR4;
154+
150155
OSAL_IRQ_EPILOGUE();
151156
}
152157
#endif
@@ -164,14 +169,16 @@ OSAL_IRQ_HANDLER(WB32_EXTI9_5_IRQ_VECTOR) {
164169

165170
pr = EXTI->PR & (EXTI_PR_PR5 | EXTI_PR_PR6 | EXTI_PR_PR7 |
166171
EXTI_PR_PR8 | EXTI_PR_PR9);
167-
EXTI->PR = pr;
168172

169173
exti_serve_irq(pr, 5);
170174
exti_serve_irq(pr, 6);
171175
exti_serve_irq(pr, 7);
172176
exti_serve_irq(pr, 8);
173177
exti_serve_irq(pr, 9);
174178

179+
EXTI->PR = EXTI_PR_PR5 | EXTI_PR_PR6 | EXTI_PR_PR7 |
180+
EXTI_PR_PR8 | EXTI_PR_PR9;
181+
175182
OSAL_IRQ_EPILOGUE();
176183
}
177184
#endif
@@ -189,7 +196,6 @@ OSAL_IRQ_HANDLER(WB32_EXTI15_10_IRQ_VECTOR) {
189196

190197
pr = EXTI->PR & (EXTI_PR_PR10 | EXTI_PR_PR11 | EXTI_PR_PR12 |
191198
EXTI_PR_PR13 | EXTI_PR_PR14 | EXTI_PR_PR15);
192-
EXTI->PR = pr;
193199

194200
exti_serve_irq(pr, 10);
195201
exti_serve_irq(pr, 11);
@@ -198,6 +204,9 @@ OSAL_IRQ_HANDLER(WB32_EXTI15_10_IRQ_VECTOR) {
198204
exti_serve_irq(pr, 14);
199205
exti_serve_irq(pr, 15);
200206

207+
EXTI->PR = EXTI_PR_PR10 | EXTI_PR_PR11 | EXTI_PR_PR12 |
208+
EXTI_PR_PR13 | EXTI_PR_PR14 | EXTI_PR_PR15;
209+
201210
OSAL_IRQ_EPILOGUE();
202211
}
203212
#endif

0 commit comments

Comments
 (0)