18
18
.arch armv8-m.main
19
19
20
20
#include "irq_connect.h"
21
+ #include "nrf_sd_isr_vectors.h"
21
22
22
23
.section .text .STACK_INTERRUPTS, "x"
23
24
@@ -48,11 +49,8 @@ ConsumeOrForwardIRQ:
48
49
.globl SVC_Handler
49
50
.type SVC_Handler, %function
50
51
SVC_Handler:
52
+ LDR R0, =SOFTDEVICE_SVC_HANDLER_OFFSET
51
53
ForwardIRQ_ForwardToSoftDevice:
52
- / * Fetch current exception number * /
53
- MRS R0 , IPSR
54
- / * Get offset into exception vector (multiplying by 4 ) * /
55
- LSLS R0 , R0 , # 2
56
54
/* SoftDevice interrupt vector is located in softdevice_vector_forward_address */
57
55
LDR R1, =softdevice_vector_forward_address
58
56
LDR R1, [R1]
@@ -70,10 +68,7 @@ ForwardIRQ_ForwardToSoftDevice:
70
68
.globl CallSoftDeviceResetHandler
71
69
.type CallSoftDeviceResetHandler, %function
72
70
CallSoftDeviceResetHandler:
73
- / * Fetch current exception number * /
74
- MOV R0 , # 1
75
- / * Get offset into exception vector (multiplying by 4 ) * /
76
- LSLS R0 , R0 , # 2
71
+ LDR R0, =SOFTDEVICE_RESET_HANDLER_OFFSET
77
72
/* SoftDevice interrupt vector is located in softdevice_vector_forward_address */
78
73
LDR R1, =softdevice_vector_forward_address
79
74
LDR R1, [R1]
@@ -92,6 +87,7 @@ CallSoftDeviceResetHandler:
92
87
.type HardFault_Handler, "function"
93
88
HardFault_Handler:
94
89
LDR R3, =C_HardFault_Handler
90
+ LDR R0, =SOFTDEVICE_HARDFAULT_HANDLER_OFFSET
95
91
LDR R1, =ConsumeOrForwardIRQ
96
92
BX R1
97
93
@@ -102,6 +98,7 @@ HardFault_Handler:
102
98
.type CLOCK_POWER_IRQHandler, "function"
103
99
CLOCK_POWER_IRQHandler:
104
100
LDR R3, =C_POWER_CLOCK_Handler
101
+ LDR R0, =SOFTDEVICE_CLOCK_POWER_IRQHANDLER_OFFSET
105
102
LDR R1, =ConsumeOrForwardIRQ
106
103
BX R1
107
104
@@ -112,6 +109,7 @@ CLOCK_POWER_IRQHandler:
112
109
.type RADIO_0_IRQHandler, "function"
113
110
RADIO_0_IRQHandler:
114
111
LDR R3, =C_RADIO_Handler
112
+ LDR R0, =SOFTDEVICE_RADIO_0_IRQHANDLER_OFFSET
115
113
LDR R1, =ConsumeOrForwardIRQ
116
114
BX R1
117
115
@@ -122,6 +120,7 @@ RADIO_0_IRQHandler:
122
120
.type TIMER10_IRQHandler, "function"
123
121
TIMER10_IRQHandler:
124
122
LDR R3, =C_TIMER0_Handler
123
+ LDR R0, =SOFTDEVICE_TIMER10_IRQHANDLER_OFFSET
125
124
LDR R1, =ConsumeOrForwardIRQ
126
125
BX R1
127
126
@@ -132,6 +131,7 @@ TIMER10_IRQHandler:
132
131
.type GRTC_3_IRQHandler, "function"
133
132
GRTC_3_IRQHandler:
134
133
LDR R3, =C_RTC0_Handler
134
+ LDR R0, =SOFTDEVICE_GRTC_3_IRQHANDLER_OFFSET
135
135
LDR R1, =ConsumeOrForwardIRQ
136
136
BX R1
137
137
@@ -142,6 +142,7 @@ GRTC_3_IRQHandler:
142
142
.type CRACEN_IRQHandler, "function"
143
143
CRACEN_IRQHandler:
144
144
LDR R3, =C_RNG_Handler
145
+ LDR R0, =SOFTDEVICE_CRACEN_IRQHANDLER_OFFSET
145
146
LDR R1, =ConsumeOrForwardIRQ
146
147
BX R1
147
148
@@ -152,6 +153,7 @@ CRACEN_IRQHandler:
152
153
.type ECB00_IRQHandler, "function"
153
154
ECB00_IRQHandler:
154
155
LDR R3, =C_ECB_Handler
156
+ LDR R0, =SOFTDEVICE_ECB00_IRQHANDLER_OFFSET
155
157
LDR R1, =ConsumeOrForwardIRQ
156
158
BX R1
157
159
@@ -162,6 +164,7 @@ ECB00_IRQHandler:
162
164
.type AAR00_CCM00_IRQHandler, "function"
163
165
AAR00_CCM00_IRQHandler:
164
166
LDR R3, =C_CCM_Handler
167
+ LDR R0, =SOFTDEVICE_AAR00_CCM00_IRQHANDLER_OFFSET
165
168
LDR R1, =ConsumeOrForwardIRQ
166
169
BX R1
167
170
@@ -172,20 +175,9 @@ AAR00_CCM00_IRQHandler:
172
175
.type SWI00_IRQHandler, "function"
173
176
SWI00_IRQHandler:
174
177
LDR R3, =C_SIGNALLING_Handler
178
+ LDR R0, =SOFTDEVICE_SWI00_IRQHANDLER_OFFSET
175
179
LDR R1, =ConsumeOrForwardIRQ
176
180
BX R1
177
181
178
- #ifdef INCLUDE_FEATURE_MWU
179
- .thumb
180
- .thumb_func
181
- . align 1
182
- . global MWU_IRQHandler
183
- .type MWU_IRQHandler , "function" FEATURE_MWU
184
- MWU_IRQHandler:
185
- LDR R3 , =C_MWU_Handler
186
- LDR R1 , =ConsumeOrForwardIRQ
187
- BX R1
188
- #endif
189
-
190
182
.balign
191
183
.end /* End of file */
0 commit comments