1655 lines
93 KiB
Alloy

GNU assembler version 2.40.0 (arm-none-eabi)
using BFD version (GNU Tools for STM32 12.3.rel1.20240612-1315) 2.40.0.20230627.
options passed : -march=armv7-m -mcpu=cortex-m4 -adglns -g -mthumb --warn
input file : task2.s
output file : task2.o
target : arm-none-eabi
time stamp : 2026-03-31T13:53:51.000+0200
1 #****************************************************************************************#
2 # Project: task2 - ASM: Interrupts
3 # File: task2.s
4 # Hardware: STefi Light v1.1
5 # Processor: STM32G431KBT6U
6 #****************************************************************************************#
7
8 .include "G431_addr.s"
1 #*****************************************************************************************
2 # Project: task2 - switch triggered LEDs
3 # File: G431_addr.s
4 #
5 # Language: ASM
6 #
7 # Hardware: STefi v1.1
8 # Processor: STM32G431KBT6U
9 #
10 # Author: Manuel Lederhofer
11 # Datum: 20.08.2015
12 #
13 # Version: 3.0
14 # History:
15 # 20.08.2015 ML create file
16 # 07.12.2018 ML port from MKL05Z32VLC4 to STM32L476RG
17 # 27.02.2019 ML change from absolute addresses to BASE + OFFSET notation and
18 # add more timer modules
19 # 09.03.2022 ML port from STM32F042K6T6 to STM32G431KBT6U
20 #
21 # Status: working
22 #
23 # Description:
24 # Connects assembly addresses for STM32G431 MCU to symbolic register names
25 # used in the datasheets.
26 #
27 # Notes:
28 # - default MCU speed at startup is 16 MHz.
29 #
30 # ToDo:
31 # - none -
32 #*****************************************************************************************
33
34
35 #----------------------------------------------------------------------------------------#
36 # MCU Bus Base Addresses
37 #----------------------------------------------------------------------------------------#
38
39 .equ APB1_BASE, 0x40000000
40 .equ APB2_BASE, 0x40010000
41 .equ AHB1_BASE, 0x40020000
42 .equ AHB2_BASE, 0x48000000
43 .equ AHB3_BASE, 0xA0000000 //!!! FSMC + QSPI registers = AHB3 ?
44 .equ PPB_BASE, 0xE0000000 /* Cortex M4 with FPU Internal Peripherals */
45
46 #----------------------------------------------------------------------------------------#
47 # System Configuration Controller
48 #
49 # address space: 0x4001_0000 .. 0x4001_0029
50 #----------------------------------------------------------------------------------------#
51
52 .equ SYSCFG_BASE, APB2_BASE
53
54 .equ SYSCFG_MEMRMP, SYSCFG_BASE + 0x00
55 .equ SYSCFG_CFGR1, SYSCFG_BASE + 0x04
56 .equ SYSCFG_EXTICR1, SYSCFG_BASE + 0x08
57 .equ SYSCFG_EXTICR2, SYSCFG_BASE + 0x0C
58 .equ SYSCFG_EXTICR3, SYSCFG_BASE + 0x10
59 .equ SYSCFG_EXTICR4, SYSCFG_BASE + 0x14
60 .equ SYSCFG_SCSR, SYSCFG_BASE + 0x18
61 .equ SYSCFG_CFGR2, SYSCFG_BASE + 0x1C
62 .equ SYSCFG_SWPR, SYSCFG_BASE + 0x20
63 .equ SYSCFG_SKR, SYSCFG_BASE + 0x24
64
65 #----------------------------------------------------------------------------------------#
66 # Extended Interrupts And Events Controller
67 #
68 # address space: 0x4001_0400 .. 0x4001_07FF
69 #----------------------------------------------------------------------------------------#
70
71 .equ EXTI_BASE, APB2_BASE + 0x400
72
73 .equ EXTI_IMR1, EXTI_BASE + 0x00
74 .equ EXTI_EMR1, EXTI_BASE + 0x04
75 .equ EXTI_RTSR1, EXTI_BASE + 0x08
76 .equ EXTI_FTSR1, EXTI_BASE + 0x0C
77 .equ EXTI_SWIER1, EXTI_BASE + 0x10
78 .equ EXTI_PR1, EXTI_BASE + 0x14
79
80 .equ EXTI_IMR2, EXTI_BASE + 0x20
81 .equ EXTI_EMR2, EXTI_BASE + 0x24
82 .equ EXTI_RTSR2, EXTI_BASE + 0x28
83 .equ EXTI_FTSR2, EXTI_BASE + 0x2C
84 .equ EXTI_SWIER2, EXTI_BASE + 0x30
85 .equ EXTI_PR2, EXTI_BASE + 0x34
86
87 #----------------------------------------------------------------------------------------#
88 # TIM module common configuration
89 #
90 # Every timer has 1 KB address space:
91 #
92 # TIM2 .. TIM7: 0x4000_0000 .. 0x4000_17FF (APB1)
93 # TIM1: 0x4001_2C00 .. 0x4001_2FFF (APB2)
94 # TIM8: 0x4001_3400 .. 0x4001_37FF (APB2)
95 # TIM15 .. TIM17: 0x4001_4000 .. 0x4001_4BFF (APB2)
96 # TIM20: 0x4001_5000 .. 0x4001_53FF (APB2)
97 #
98 # note:
99 # TIM2 + TIM5 are 32 bit timers. All others have a width of 16 bit.
100 # Below, the timers on one line share a common register set description.
101 #
102 # TIM 1, 8, 20 advances control timers
103 # TIM 2, 3, 4, 5 general purpose timers (TIM2/5 = 32 bit)
104 # TIM 15 general purpose timers
105 # TIM 16, 17 general purpose timers
106 # TIM 6, 7 basic timers
107 #----------------------------------------------------------------------------------------#
108
109 .equ TIM_CR1_OFFSET, 0x00
110 .equ TIM_CR2_OFFSET, 0x04
111 .equ TIM_SMCR_OFFSET, 0x08
112 .equ TIM_DIER_OFFSET, 0x0C
113 .equ TIM_SR_OFFSET, 0x10
114 .equ TIM_EGR_OFFSET, 0x14
115 .equ TIM_CCMR1_OFFSET, 0x18
116 .equ TIM_CCMR2_OFFSET, 0x1C
117 .equ TIM_CCER_OFFSET, 0x20
118 .equ TIM_CNT_OFFSET, 0x24
119 .equ TIM_PSC_OFFSET, 0x28
120 .equ TIM_ARR_OFFSET, 0x2C
121 .equ TIM_RCR_OFFSET, 0x30
122 .equ TIM_CCR1_OFFSET, 0x34
123 .equ TIM_CCR2_OFFSET, 0x38
124 .equ TIM_CCR3_OFFSET, 0x3C
125 .equ TIM_CCR4_OFFSET, 0x40
126 .equ TIM_BDTR_OFFSET, 0x44
127 .equ TIM_CCR5_OFFSET, 0x48
128 .equ TIM_CCR6_OFFSET, 0x4C
129 .equ TIM_CCMR3_OFFSET, 0x50
130 .equ TIM_DTR2_OFFSET, 0x54
131 .equ TIM_ECR_OFFSET, 0x58
132 .equ TIM_TISEL_OFFSET, 0x5C
133 .equ TIM_AF1_OFFSET, 0x60
134 .equ TIM_AF2_OFFSET, 0x64
135 .equ TIM_OR1_OFFSET, 0x68
136
137 .equ TIM_DCR_OFFSET, 0x3DC
138 .equ TIM_DMAR_OFFSET, 0x3E0
139
140 #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
141
142 #--- Genral Purpose Timer - TIM2 / address space: 0x4000_0000 .. 0x4000_03FF
143
144 .equ TIM2_BASE, APB1_BASE
145
146 .equ TIM2_CR1, TIM2_BASE + TIM_CR1_OFFSET
147 .equ TIM2_CR2, TIM2_BASE + TIM_CR2_OFFSET
148 .equ TIM2_SMCR, TIM2_BASE + TIM_SMCR_OFFSET
149 .equ TIM2_DIER, TIM2_BASE + TIM_DIER_OFFSET
150 .equ TIM2_SR, TIM2_BASE + TIM_SR_OFFSET
151 .equ TIM2_EGR, TIM2_BASE + TIM_EGR_OFFSET
152 .equ TIM2_CCMR1, TIM2_BASE + TIM_CCMR1_OFFSET
153 .equ TIM2_CCMR2, TIM2_BASE + TIM_CCMR2_OFFSET
154 .equ TIM2_CCER, TIM2_BASE + TIM_CCER_OFFSET
155 .equ TIM2_CNT, TIM2_BASE + TIM_CNT_OFFSET
156 .equ TIM2_PSC, TIM2_BASE + TIM_PSC_OFFSET
157 .equ TIM2_ARR, TIM2_BASE + TIM_ARR_OFFSET
158
159 .equ TIM2_CCR1, TIM2_BASE + TIM_CCR1_OFFSET
160 .equ TIM2_CCR2, TIM2_BASE + TIM_CCR2_OFFSET
161 .equ TIM2_CCR3, TIM2_BASE + TIM_CCR3_OFFSET
162 .equ TIM2_CCR4, TIM2_BASE + TIM_CCR4_OFFSET
163
164 .equ TIM2_ECR, TIM2_BASE + TIM_ECR_OFFSET
165 .equ TIM2_TISEL, TIM2_BASE + TIM_TISEL_OFFSET
166 .equ TIM2_AF1, TIM2_BASE + TIM_ECR_OFFSET
167 .equ TIM2_AF2, TIM2_BASE + TIM_ECR_OFFSET
168
169 .equ TIM2_DCR, TIM2_BASE + TIM_DCR_OFFSET
170 .equ TIM2_DMAR, TIM2_BASE + TIM_DMAR_OFFSET
171
172 #--- Genral Purpose Timer - TIM3 / address space: 0x4000_0400 .. 0x4000_07FF
173
174 .equ TIM3_BASE, APB1_BASE + 0x400
175
176 .equ TIM3_CR1, TIM3_BASE + TIM_CR1_OFFSET
177 .equ TIM3_CR2, TIM3_BASE + TIM_CR2_OFFSET
178 .equ TIM3_SMCR, TIM3_BASE + TIM_SMCR_OFFSET
179 .equ TIM3_DIER, TIM3_BASE + TIM_DIER_OFFSET
180 .equ TIM3_SR, TIM3_BASE + TIM_SR_OFFSET
181 .equ TIM3_EGR, TIM3_BASE + TIM_EGR_OFFSET
182 .equ TIM3_CCMR1, TIM3_BASE + TIM_CCMR1_OFFSET
183 .equ TIM3_CCMR2, TIM3_BASE + TIM_CCMR2_OFFSET
184 .equ TIM3_CCER, TIM3_BASE + TIM_CCER_OFFSET
185 .equ TIM3_CNT, TIM3_BASE + TIM_CNT_OFFSET
186 .equ TIM3_PSC, TIM3_BASE + TIM_PSC_OFFSET
187 .equ TIM3_ARR, TIM3_BASE + TIM_ARR_OFFSET
188
189 .equ TIM3_CCR1, TIM3_BASE + TIM_CCR1_OFFSET
190 .equ TIM3_CCR2, TIM3_BASE + TIM_CCR2_OFFSET
191 .equ TIM3_CCR3, TIM3_BASE + TIM_CCR3_OFFSET
192 .equ TIM3_CCR4, TIM3_BASE + TIM_CCR4_OFFSET
193
194 .equ TIM3_ECR, TIM3_BASE + TIM_ECR_OFFSET
195 .equ TIM3_TISEL, TIM3_BASE + TIM_TISEL_OFFSET
196 .equ TIM3_AF1, TIM3_BASE + TIM_ECR_OFFSET
197 .equ TIM3_AF2, TIM3_BASE + TIM_ECR_OFFSET
198
199 .equ TIM3_DCR, TIM3_BASE + TIM_DCR_OFFSET
200 .equ TIM3_DMAR, TIM3_BASE + TIM_DMAR_OFFSET
201
202 #--- Genral Purpose Timer - TIM4 / address space: 0x4000_0800 .. 0x4000_0BFF
203
204 .equ TIM4_BASE, APB1_BASE + 0x800
205
206 .equ TIM4_CR1, TIM4_BASE + TIM_CR1_OFFSET
207 .equ TIM4_CR2, TIM4_BASE + TIM_CR2_OFFSET
208 .equ TIM4_SMCR, TIM4_BASE + TIM_SMCR_OFFSET
209 .equ TIM4_DIER, TIM4_BASE + TIM_DIER_OFFSET
210 .equ TIM4_SR, TIM4_BASE + TIM_SR_OFFSET
211 .equ TIM4_EGR, TIM4_BASE + TIM_EGR_OFFSET
212 .equ TIM4_CCMR1, TIM4_BASE + TIM_CCMR1_OFFSET
213 .equ TIM4_CCMR2, TIM4_BASE + TIM_CCMR2_OFFSET
214 .equ TIM4_CCER, TIM4_BASE + TIM_CCER_OFFSET
215 .equ TIM4_CNT, TIM4_BASE + TIM_CNT_OFFSET
216 .equ TIM4_PSC, TIM4_BASE + TIM_PSC_OFFSET
217 .equ TIM4_ARR, TIM4_BASE + TIM_ARR_OFFSET
218
219 .equ TIM4_CCR1, TIM4_BASE + TIM_CCR1_OFFSET
220 .equ TIM4_CCR2, TIM4_BASE + TIM_CCR2_OFFSET
221 .equ TIM4_CCR3, TIM4_BASE + TIM_CCR3_OFFSET
222 .equ TIM4_CCR4, TIM4_BASE + TIM_CCR4_OFFSET
223
224 .equ TIM4_ECR, TIM4_BASE + TIM_ECR_OFFSET
225 .equ TIM4_TISEL, TIM4_BASE + TIM_TISEL_OFFSET
226 .equ TIM4_AF1, TIM4_BASE + TIM_ECR_OFFSET
227 .equ TIM4_AF2, TIM4_BASE + TIM_ECR_OFFSET
228
229 .equ TIM4_DCR, TIM4_BASE + TIM_DCR_OFFSET
230 .equ TIM4_DMAR, TIM4_BASE + TIM_DMAR_OFFSET
231
232 #--- Genral Purpose Timer - TIM5 / address space: 0x4000_0C00 .. 0x4000_0FFF
233
234 .equ TIM5_BASE, APB1_BASE + 0xC00
235
236 .equ TIM5_CR1, TIM5_BASE + TIM_CR1_OFFSET
237 .equ TIM5_CR2, TIM5_BASE + TIM_CR2_OFFSET
238 .equ TIM5_SMCR, TIM5_BASE + TIM_SMCR_OFFSET
239 .equ TIM5_DIER, TIM5_BASE + TIM_DIER_OFFSET
240 .equ TIM5_SR, TIM5_BASE + TIM_SR_OFFSET
241 .equ TIM5_EGR, TIM5_BASE + TIM_EGR_OFFSET
242 .equ TIM5_CCMR1, TIM5_BASE + TIM_CCMR1_OFFSET
243 .equ TIM5_CCMR2, TIM5_BASE + TIM_CCMR2_OFFSET
244 .equ TIM5_CCER, TIM5_BASE + TIM_CCER_OFFSET
245 .equ TIM5_CNT, TIM5_BASE + TIM_CNT_OFFSET
246 .equ TIM5_PSC, TIM5_BASE + TIM_PSC_OFFSET
247 .equ TIM5_ARR, TIM5_BASE + TIM_ARR_OFFSET
248
249 .equ TIM5_CCR1, TIM5_BASE + TIM_CCR1_OFFSET
250 .equ TIM5_CCR2, TIM5_BASE + TIM_CCR2_OFFSET
251 .equ TIM5_CCR3, TIM5_BASE + TIM_CCR3_OFFSET
252 .equ TIM5_CCR4, TIM5_BASE + TIM_CCR4_OFFSET
253
254 .equ TIM5_ECR, TIM5_BASE + TIM_ECR_OFFSET
255 .equ TIM5_TISEL, TIM5_BASE + TIM_TISEL_OFFSET
256 .equ TIM5_AF1, TIM5_BASE + TIM_ECR_OFFSET
257 .equ TIM5_AF2, TIM5_BASE + TIM_ECR_OFFSET
258
259 .equ TIM5_DCR, TIM5_BASE + TIM_DCR_OFFSET
260 .equ TIM5_DMAR, TIM5_BASE + TIM_DMAR_OFFSET
261
262 #--- Basic Timer - TIM6 / address space: 0x4000_1000 .. 0x4000_13FF
263
264 .equ TIM6_BASE, APB1_BASE + 0x1000
265
266 .equ TIM6_CR1, TIM6_BASE + TIM_CR1_OFFSET
267 .equ TIM6_CR2, TIM6_BASE + TIM_CR2_OFFSET
268
269 .equ TIM6_DIER, TIM6_BASE + TIM_DIER_OFFSET
270 .equ TIM6_SR, TIM6_BASE + TIM_SR_OFFSET
271 .equ TIM6_EGR, TIM6_BASE + TIM_EGR_OFFSET
272
273 .equ TIM6_CNT, TIM6_BASE + TIM_CNT_OFFSET
274 .equ TIM6_PSC, TIM6_BASE + TIM_PSC_OFFSET
275 .equ TIM6_ARR, TIM6_BASE + TIM_ARR_OFFSET
276
277 #--- Basic Timer - TIM7 / address space: 0x4000_1400 .. 0x4000_17FF
278
279 .equ TIM7_BASE, APB1_BASE + 0x1400
280
281 .equ TIM7_CR1, TIM7_BASE + TIM_CR1_OFFSET
282 .equ TIM7_CR2, TIM7_BASE + TIM_CR2_OFFSET
283
284 .equ TIM7_DIER, TIM7_BASE + TIM_DIER_OFFSET
285 .equ TIM7_SR, TIM7_BASE + TIM_SR_OFFSET
286 .equ TIM7_EGR, TIM7_BASE + TIM_EGR_OFFSET
287
288 .equ TIM7_CNT, TIM7_BASE + TIM_CNT_OFFSET
289 .equ TIM7_PSC, TIM7_BASE + TIM_PSC_OFFSET
290 .equ TIM7_ARR, TIM7_BASE + TIM_ARR_OFFSET
291
292 #--- Advanced Control Timer - TIM1 / address space: 0x4001_2C00 .. 0x4001_2FFF
293
294 .equ TIM1_BASE, APB2_BASE + 0x2C00
295
296 .equ TIM1_CR1, TIM1_BASE + TIM_CR1_OFFSET
297 .equ TIM1_CR2, TIM1_BASE + TIM_CR2_OFFSET
298 .equ TIM1_SMCR, TIM1_BASE + TIM_SMCR_OFFSET
299 .equ TIM1_DIER, TIM1_BASE + TIM_DIER_OFFSET
300 .equ TIM1_SR, TIM1_BASE + TIM_SR_OFFSET
301 .equ TIM1_EGR, TIM1_BASE + TIM_EGR_OFFSET
302 .equ TIM1_CCMR1, TIM1_BASE + TIM_CCMR1_OFFSET
303 .equ TIM1_CCMR2, TIM1_BASE + TIM_CCMR2_OFFSET
304 .equ TIM1_CCER, TIM1_BASE + TIM_CCER_OFFSET
305 .equ TIM1_CNT, TIM1_BASE + TIM_CNT_OFFSET
306 .equ TIM1_PSC, TIM1_BASE + TIM_PSC_OFFSET
307 .equ TIM1_ARR, TIM1_BASE + TIM_ARR_OFFSET
308 .equ TIM1_RCR, TIM1_BASE + TIM_RCR_OFFSET
309 .equ TIM1_CCR1, TIM1_BASE + TIM_CCR1_OFFSET
310 .equ TIM1_CCR2, TIM1_BASE + TIM_CCR2_OFFSET
311 .equ TIM1_CCR3, TIM1_BASE + TIM_CCR3_OFFSET
312 .equ TIM1_CCR4, TIM1_BASE + TIM_CCR4_OFFSET
313 .equ TIM1_BDTR, TIM1_BASE + TIM_BDTR_OFFSET
314 .equ TIM1_CCR5, TIM1_BASE + TIM_CCR5_OFFSET
315 .equ TIM1_CCR6, TIM1_BASE + TIM_CCR6_OFFSET
316 .equ TIM1_CCMR3, TIM1_BASE + TIM_CCMR3_OFFSET
317 .equ TIM1_DTR2, TIM1_BASE + TIM_DTR2_OFFSET
318 .equ TIM1_ECR, TIM1_BASE + TIM_ECR_OFFSET
319 .equ TIM1_TISEL, TIM1_BASE + TIM_TISEL_OFFSET
320 .equ TIM1_AF1, TIM1_BASE + TIM_AF1_OFFSET
321 .equ TIM1_AF2, TIM1_BASE + TIM_AF2_OFFSET
322
323 .equ TIM1_DCR, TIM1_BASE + TIM_DCR_OFFSET
324 .equ TIM1_DMAR, TIM1_BASE + TIM_DMAR_OFFSET
325
326 #--- Advanced Control Timer - TIM8 / address space: 0x4001_3400 .. 0x4001_37FF
327
328 .equ TIM8_BASE, APB2_BASE + 0x3400
329
330 .equ TIM8_CR1, TIM8_BASE + TIM_CR1_OFFSET
331 .equ TIM8_CR2, TIM8_BASE + TIM_CR2_OFFSET
332 .equ TIM8_SMCR, TIM8_BASE + TIM_SMCR_OFFSET
333 .equ TIM8_DIER, TIM8_BASE + TIM_DIER_OFFSET
334 .equ TIM8_SR, TIM8_BASE + TIM_SR_OFFSET
335 .equ TIM8_EGR, TIM8_BASE + TIM_EGR_OFFSET
336 .equ TIM8_CCMR1, TIM8_BASE + TIM_CCMR1_OFFSET
337 .equ TIM8_CCMR2, TIM8_BASE + TIM_CCMR2_OFFSET
338 .equ TIM8_CCER, TIM8_BASE + TIM_CCER_OFFSET
339 .equ TIM8_CNT, TIM8_BASE + TIM_CNT_OFFSET
340 .equ TIM8_PSC, TIM8_BASE + TIM_PSC_OFFSET
341 .equ TIM8_ARR, TIM8_BASE + TIM_ARR_OFFSET
342 .equ TIM8_RCR, TIM8_BASE + TIM_RCR_OFFSET
343 .equ TIM8_CCR1, TIM8_BASE + TIM_CCR1_OFFSET
344 .equ TIM8_CCR2, TIM8_BASE + TIM_CCR2_OFFSET
345 .equ TIM8_CCR3, TIM8_BASE + TIM_CCR3_OFFSET
346 .equ TIM8_CCR4, TIM8_BASE + TIM_CCR4_OFFSET
347 .equ TIM8_BDTR, TIM8_BASE + TIM_BDTR_OFFSET
348 .equ TIM8_CCR5, TIM8_BASE + TIM_CCR5_OFFSET
349 .equ TIM8_CCR6, TIM8_BASE + TIM_CCR6_OFFSET
350 .equ TIM8_CCMR3, TIM8_BASE + TIM_CCMR3_OFFSET
351 .equ TIM8_DTR2, TIM8_BASE + TIM_DTR2_OFFSET
352 .equ TIM8_ECR, TIM8_BASE + TIM_ECR_OFFSET
353 .equ TIM8_TISEL, TIM8_BASE + TIM_TISEL_OFFSET
354 .equ TIM8_AF1, TIM8_BASE + TIM_AF1_OFFSET
355 .equ TIM8_AF2, TIM8_BASE + TIM_AF2_OFFSET
356
357 .equ TIM8_DCR, TIM8_BASE + TIM_DCR_OFFSET
358 .equ TIM8_DMAR, TIM8_BASE + TIM_DMAR_OFFSET
359
360 #--- Advanced Control Timer - TIM20 / address space: 0x4001_5000 .. 0x4001_53FF
361
362 .equ TIM20_BASE, APB2_BASE + 0x5000
363
364 .equ TIM20_CR1, TIM20_BASE + TIM_CR1_OFFSET
365 .equ TIM20_CR2, TIM20_BASE + TIM_CR2_OFFSET
366 .equ TIM20_SMCR, TIM20_BASE + TIM_SMCR_OFFSET
367 .equ TIM20_DIER, TIM20_BASE + TIM_DIER_OFFSET
368 .equ TIM20_SR, TIM20_BASE + TIM_SR_OFFSET
369 .equ TIM20_EGR, TIM20_BASE + TIM_EGR_OFFSET
370 .equ TIM20_CCMR1, TIM20_BASE + TIM_CCMR1_OFFSET
371 .equ TIM20_CCMR2, TIM20_BASE + TIM_CCMR2_OFFSET
372 .equ TIM20_CCER, TIM20_BASE + TIM_CCER_OFFSET
373 .equ TIM20_CNT, TIM20_BASE + TIM_CNT_OFFSET
374 .equ TIM20_PSC, TIM20_BASE + TIM_PSC_OFFSET
375 .equ TIM20_ARR, TIM20_BASE + TIM_ARR_OFFSET
376 .equ TIM20_RCR, TIM20_BASE + TIM_RCR_OFFSET
377 .equ TIM20_CCR1, TIM20_BASE + TIM_CCR1_OFFSET
378 .equ TIM20_CCR2, TIM20_BASE + TIM_CCR2_OFFSET
379 .equ TIM20_CCR3, TIM20_BASE + TIM_CCR3_OFFSET
380 .equ TIM20_CCR4, TIM20_BASE + TIM_CCR4_OFFSET
381 .equ TIM20_BDTR, TIM20_BASE + TIM_BDTR_OFFSET
382 .equ TIM20_CCR5, TIM20_BASE + TIM_CCR5_OFFSET
383 .equ TIM20_CCR6, TIM20_BASE + TIM_CCR6_OFFSET
384 .equ TIM20_CCMR3, TIM20_BASE + TIM_CCMR3_OFFSET
385 .equ TIM20_DTR2, TIM20_BASE + TIM_DTR2_OFFSET
386 .equ TIM20_ECR, TIM20_BASE + TIM_ECR_OFFSET
387 .equ TIM20_TISEL, TIM20_BASE + TIM_TISEL_OFFSET
388 .equ TIM20_AF1, TIM20_BASE + TIM_AF1_OFFSET
389 .equ TIM20_AF2, TIM20_BASE + TIM_AF2_OFFSET
390
391 .equ TIM20_DCR, TIM20_BASE + TIM_DCR_OFFSET
392 .equ TIM20_DMAR, TIM20_BASE + TIM_DMAR_OFFSET
393
394 #--- Genral Purpose Timer - TIM15 / address space: 0x4001_4000 .. 0x4001_43FF
395
396 .equ TIM15_BASE, APB2_BASE + 0x4000
397
398 .equ TIM15_CR1, TIM15_BASE + TIM_CR1_OFFSET
399 .equ TIM15_CR2, TIM15_BASE + TIM_CR2_OFFSET
400 .equ TIM15_SMCR, TIM15_BASE + TIM_SMCR_OFFSET
401 .equ TIM15_DIER, TIM15_BASE + TIM_DIER_OFFSET
402 .equ TIM15_SR, TIM15_BASE + TIM_SR_OFFSET
403 .equ TIM15_EGR, TIM15_BASE + TIM_EGR_OFFSET
404 .equ TIM15_CCMR1, TIM15_BASE + TIM_CCMR1_OFFSET
405
406 .equ TIM15_CCER, TIM15_BASE + TIM_CCER_OFFSET
407 .equ TIM15_CNT, TIM15_BASE + TIM_CNT_OFFSET
408 .equ TIM15_PSC, TIM15_BASE + TIM_PSC_OFFSET
409 .equ TIM15_ARR, TIM15_BASE + TIM_ARR_OFFSET
410 .equ TIM15_RCR, TIM15_BASE + TIM_RCR_OFFSET
411 .equ TIM15_CCR1, TIM15_BASE + TIM_CCR1_OFFSET
412 .equ TIM15_CCR2, TIM15_BASE + TIM_CCR2_OFFSET
413
414 .equ TIM15_BDTR, TIM15_BASE + TIM_BDTR_OFFSET
415
416 .equ TIM15_DTR2, TIM15_BASE + TIM_DTR2_OFFSET
417
418 .equ TIM15_TISEL, TIM15_BASE + TIM_TISEL_OFFSET
419 .equ TIM15_AF1, TIM15_BASE + TIM_AF1_OFFSET
420 .equ TIM15_AF2, TIM15_BASE + TIM_AF2_OFFSET
421
422 .equ TIM15_DCR, TIM15_BASE + TIM_DCR_OFFSET
423 .equ TIM15_DMAR, TIM15_BASE + TIM_DMAR_OFFSET
424
425 #--- Genral Purpose Timer - TIM16 / address space: 0x4001_4400 .. 0x4001_47FF
426
427 .equ TIM16_BASE, APB2_BASE + 0x4400
428
429 .equ TIM16_CR1, TIM16_BASE + TIM_CR1_OFFSET
430 .equ TIM16_CR2, TIM16_BASE + TIM_CR2_OFFSET
431
432 .equ TIM16_DIER, TIM16_BASE + TIM_DIER_OFFSET
433 .equ TIM16_SR, TIM16_BASE + TIM_SR_OFFSET
434 .equ TIM16_EGR, TIM16_BASE + TIM_EGR_OFFSET
435 .equ TIM16_CCMR1, TIM16_BASE + TIM_CCMR1_OFFSET
436
437 .equ TIM16_CCER, TIM16_BASE + TIM_CCER_OFFSET
438 .equ TIM16_CNT, TIM16_BASE + TIM_CNT_OFFSET
439 .equ TIM16_PSC, TIM16_BASE + TIM_PSC_OFFSET
440 .equ TIM16_ARR, TIM16_BASE + TIM_ARR_OFFSET
441 .equ TIM16_RCR, TIM16_BASE + TIM_RCR_OFFSET
442 .equ TIM16_CCR1, TIM16_BASE + TIM_CCR1_OFFSET
443
444 .equ TIM16_BDTR, TIM16_BASE + TIM_BDTR_OFFSET
445
446 .equ TIM16_DTR2, TIM16_BASE + TIM_DTR2_OFFSET
447
448 .equ TIM16_TISEL, TIM16_BASE + TIM_TISEL_OFFSET
449 .equ TIM16_AF1, TIM16_BASE + TIM_AF1_OFFSET
450 .equ TIM16_AF2, TIM16_BASE + TIM_AF2_OFFSET
451 .equ TIM16_OR1, TIM16_BASE + TIM_OR1_OFFSET
452
453 .equ TIM16_DCR, TIM16_BASE + TIM_DCR_OFFSET
454 .equ TIM16_DMAR, TIM16_BASE + TIM_DMAR_OFFSET
455
456 #--- Genral Purpose Timer - TIM17 / address space: 0x4001_4800 .. 0x4001_4BFF
457
458 .equ TIM17_BASE, APB2_BASE + 0x4800
459
460 .equ TIM17_CR1, TIM17_BASE + TIM_CR1_OFFSET
461 .equ TIM17_CR2, TIM17_BASE + TIM_CR2_OFFSET
462
463 .equ TIM17_DIER, TIM17_BASE + TIM_DIER_OFFSET
464 .equ TIM17_SR, TIM17_BASE + TIM_SR_OFFSET
465 .equ TIM17_EGR, TIM17_BASE + TIM_EGR_OFFSET
466 .equ TIM17_CCMR1, TIM17_BASE + TIM_CCMR1_OFFSET
467
468 .equ TIM17_CCER, TIM17_BASE + TIM_CCER_OFFSET
469 .equ TIM17_CNT, TIM17_BASE + TIM_CNT_OFFSET
470 .equ TIM17_PSC, TIM17_BASE + TIM_PSC_OFFSET
471 .equ TIM17_ARR, TIM17_BASE + TIM_ARR_OFFSET
472 .equ TIM17_RCR, TIM17_BASE + TIM_RCR_OFFSET
473 .equ TIM17_CCR1, TIM17_BASE + TIM_CCR1_OFFSET
474
475 .equ TIM17_BDTR, TIM17_BASE + TIM_BDTR_OFFSET
476
477 .equ TIM17_DTR2, TIM17_BASE + TIM_DTR2_OFFSET
478
479 .equ TIM17_TISEL, TIM17_BASE + TIM_TISEL_OFFSET
480 .equ TIM17_AF1, TIM17_BASE + TIM_AF1_OFFSET
481 .equ TIM17_AF2, TIM17_BASE + TIM_AF2_OFFSET
482 .equ TIM17_OR1, TIM17_BASE + TIM_OR1_OFFSET
483
484 .equ TIM17_DCR, TIM17_BASE + TIM_DCR_OFFSET
485 .equ TIM17_DMAR, TIM17_BASE + TIM_DMAR_OFFSET
486
487 #----------------------------------------------------------------------------------------#
488 # Reset and Clock Control
489 #
490 # address space: 0x4002_1000 .. 0x4002_13FF
491 #----------------------------------------------------------------------------------------#
492
493 .equ RCC_BASE, AHB1_BASE + 0x1000
494
495 .equ RCC_CR, RCC_BASE + 0x00
496 .equ RCC_ICSCR, RCC_BASE + 0x04
497 .equ RCC_CFGR, RCC_BASE + 0x08
498 .equ RCC_PLLCFGR, RCC_BASE + 0x0C
499
500 .equ RCC_CIER, RCC_BASE + 0x18
501 .equ RCC_CIFR, RCC_BASE + 0x1C
502 .equ RCC_CICR, RCC_BASE + 0x20
503
504 .equ RCC_AHB1RSTR, RCC_BASE + 0x28
505 .equ RCC_AHB2RSTR, RCC_BASE + 0x2C
506 .equ RCC_AHB3RSTR, RCC_BASE + 0x30
507
508 .equ RCC_APB1RSTR1, RCC_BASE + 0x38
509 .equ RCC_APB1RSTR2, RCC_BASE + 0x3C
510 .equ RCC_APB2RSTR, RCC_BASE + 0x40
511
512 .equ RCC_AHB1ENR, RCC_BASE + 0x48
513 .equ RCC_AHB2ENR, RCC_BASE + 0x4C
514 .equ RCC_AHB3ENR, RCC_BASE + 0x50
515
516 .equ RCC_APB1ENR1, RCC_BASE + 0x58
517 .equ RCC_APB1ENR2, RCC_BASE + 0x5C
518 .equ RCC_APB2ENR, RCC_BASE + 0x60
519
520 .equ RCC_AHB1SMENR, RCC_BASE + 0x68
521 .equ RCC_AHB2SMENR, RCC_BASE + 0x6C
522 .equ RCC_AHB3SMENR, RCC_BASE + 0x70
523
524 .equ RCC_APB1SMENR1, RCC_BASE + 0x78
525 .equ RCC_APB1SMENR2, RCC_BASE + 0x7C
526 .equ RCC_APB2SMENR, RCC_BASE + 0x80
527
528 .equ RCC_CCIPR, RCC_BASE + 0x88
529
530 .equ RCC_BDCR, RCC_BASE + 0x90
531 .equ RCC_CSR, RCC_BASE + 0x94
532 .equ RCC_CRRCR, RCC_BASE + 0x98
533 .equ RCC_CCIPR2, RCC_BASE + 0x9C
534
535 #----------------------------------------------------------------------------------------#
536 # GPIO module common configuration
537 #
538 # address space: 0x4800_0000 .. 0x4800_1FFF
539 #----------------------------------------------------------------------------------------#
540
541 .equ GPIO_BASE, AHB2_BASE
542
543 .equ GPIO_MODER_OFFSET, 0x00
544 .equ GPIO_OTYPER_OFFSET, 0x04
545 .equ GPIO_OSPEEDR_OFFSET, 0x08
546 .equ GPIO_PUPDR_OFFSET, 0x0C
547 .equ GPIO_IDR_OFFSET, 0x10
548 .equ GPIO_ODR_OFFSET, 0x14
549 .equ GPIO_BSRR_OFFSET, 0x18
550 .equ GPIO_LCKR_OFFSET, 0x1C
551 .equ GPIO_AFRL_OFFSET, 0x20
552 .equ GPIO_AFRH_OFFSET, 0x24
553 .equ GPIO_BRR_OFFSET, 0x28
554
555 #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
556
557 #--- Port A GPIO configuration / address space: 0x4800_0000 .. 0x4800_03FF
558
559 .equ GPIOA_BASE, GPIO_BASE
560
561 .equ GPIOA_MODER, GPIOA_BASE + GPIO_MODER_OFFSET
562 .equ GPIOA_OTYPER, GPIOA_BASE + GPIO_OTYPER_OFFSET
563 .equ GPIOA_OSPEEDR, GPIOA_BASE + GPIO_OSPEEDR_OFFSET
564 .equ GPIOA_PUPDR, GPIOA_BASE + GPIO_PUPDR_OFFSET
565 .equ GPIOA_IDR, GPIOA_BASE + GPIO_IDR_OFFSET
566 .equ GPIOA_ODR, GPIOA_BASE + GPIO_ODR_OFFSET
567 .equ GPIOA_BSRR, GPIOA_BASE + GPIO_BSRR_OFFSET
568 .equ GPIOA_LCKR, GPIOA_BASE + GPIO_LCKR_OFFSET
569 .equ GPIOA_AFRL, GPIOA_BASE + GPIO_AFRL_OFFSET
570 .equ GPIOA_AFRH, GPIOA_BASE + GPIO_AFRH_OFFSET
571 .equ GPIOA_BRR, GPIOA_BASE + GPIO_BRR_OFFSET
572
573 #--- Port B GPIO configuration / address space: 0x4800_0400 .. 0x4800_07FF
574
575 .equ GPIOB_BASE, GPIO_BASE + 0x400
576
577 .equ GPIOB_MODER, GPIOB_BASE + GPIO_MODER_OFFSET
578 .equ GPIOB_OTYPER, GPIOB_BASE + GPIO_OTYPER_OFFSET
579 .equ GPIOB_OSPEEDR, GPIOB_BASE + GPIO_OSPEEDR_OFFSET
580 .equ GPIOB_PUPDR, GPIOB_BASE + GPIO_PUPDR_OFFSET
581 .equ GPIOB_IDR, GPIOB_BASE + GPIO_IDR_OFFSET
582 .equ GPIOB_ODR, GPIOB_BASE + GPIO_ODR_OFFSET
583 .equ GPIOB_BSRR, GPIOB_BASE + GPIO_BSRR_OFFSET
584 .equ GPIOB_LCKR, GPIOB_BASE + GPIO_LCKR_OFFSET
585 .equ GPIOB_AFRL, GPIOB_BASE + GPIO_AFRL_OFFSET
586 .equ GPIOB_AFRH, GPIOB_BASE + GPIO_AFRH_OFFSET
587 .equ GPIOB_BRR, GPIOB_BASE + GPIO_BRR_OFFSET
588
589 #--- Port C GPIO configuration / address space: 0x4800_0800 .. 0x4800_0BFF
590
591 .equ GPIOC_BASE, GPIO_BASE + 0x800
592
593 .equ GPIOC_MODER, GPIOC_BASE + GPIO_MODER_OFFSET
594 .equ GPIOC_OTYPER, GPIOC_BASE + GPIO_OTYPER_OFFSET
595 .equ GPIOC_OSPEEDR, GPIOC_BASE + GPIO_OSPEEDR_OFFSET
596 .equ GPIOC_PUPDR, GPIOC_BASE + GPIO_PUPDR_OFFSET
597 .equ GPIOC_IDR, GPIOC_BASE + GPIO_IDR_OFFSET
598 .equ GPIOC_ODR, GPIOC_BASE + GPIO_ODR_OFFSET
599 .equ GPIOC_BSRR, GPIOC_BASE + GPIO_BSRR_OFFSET
600 .equ GPIOC_LCKR, GPIOC_BASE + GPIO_LCKR_OFFSET
601 .equ GPIOC_AFRL, GPIOC_BASE + GPIO_AFRL_OFFSET
602 .equ GPIOC_AFRH, GPIOC_BASE + GPIO_AFRH_OFFSET
603 .equ GPIOC_BRR, GPIOC_BASE + GPIO_BRR_OFFSET
604
605 #--- Port D GPIO configuration / address space: 0x4800_0C00 .. 0x4800_0FFF
606
607 .equ GPIOD_BASE, GPIO_BASE + 0xC00
608
609 .equ GPIOD_MODER, GPIOD_BASE + GPIO_MODER_OFFSET
610 .equ GPIOD_OTYPER, GPIOD_BASE + GPIO_OTYPER_OFFSET
611 .equ GPIOD_OSPEEDR, GPIOD_BASE + GPIO_OSPEEDR_OFFSET
612 .equ GPIOD_PUPDR, GPIOD_BASE + GPIO_PUPDR_OFFSET
613 .equ GPIOD_IDR, GPIOD_BASE + GPIO_IDR_OFFSET
614 .equ GPIOD_ODR, GPIOD_BASE + GPIO_ODR_OFFSET
615 .equ GPIOD_BSRR, GPIOD_BASE + GPIO_BSRR_OFFSET
616 .equ GPIOD_LCKR, GPIOD_BASE + GPIO_LCKR_OFFSET
617 .equ GPIOD_AFRL, GPIOD_BASE + GPIO_AFRL_OFFSET
618 .equ GPIOD_AFRH, GPIOD_BASE + GPIO_AFRH_OFFSET
619 .equ GPIOD_BRR, GPIOD_BASE + GPIO_BRR_OFFSET
620
621 #--- Port E GPIO configuration / address space: 0x4800_1000 .. 0x4800_13FF
622
623 .equ GPIOE_BASE, GPIO_BASE + 0x1000
624
625 .equ GPIOE_MODER, GPIOE_BASE + GPIO_MODER_OFFSET
626 .equ GPIOE_OTYPER, GPIOE_BASE + GPIO_OTYPER_OFFSET
627 .equ GPIOE_OSPEEDR, GPIOE_BASE + GPIO_OSPEEDR_OFFSET
628 .equ GPIOE_PUPDR, GPIOE_BASE + GPIO_PUPDR_OFFSET
629 .equ GPIOE_IDR, GPIOE_BASE + GPIO_IDR_OFFSET
630 .equ GPIOE_ODR, GPIOE_BASE + GPIO_ODR_OFFSET
631 .equ GPIOE_BSRR, GPIOE_BASE + GPIO_BSRR_OFFSET
632 .equ GPIOE_LCKR, GPIOE_BASE + GPIO_LCKR_OFFSET
633 .equ GPIOE_AFRL, GPIOE_BASE + GPIO_AFRL_OFFSET
634 .equ GPIOE_AFRH, GPIOE_BASE + GPIO_AFRH_OFFSET
635 .equ GPIOE_BRR, GPIOE_BASE + GPIO_BRR_OFFSET
636
637 #--- Port F GPIO configuration / address space: 0x4800_1400 .. 0x4800_17FF
638
639 .equ GPIOF_BASE, GPIO_BASE + 0x1400
640
641 .equ GPIOF_MODER, GPIOF_BASE + GPIO_MODER_OFFSET
642 .equ GPIOF_OTYPER, GPIOF_BASE + GPIO_OTYPER_OFFSET
643 .equ GPIOF_OSPEEDR, GPIOF_BASE + GPIO_OSPEEDR_OFFSET
644 .equ GPIOF_PUPDR, GPIOF_BASE + GPIO_PUPDR_OFFSET
645 .equ GPIOF_IDR, GPIOF_BASE + GPIO_IDR_OFFSET
646 .equ GPIOF_ODR, GPIOF_BASE + GPIO_ODR_OFFSET
647 .equ GPIOF_BSRR, GPIOF_BASE + GPIO_BSRR_OFFSET
648 .equ GPIOF_LCKR, GPIOF_BASE + GPIO_LCKR_OFFSET
649 .equ GPIOF_AFRL, GPIOF_BASE + GPIO_AFRL_OFFSET
650 .equ GPIOF_AFRH, GPIOF_BASE + GPIO_AFRH_OFFSET
651 .equ GPIOF_BRR, GPIOF_BASE + GPIO_BRR_OFFSET
652
653 #--- Port G GPIO configuration / address space: 0x4800_1800 .. 0x4800_1BFF
654
655 .equ GPIOG_BASE, GPIO_BASE + 0x1800
656
657 .equ GPIOG_MODER, GPIOG_BASE + GPIO_MODER_OFFSET
658 .equ GPIOG_OTYPER, GPIOG_BASE + GPIO_OTYPER_OFFSET
659 .equ GPIOG_OSPEEDR, GPIOG_BASE + GPIO_OSPEEDR_OFFSET
660 .equ GPIOG_PUPDR, GPIOG_BASE + GPIO_PUPDR_OFFSET
661 .equ GPIOG_IDR, GPIOG_BASE + GPIO_IDR_OFFSET
662 .equ GPIOG_ODR, GPIOG_BASE + GPIO_ODR_OFFSET
663 .equ GPIOG_BSRR, GPIOG_BASE + GPIO_BSRR_OFFSET
664 .equ GPIOG_LCKR, GPIOG_BASE + GPIO_LCKR_OFFSET
665 .equ GPIOG_AFRL, GPIOG_BASE + GPIO_AFRL_OFFSET
666 .equ GPIOG_AFRH, GPIOG_BASE + GPIO_AFRH_OFFSET
667 .equ GPIOG_BRR, GPIOG_BASE + GPIO_BRR_OFFSET
668
669 #----------------------------------------------------------------------------------------#
670 # System Control Space
671 #
672 # address space: 0xE000_E000 .. 0xE000_EFFF
673 #----------------------------------------------------------------------------------------#
674
675 .equ SCS_BASE, PPB_BASE + 0xE000
676
677 #----------------------------------------------------------------------------------------#
678 # System Timer (SysTick)
679 #
680 # address space: 0xE000_E010 .. 0xE000_E01F
681 #----------------------------------------------------------------------------------------#
682
683 .equ STK_BASE, SCS_BASE + 10 // 0xE000_E010
684
685 .equ STK_CTRL, SCS_BASE + 0x00
686 .equ STK_LOAD, SCS_BASE + 0x04
687 .equ STK_VAL, SCS_BASE + 0x08
688 .equ STK_CALIB, SCS_BASE + 0x0C
689
690 #----------------------------------------------------------------------------------------#
691 # Nested Vector Interrupt Controller
692 #
693 # address space: 0xE000_E100 .. 0xE000_E4EF
694 #----------------------------------------------------------------------------------------#
695
696 .equ NVIC_BASE, SCS_BASE + 0x100 // 0xE000_E100
697
698 .equ NVIC_ISER0, NVIC_BASE + 0x00
699 .equ NVIC_ISER1, NVIC_BASE + 0x04
700 .equ NVIC_ISER2, NVIC_BASE + 0x08
701 .equ NVIC_ISER3, NVIC_BASE + 0x0C
702
703 .equ NVIC_ICER0, NVIC_BASE + 0x80
704 .equ NVIC_ICER1, NVIC_BASE + 0x84
705 .equ NVIC_ICER2, NVIC_BASE + 0x88
706 .equ NVIC_ICER3, NVIC_BASE + 0x8C
707
708 .equ NVIC_ISPR0, NVIC_BASE + 0x100
709 .equ NVIC_ISPR1, NVIC_BASE + 0x104
710 .equ NVIC_ISPR2, NVIC_BASE + 0x108
711 .equ NVIC_ISPR3, NVIC_BASE + 0x10C
712
713 .equ NVIC_ICPR0, NVIC_BASE + 0x180
714 .equ NVIC_ICPR1, NVIC_BASE + 0x184
715 .equ NVIC_ICPR2, NVIC_BASE + 0x188
716 .equ NVIC_ICPR3, NVIC_BASE + 0x18C
717
718 .equ NVIC_IABR0, NVIC_BASE + 0x200
719 .equ NVIC_IABR1, NVIC_BASE + 0x204
720 .equ NVIC_IABR2, NVIC_BASE + 0x208
721 .equ NVIC_IABR3, NVIC_BASE + 0x20C
722
723 .equ NVIC_IPR0, NVIC_BASE + 0x300
724 .equ NVIC_IPR1, NVIC_BASE + 0x304
725 .equ NVIC_IPR2, NVIC_BASE + 0x308
726 .equ NVIC_IPR3, NVIC_BASE + 0x30C
727 .equ NVIC_IPR4, NVIC_BASE + 0x310
728 .equ NVIC_IPR5, NVIC_BASE + 0x314
729 .equ NVIC_IPR6, NVIC_BASE + 0x318
730 .equ NVIC_IPR7, NVIC_BASE + 0x31C
731 .equ NVIC_IPR8, NVIC_BASE + 0x320
732 .equ NVIC_IPR9, NVIC_BASE + 0x324
733 .equ NVIC_IPR10, NVIC_BASE + 0x328
734 .equ NVIC_IPR11, NVIC_BASE + 0x32C
735 .equ NVIC_IPR12, NVIC_BASE + 0x330
736 .equ NVIC_IPR13, NVIC_BASE + 0x334
737 .equ NVIC_IPR14, NVIC_BASE + 0x338
738 .equ NVIC_IPR15, NVIC_BASE + 0x33C
739 .equ NVIC_IPR16, NVIC_BASE + 0x340
740 .equ NVIC_IPR17, NVIC_BASE + 0x344
741 .equ NVIC_IPR18, NVIC_BASE + 0x348
742 .equ NVIC_IPR19, NVIC_BASE + 0x34C
743 .equ NVIC_IPR20, NVIC_BASE + 0x350
744 .equ NVIC_IPR21, NVIC_BASE + 0x354
745 .equ NVIC_IPR22, NVIC_BASE + 0x358
746 .equ NVIC_IPR23, NVIC_BASE + 0x35C
747 .equ NVIC_IPR24, NVIC_BASE + 0x360
748 .equ NVIC_IPR25, NVIC_BASE + 0x364
749
750 .equ STIR, NVIC_BASE + 0xE00
751
752 #----------------------------------------------------------------------------------------#
753 # MCU Debug Component
754 #
755 # address space: 0xE004_2000 .. 0xE004_2013
756 #----------------------------------------------------------------------------------------#
757
758 .equ DBGMCU_BASE, PPB_BASE + 0x42000
759
760 .equ DBGMCU_IDCODE, DBGMCU_BASE + 0x00
761 .equ DBGMCU_CR, DBGMCU_BASE + 0x04
762 .equ DBGMCU_APB1FZR1, DBGMCU_BASE + 0x08
763 .equ DBGMCU_APB1FZR2, DBGMCU_BASE + 0x0C
764 .equ DBGMCU_APB2DZR, DBGMCU_BASE + 0x10
9
10 // Falls in G431_addr.s vorhanden, diesen Block löschen um Fehler zu vermeiden:
11 .equ RCC_AHB2ENR, 0x4002104C
12 .equ RCC_APB2ENR, 0x40021060
13
14 .equ GPIOA_MODER, 0x48000000
15 .equ GPIOA_ODR, 0x48000014
16
17 .equ GPIOB_MODER, 0x48000400
18 .equ GPIOB_PUPDR, 0x4800040C
19 .equ GPIOB_IDR, 0x48000410
20
21 .equ SYSCFG_BASE, 0x40010000
22 .equ SYSCFG_EXTICR1, (SYSCFG_BASE + 0x08)
23 .equ SYSCFG_EXTICR2, (SYSCFG_BASE + 0x0C)
24
25 .equ EXTI_BASE, 0x40010400
26 .equ EXTI_IMR1, (EXTI_BASE + 0x00)
27 .equ EXTI_FTSR1, (EXTI_BASE + 0x0C)
28 .equ EXTI_PR1, (EXTI_BASE + 0x14)
29
30 .equ NVIC_ISER0, 0xE000E100
31
32 .equ DBGMCU_CR, 0xE0042004 // Adresse des Debug Configuration Registers
33
34 #----------------------------------------------------------------------------------------#
35 .section .vectortable,"a"
36 #----------------------------------------------------------------------------------------#
37
38 .align 2
39
40 0000 00400020 .word 0x20004000 // initial Stack Pointer
41 0004 00000000 .word init // initial Program Counter
42 0008 00000000 .word _ISR_NMI // non-masking interrupt
43 000c 00000000 .word _ISR_HARDF // hard fault interrupt
44
45 0010 00000000 .space 0x48 // Padding 72 Bytes (Offset 0x10 -> 0x58)
45 00000000
45 00000000
45 00000000
45 00000000
46 0058 00000000 .word _ISR_EXTI0 // EXTI0_IRQHandler (PB0 / S0) - IRQ 6
47
48 005c 00000000 .space 0x0C // Padding 12 Bytes (Offset 0x5C -> 0x68)
48 00000000
48 00000000
49 0068 00000000 .word _ISR_EXTI4 // EXTI4_IRQHandler (PB4 / S1) - IRQ 10
50
51 #----------------------------------------------------------------------------------------#
52 .text
53 #----------------------------------------------------------------------------------------#
54
55 .align 2
56 .syntax unified
57 .thumb
58 .thumb_func
59 .global init
61 init:
62 0000 72B6 CPSID i
63
64 0002 0020 MOVS r0, #0
65 0004 0021 MOVS r1, #0
66 0006 0022 MOVS r2, #0
67 0008 0023 MOVS r3, #0
68 000a 0024 MOVS r4, #0
69 000c 0025 MOVS r5, #0
70 000e 0026 MOVS r6, #0
71 0010 0027 MOVS r7, #0
72 0012 8046 MOV r8, r0
73 0014 8146 MOV r9, r0
74 0016 8246 MOV r10, r0
75 0018 8346 MOV r11, r0
76 001a 8446 MOV r12, r0
77
78 #--- enable port clocking (GPIOA, GPIOB)
79 001c 2C49 LDR r1, =RCC_AHB2ENR
80 001e 0322 MOVS r2, #0x03 // Bit 0 (GPIOA) und Bit 1 (GPIOB)
81 0020 0868 LDR r0, [r1, #0]
82 0022 1043 ORRS r0, r2
83 0024 0860 STR r0, [r1, #0]
84
85 #--- port init
86 #- LEDs (PA0 - PA3) als Output
87 0026 4FF09041 LDR r1, =GPIOA_MODER
88 002a 4FF0FF02 LDR r2, =0x000000FF
89 002e 0868 LDR r0, [r1, #0]
90 0030 9043 BICS r0, r2
91 0032 4FF05502 LDR r2, =0x00000055
92 0036 1043 ORRS r0, r2
93 0038 0860 STR r0, [r1, #0]
94
95 #- switch LED off
96 003a 2649 LDR r1, =GPIOA_ODR
97 003c 0F22 MOVS r2, #0x0F
98 003e 0868 LDR r0, [r1, #0]
99 0040 1043 ORRS r0, r2
100 0042 0860 STR r0, [r1, #0]
101
102 #- buttons (PB0, PB4) als Input
103 0044 2449 LDR r1, =GPIOB_MODER
104 0046 40F20332 LDR r2, =0x00000303 // Maske Bits 0:1 (PB0) und 8:9 (PB4)
105 004a 0868 LDR r0, [r1, #0]
106 004c 9043 BICS r0, r2
107 004e 0860 STR r0, [r1, #0]
108
109 #- Pull-Up für PB0, PB4
110 0050 2249 LDR r1, =GPIOB_PUPDR
111 0052 40F20332 LDR r2, =0x00000303
112 0056 0868 LDR r0, [r1, #0]
113 0058 9043 BICS r0, r2
114 005a 40F20112 LDR r2, =0x00000101 // 01 = Pull-Up für PB0 und PB4
115 005e 1043 ORRS r0, r2
116 0060 0860 STR r0, [r1, #0]
117
118 #--- button interrupt config
119
120 #- enable clock for SYSCFG module
121 0062 1F49 LDR r1, =RCC_APB2ENR
122 0064 0122 MOVS r2, #0x01
123 0066 0868 LDR r0, [r1, #0]
124 0068 1043 ORRS r0, r2
125 006a 0860 STR r0, [r1, #0]
126
127 #- connect GPIO pins to EXTI lines
128 006c 1D49 LDR r1, =SYSCFG_EXTICR1 // EXTI0 (PB0)
129 006e 4FF00F02 LDR r2, =0x000F // Maske EXTI0 (Bits 3:0)
130 0072 0868 LDR r0, [r1, #0]
131 0074 9043 BICS r0, r2
132 0076 0122 MOVS r2, #0x0001 // Port B (0001)
133 0078 1043 ORRS r0, r2
134 007a 0860 STR r0, [r1, #0]
135
136 007c 1A49 LDR r1, =SYSCFG_EXTICR2 // EXTI4 (PB4)
137 007e 4FF00F02 LDR r2, =0x000F // Maske EXTI4 (Bits 3:0)
138 0082 0868 LDR r0, [r1, #0]
139 0084 9043 BICS r0, r2
140 0086 0122 MOVS r2, #0x0001 // Port B (0001)
141 0088 1043 ORRS r0, r2
142 008a 0860 STR r0, [r1, #0]
143
144 #- configure EXTI lines (falling edge, unmask)
145 008c 1749 LDR r1, =EXTI_FTSR1
146 008e 1122 MOVS r2, #0x11 // Bit 0 (EXTI0) und Bit 4 (EXTI4)
147 0090 0868 LDR r0, [r1, #0]
148 0092 1043 ORRS r0, r2
149 0094 0860 STR r0, [r1, #0]
150
151 0096 1649 LDR r1, =EXTI_IMR1
152 0098 1122 MOVS r2, #0x11 // Bit 0 und Bit 4
153 009a 0868 LDR r0, [r1, #0]
154 009c 1043 ORRS r0, r2
155 009e 0860 STR r0, [r1, #0]
156
157 #- NVIC: enable interrupts EXTI0 (IRQ 6) & EXTI4 (IRQ 10)
158 00a0 1449 LDR r1, =NVIC_ISER0
159 00a2 4FF48862 LDR r2, =0x00000440 // Bit 6 (EXTI0) und Bit 10 (EXTI4)
160 00a6 0868 LDR r0, [r1, #0]
161 00a8 1043 ORRS r0, r2
162 00aa 0860 STR r0, [r1, #0]
163
164 #--- wachhalten während WFI
165 00ac 1249 LDR r1, =DBGMCU_CR
166 00ae 0868 LDR r0, [r1, #0]
167 00b0 0722 MOVS r2, #0x07 // Setzt DBG_SLEEP, DBG_STOP und DBG_STANDBY Bits
168 00b2 1043 ORRS r0, r2
169 00b4 0860 STR r0, [r1, #0]
170
171 00b6 62B6 CPSIE i
172
173 #----------------------------------------------------------------------------------------#
174
175 .align 2
176 .syntax unified
177 .thumb
178 .thumb_func
179 .global main
181 main:
182 00b8 30BF WFI
183 00ba FFF7FEBF B main
184
185 #----------------------------------------------------------------------------------------#
186
187 00be 00BF .align 2
188 .syntax unified
189 .thumb
190 .thumb_func
191 .global delay
193 delay:
194 00c0 0E48 LDR r0, =106000
195 .L1:
196 00c2 0138 SUBS r0, r0, #1
197 00c4 FDD1 BNE .L1
198 00c6 7047 BX lr
199
200 #----------------------------------------------------------------------------------------#
201
202 .align 2
203 .global stop
204 stop:
205 00c8 00BF NOP
206 00ca FFF7FEBF B stop
207
208 #----------------------------------------------------------------------------------------#
209 .lp1:
210 00ce 00004C10 .ltorg
210 02401400
210 00480004
210 00480C04
210 00486010
211 #----------------------------------------------------------------------------------------#
212
213 #----------------------------------------------------------------------------------------#
214 .section .exhand,"ax"
215 #----------------------------------------------------------------------------------------#
216
217 .align 2
218 .syntax unified
219 .thumb
221 _ISR_NMI:
222 0000 2549 LDR r1, =RCC_AHB2ENR
223 0002 4FF00102 MOV r2, #0x01
224 0006 0868 LDR r0, [r1, #0]
225 0008 1043 ORRS r0, r2
226 000a 0860 STR r0, [r1, #0]
227
228 000c 4FF09041 LDR r1, =GPIOA_MODER
229 0010 FF22 MOVS r2, #0xFF
230 0012 0868 LDR r0, [r1, #0]
231 0014 9043 BICS r0, r2
232 0016 4422 MOVS r2, #0x44
233 0018 1043 ORRS r0, r2
234 001a 0860 STR r0, [r1, #0]
235
236 001c 1F49 LDR r1, =GPIOA_ODR
237 001e 0A22 MOVS r2, #0x0A
238 0020 0868 LDR r0, [r1, #0]
239 0022 9043 BICS r0, r2
240 0024 0860 STR r0, [r1, #0]
241
242 0026 EBE7 B _ISR_NMI
243
244 #----------------------------------------------------------------------------------------#
245
246 .align 2
247 .syntax unified
248 .thumb
250 _ISR_HARDF:
251 0028 1B49 LDR r1, =RCC_AHB2ENR
252 002a 4FF00102 MOV r2, #0x01
253 002e 0868 LDR r0, [r1, #0]
254 0030 1043 ORRS r0, r2
255 0032 0860 STR r0, [r1, #0]
256
257 0034 4FF09041 LDR r1, =GPIOA_MODER
258 0038 FF22 MOVS r2, #0xFF
259 003a 0868 LDR r0, [r1, #0]
260 003c 9043 BICS r0, r2
261 003e 1122 MOVS r2, #0x11
262 0040 1043 ORRS r0, r2
263 0042 0860 STR r0, [r1, #0]
264
265 0044 1549 LDR r1, =GPIOA_ODR
266 0046 0522 MOVS r2, #0x05
267 0048 0868 LDR r0, [r1, #0]
268 004a 9043 BICS r0, r2
269 004c 0860 STR r0, [r1, #0]
270
271 004e EBE7 B _ISR_HARDF
272
273 #----------------------------------------------------------------------------------------#
274
275 .align 2
276 .syntax unified
277 .thumb
279 _ISR_EXTI0:
280 0050 00B5 PUSH {lr}
281
282 #--- Entprellen
283 0052 FFF7FEFF BL delay
284
285 #--- Überprüfen, ob Taster noch gedrückt ist (PB0)
286 0056 1248 LDR r0, =GPIOB_IDR
287 0058 0168 LDR r1, [r0, #0]
288 005a 0122 MOVS r2, #0x01
289 005c 1142 TST r1, r2
290 005e 04D1 BNE _clear_exti0
291
292 #--- LED0 & LED3 toggeln (1001 = 0x09)
293 0060 0E48 LDR r0, =GPIOA_ODR
294 0062 0168 LDR r1, [r0, #0]
295 0064 0922 MOVS r2, #0x09
296 0066 5140 EORS r1, r2
297 0068 0160 STR r1, [r0, #0]
298
299 _clear_exti0:
300 #--- Interrupt Flag löschen
301 006a 0E48 LDR r0, =EXTI_PR1
302 006c 0121 MOVS r1, #0x01
303 006e 0160 STR r1, [r0, #0]
304
305 0070 00BD POP {pc}
306
307 #----------------------------------------------------------------------------------------#
308
309 0072 00BF .align 2
310 .syntax unified
311 .thumb
313 _ISR_EXTI4:
314 0074 00B5 PUSH {lr}
315
316 #--- Entprellen
317 0076 FFF7FEFF BL delay
318
319 #--- Überprüfen, ob Taster noch gedrückt ist (PB4)
320 007a 0948 LDR r0, =GPIOB_IDR
321 007c 0168 LDR r1, [r0, #0]
322 007e 1022 MOVS r2, #0x10
323 0080 1142 TST r1, r2
324 0082 04D1 BNE _clear_exti4
325
326 #--- LED1 & LED2 toggeln (0110 = 0x06)
327 0084 0548 LDR r0, =GPIOA_ODR
328 0086 0168 LDR r1, [r0, #0]
329 0088 0622 MOVS r2, #0x06
330 008a 5140 EORS r1, r2
331 008c 0160 STR r1, [r0, #0]
332
333 _clear_exti4:
334 #--- Interrupt Flag löschen
335 008e 0548 LDR r0, =EXTI_PR1
336 0090 1021 MOVS r1, #0x10
337 0092 0160 STR r1, [r0, #0]
338
339 0094 00BD POP {pc}
340
341 #----------------------------------------------------------------------------------------#
342 .lp2:
343 0096 00004C10 .ltorg
343 02401400
343 00481004
343 00481404
343 0140
344 #----------------------------------------------------------------------------------------#
345
346 .end
DEFINED SYMBOLS
G431_addr.s:39 *ABS*:40000000 APB1_BASE
G431_addr.s:40 *ABS*:40010000 APB2_BASE
G431_addr.s:41 *ABS*:40020000 AHB1_BASE
G431_addr.s:42 *ABS*:48000000 AHB2_BASE
G431_addr.s:43 *ABS*:a0000000 AHB3_BASE
G431_addr.s:44 *ABS*:e0000000 PPB_BASE
G431_addr.s:52 *ABS*:40010000 SYSCFG_BASE
G431_addr.s:54 *ABS*:40010000 SYSCFG_MEMRMP
G431_addr.s:55 *ABS*:40010004 SYSCFG_CFGR1
G431_addr.s:56 *ABS*:40010008 SYSCFG_EXTICR1
G431_addr.s:57 *ABS*:4001000c SYSCFG_EXTICR2
G431_addr.s:58 *ABS*:40010010 SYSCFG_EXTICR3
G431_addr.s:59 *ABS*:40010014 SYSCFG_EXTICR4
G431_addr.s:60 *ABS*:40010018 SYSCFG_SCSR
G431_addr.s:61 *ABS*:4001001c SYSCFG_CFGR2
G431_addr.s:62 *ABS*:40010020 SYSCFG_SWPR
G431_addr.s:63 *ABS*:40010024 SYSCFG_SKR
G431_addr.s:71 *ABS*:40010400 EXTI_BASE
G431_addr.s:73 *ABS*:40010400 EXTI_IMR1
G431_addr.s:74 *ABS*:40010404 EXTI_EMR1
G431_addr.s:75 *ABS*:40010408 EXTI_RTSR1
G431_addr.s:76 *ABS*:4001040c EXTI_FTSR1
G431_addr.s:77 *ABS*:40010410 EXTI_SWIER1
G431_addr.s:78 *ABS*:40010414 EXTI_PR1
G431_addr.s:80 *ABS*:40010420 EXTI_IMR2
G431_addr.s:81 *ABS*:40010424 EXTI_EMR2
G431_addr.s:82 *ABS*:40010428 EXTI_RTSR2
G431_addr.s:83 *ABS*:4001042c EXTI_FTSR2
G431_addr.s:84 *ABS*:40010430 EXTI_SWIER2
G431_addr.s:85 *ABS*:40010434 EXTI_PR2
G431_addr.s:109 *ABS*:00000000 TIM_CR1_OFFSET
G431_addr.s:110 *ABS*:00000004 TIM_CR2_OFFSET
G431_addr.s:111 *ABS*:00000008 TIM_SMCR_OFFSET
G431_addr.s:112 *ABS*:0000000c TIM_DIER_OFFSET
G431_addr.s:113 *ABS*:00000010 TIM_SR_OFFSET
G431_addr.s:114 *ABS*:00000014 TIM_EGR_OFFSET
G431_addr.s:115 *ABS*:00000018 TIM_CCMR1_OFFSET
G431_addr.s:116 *ABS*:0000001c TIM_CCMR2_OFFSET
G431_addr.s:117 *ABS*:00000020 TIM_CCER_OFFSET
G431_addr.s:118 *ABS*:00000024 TIM_CNT_OFFSET
G431_addr.s:119 *ABS*:00000028 TIM_PSC_OFFSET
G431_addr.s:120 *ABS*:0000002c TIM_ARR_OFFSET
G431_addr.s:121 *ABS*:00000030 TIM_RCR_OFFSET
G431_addr.s:122 *ABS*:00000034 TIM_CCR1_OFFSET
G431_addr.s:123 *ABS*:00000038 TIM_CCR2_OFFSET
G431_addr.s:124 *ABS*:0000003c TIM_CCR3_OFFSET
G431_addr.s:125 *ABS*:00000040 TIM_CCR4_OFFSET
G431_addr.s:126 *ABS*:00000044 TIM_BDTR_OFFSET
G431_addr.s:127 *ABS*:00000048 TIM_CCR5_OFFSET
G431_addr.s:128 *ABS*:0000004c TIM_CCR6_OFFSET
G431_addr.s:129 *ABS*:00000050 TIM_CCMR3_OFFSET
G431_addr.s:130 *ABS*:00000054 TIM_DTR2_OFFSET
G431_addr.s:131 *ABS*:00000058 TIM_ECR_OFFSET
G431_addr.s:132 *ABS*:0000005c TIM_TISEL_OFFSET
G431_addr.s:133 *ABS*:00000060 TIM_AF1_OFFSET
G431_addr.s:134 *ABS*:00000064 TIM_AF2_OFFSET
G431_addr.s:135 *ABS*:00000068 TIM_OR1_OFFSET
G431_addr.s:137 *ABS*:000003dc TIM_DCR_OFFSET
G431_addr.s:138 *ABS*:000003e0 TIM_DMAR_OFFSET
G431_addr.s:144 *ABS*:40000000 TIM2_BASE
G431_addr.s:146 *ABS*:40000000 TIM2_CR1
G431_addr.s:147 *ABS*:40000004 TIM2_CR2
G431_addr.s:148 *ABS*:40000008 TIM2_SMCR
G431_addr.s:149 *ABS*:4000000c TIM2_DIER
G431_addr.s:150 *ABS*:40000010 TIM2_SR
G431_addr.s:151 *ABS*:40000014 TIM2_EGR
G431_addr.s:152 *ABS*:40000018 TIM2_CCMR1
G431_addr.s:153 *ABS*:4000001c TIM2_CCMR2
G431_addr.s:154 *ABS*:40000020 TIM2_CCER
G431_addr.s:155 *ABS*:40000024 TIM2_CNT
G431_addr.s:156 *ABS*:40000028 TIM2_PSC
G431_addr.s:157 *ABS*:4000002c TIM2_ARR
G431_addr.s:159 *ABS*:40000034 TIM2_CCR1
G431_addr.s:160 *ABS*:40000038 TIM2_CCR2
G431_addr.s:161 *ABS*:4000003c TIM2_CCR3
G431_addr.s:162 *ABS*:40000040 TIM2_CCR4
G431_addr.s:164 *ABS*:40000058 TIM2_ECR
G431_addr.s:165 *ABS*:4000005c TIM2_TISEL
G431_addr.s:166 *ABS*:40000058 TIM2_AF1
G431_addr.s:167 *ABS*:40000058 TIM2_AF2
G431_addr.s:169 *ABS*:400003dc TIM2_DCR
G431_addr.s:170 *ABS*:400003e0 TIM2_DMAR
G431_addr.s:174 *ABS*:40000400 TIM3_BASE
G431_addr.s:176 *ABS*:40000400 TIM3_CR1
G431_addr.s:177 *ABS*:40000404 TIM3_CR2
G431_addr.s:178 *ABS*:40000408 TIM3_SMCR
G431_addr.s:179 *ABS*:4000040c TIM3_DIER
G431_addr.s:180 *ABS*:40000410 TIM3_SR
G431_addr.s:181 *ABS*:40000414 TIM3_EGR
G431_addr.s:182 *ABS*:40000418 TIM3_CCMR1
G431_addr.s:183 *ABS*:4000041c TIM3_CCMR2
G431_addr.s:184 *ABS*:40000420 TIM3_CCER
G431_addr.s:185 *ABS*:40000424 TIM3_CNT
G431_addr.s:186 *ABS*:40000428 TIM3_PSC
G431_addr.s:187 *ABS*:4000042c TIM3_ARR
G431_addr.s:189 *ABS*:40000434 TIM3_CCR1
G431_addr.s:190 *ABS*:40000438 TIM3_CCR2
G431_addr.s:191 *ABS*:4000043c TIM3_CCR3
G431_addr.s:192 *ABS*:40000440 TIM3_CCR4
G431_addr.s:194 *ABS*:40000458 TIM3_ECR
G431_addr.s:195 *ABS*:4000045c TIM3_TISEL
G431_addr.s:196 *ABS*:40000458 TIM3_AF1
G431_addr.s:197 *ABS*:40000458 TIM3_AF2
G431_addr.s:199 *ABS*:400007dc TIM3_DCR
G431_addr.s:200 *ABS*:400007e0 TIM3_DMAR
G431_addr.s:204 *ABS*:40000800 TIM4_BASE
G431_addr.s:206 *ABS*:40000800 TIM4_CR1
G431_addr.s:207 *ABS*:40000804 TIM4_CR2
G431_addr.s:208 *ABS*:40000808 TIM4_SMCR
G431_addr.s:209 *ABS*:4000080c TIM4_DIER
G431_addr.s:210 *ABS*:40000810 TIM4_SR
G431_addr.s:211 *ABS*:40000814 TIM4_EGR
G431_addr.s:212 *ABS*:40000818 TIM4_CCMR1
G431_addr.s:213 *ABS*:4000081c TIM4_CCMR2
G431_addr.s:214 *ABS*:40000820 TIM4_CCER
G431_addr.s:215 *ABS*:40000824 TIM4_CNT
G431_addr.s:216 *ABS*:40000828 TIM4_PSC
G431_addr.s:217 *ABS*:4000082c TIM4_ARR
G431_addr.s:219 *ABS*:40000834 TIM4_CCR1
G431_addr.s:220 *ABS*:40000838 TIM4_CCR2
G431_addr.s:221 *ABS*:4000083c TIM4_CCR3
G431_addr.s:222 *ABS*:40000840 TIM4_CCR4
G431_addr.s:224 *ABS*:40000858 TIM4_ECR
G431_addr.s:225 *ABS*:4000085c TIM4_TISEL
G431_addr.s:226 *ABS*:40000858 TIM4_AF1
G431_addr.s:227 *ABS*:40000858 TIM4_AF2
G431_addr.s:229 *ABS*:40000bdc TIM4_DCR
G431_addr.s:230 *ABS*:40000be0 TIM4_DMAR
G431_addr.s:234 *ABS*:40000c00 TIM5_BASE
G431_addr.s:236 *ABS*:40000c00 TIM5_CR1
G431_addr.s:237 *ABS*:40000c04 TIM5_CR2
G431_addr.s:238 *ABS*:40000c08 TIM5_SMCR
G431_addr.s:239 *ABS*:40000c0c TIM5_DIER
G431_addr.s:240 *ABS*:40000c10 TIM5_SR
G431_addr.s:241 *ABS*:40000c14 TIM5_EGR
G431_addr.s:242 *ABS*:40000c18 TIM5_CCMR1
G431_addr.s:243 *ABS*:40000c1c TIM5_CCMR2
G431_addr.s:244 *ABS*:40000c20 TIM5_CCER
G431_addr.s:245 *ABS*:40000c24 TIM5_CNT
G431_addr.s:246 *ABS*:40000c28 TIM5_PSC
G431_addr.s:247 *ABS*:40000c2c TIM5_ARR
G431_addr.s:249 *ABS*:40000c34 TIM5_CCR1
G431_addr.s:250 *ABS*:40000c38 TIM5_CCR2
G431_addr.s:251 *ABS*:40000c3c TIM5_CCR3
G431_addr.s:252 *ABS*:40000c40 TIM5_CCR4
G431_addr.s:254 *ABS*:40000c58 TIM5_ECR
G431_addr.s:255 *ABS*:40000c5c TIM5_TISEL
G431_addr.s:256 *ABS*:40000c58 TIM5_AF1
G431_addr.s:257 *ABS*:40000c58 TIM5_AF2
G431_addr.s:259 *ABS*:40000fdc TIM5_DCR
G431_addr.s:260 *ABS*:40000fe0 TIM5_DMAR
G431_addr.s:264 *ABS*:40001000 TIM6_BASE
G431_addr.s:266 *ABS*:40001000 TIM6_CR1
G431_addr.s:267 *ABS*:40001004 TIM6_CR2
G431_addr.s:269 *ABS*:4000100c TIM6_DIER
G431_addr.s:270 *ABS*:40001010 TIM6_SR
G431_addr.s:271 *ABS*:40001014 TIM6_EGR
G431_addr.s:273 *ABS*:40001024 TIM6_CNT
G431_addr.s:274 *ABS*:40001028 TIM6_PSC
G431_addr.s:275 *ABS*:4000102c TIM6_ARR
G431_addr.s:279 *ABS*:40001400 TIM7_BASE
G431_addr.s:281 *ABS*:40001400 TIM7_CR1
G431_addr.s:282 *ABS*:40001404 TIM7_CR2
G431_addr.s:284 *ABS*:4000140c TIM7_DIER
G431_addr.s:285 *ABS*:40001410 TIM7_SR
G431_addr.s:286 *ABS*:40001414 TIM7_EGR
G431_addr.s:288 *ABS*:40001424 TIM7_CNT
G431_addr.s:289 *ABS*:40001428 TIM7_PSC
G431_addr.s:290 *ABS*:4000142c TIM7_ARR
G431_addr.s:294 *ABS*:40012c00 TIM1_BASE
G431_addr.s:296 *ABS*:40012c00 TIM1_CR1
G431_addr.s:297 *ABS*:40012c04 TIM1_CR2
G431_addr.s:298 *ABS*:40012c08 TIM1_SMCR
G431_addr.s:299 *ABS*:40012c0c TIM1_DIER
G431_addr.s:300 *ABS*:40012c10 TIM1_SR
G431_addr.s:301 *ABS*:40012c14 TIM1_EGR
G431_addr.s:302 *ABS*:40012c18 TIM1_CCMR1
G431_addr.s:303 *ABS*:40012c1c TIM1_CCMR2
G431_addr.s:304 *ABS*:40012c20 TIM1_CCER
G431_addr.s:305 *ABS*:40012c24 TIM1_CNT
G431_addr.s:306 *ABS*:40012c28 TIM1_PSC
G431_addr.s:307 *ABS*:40012c2c TIM1_ARR
G431_addr.s:308 *ABS*:40012c30 TIM1_RCR
G431_addr.s:309 *ABS*:40012c34 TIM1_CCR1
G431_addr.s:310 *ABS*:40012c38 TIM1_CCR2
G431_addr.s:311 *ABS*:40012c3c TIM1_CCR3
G431_addr.s:312 *ABS*:40012c40 TIM1_CCR4
G431_addr.s:313 *ABS*:40012c44 TIM1_BDTR
G431_addr.s:314 *ABS*:40012c48 TIM1_CCR5
G431_addr.s:315 *ABS*:40012c4c TIM1_CCR6
G431_addr.s:316 *ABS*:40012c50 TIM1_CCMR3
G431_addr.s:317 *ABS*:40012c54 TIM1_DTR2
G431_addr.s:318 *ABS*:40012c58 TIM1_ECR
G431_addr.s:319 *ABS*:40012c5c TIM1_TISEL
G431_addr.s:320 *ABS*:40012c60 TIM1_AF1
G431_addr.s:321 *ABS*:40012c64 TIM1_AF2
G431_addr.s:323 *ABS*:40012fdc TIM1_DCR
G431_addr.s:324 *ABS*:40012fe0 TIM1_DMAR
G431_addr.s:328 *ABS*:40013400 TIM8_BASE
G431_addr.s:330 *ABS*:40013400 TIM8_CR1
G431_addr.s:331 *ABS*:40013404 TIM8_CR2
G431_addr.s:332 *ABS*:40013408 TIM8_SMCR
G431_addr.s:333 *ABS*:4001340c TIM8_DIER
G431_addr.s:334 *ABS*:40013410 TIM8_SR
G431_addr.s:335 *ABS*:40013414 TIM8_EGR
G431_addr.s:336 *ABS*:40013418 TIM8_CCMR1
G431_addr.s:337 *ABS*:4001341c TIM8_CCMR2
G431_addr.s:338 *ABS*:40013420 TIM8_CCER
G431_addr.s:339 *ABS*:40013424 TIM8_CNT
G431_addr.s:340 *ABS*:40013428 TIM8_PSC
G431_addr.s:341 *ABS*:4001342c TIM8_ARR
G431_addr.s:342 *ABS*:40013430 TIM8_RCR
G431_addr.s:343 *ABS*:40013434 TIM8_CCR1
G431_addr.s:344 *ABS*:40013438 TIM8_CCR2
G431_addr.s:345 *ABS*:4001343c TIM8_CCR3
G431_addr.s:346 *ABS*:40013440 TIM8_CCR4
G431_addr.s:347 *ABS*:40013444 TIM8_BDTR
G431_addr.s:348 *ABS*:40013448 TIM8_CCR5
G431_addr.s:349 *ABS*:4001344c TIM8_CCR6
G431_addr.s:350 *ABS*:40013450 TIM8_CCMR3
G431_addr.s:351 *ABS*:40013454 TIM8_DTR2
G431_addr.s:352 *ABS*:40013458 TIM8_ECR
G431_addr.s:353 *ABS*:4001345c TIM8_TISEL
G431_addr.s:354 *ABS*:40013460 TIM8_AF1
G431_addr.s:355 *ABS*:40013464 TIM8_AF2
G431_addr.s:357 *ABS*:400137dc TIM8_DCR
G431_addr.s:358 *ABS*:400137e0 TIM8_DMAR
G431_addr.s:362 *ABS*:40015000 TIM20_BASE
G431_addr.s:364 *ABS*:40015000 TIM20_CR1
G431_addr.s:365 *ABS*:40015004 TIM20_CR2
G431_addr.s:366 *ABS*:40015008 TIM20_SMCR
G431_addr.s:367 *ABS*:4001500c TIM20_DIER
G431_addr.s:368 *ABS*:40015010 TIM20_SR
G431_addr.s:369 *ABS*:40015014 TIM20_EGR
G431_addr.s:370 *ABS*:40015018 TIM20_CCMR1
G431_addr.s:371 *ABS*:4001501c TIM20_CCMR2
G431_addr.s:372 *ABS*:40015020 TIM20_CCER
G431_addr.s:373 *ABS*:40015024 TIM20_CNT
G431_addr.s:374 *ABS*:40015028 TIM20_PSC
G431_addr.s:375 *ABS*:4001502c TIM20_ARR
G431_addr.s:376 *ABS*:40015030 TIM20_RCR
G431_addr.s:377 *ABS*:40015034 TIM20_CCR1
G431_addr.s:378 *ABS*:40015038 TIM20_CCR2
G431_addr.s:379 *ABS*:4001503c TIM20_CCR3
G431_addr.s:380 *ABS*:40015040 TIM20_CCR4
G431_addr.s:381 *ABS*:40015044 TIM20_BDTR
G431_addr.s:382 *ABS*:40015048 TIM20_CCR5
G431_addr.s:383 *ABS*:4001504c TIM20_CCR6
G431_addr.s:384 *ABS*:40015050 TIM20_CCMR3
G431_addr.s:385 *ABS*:40015054 TIM20_DTR2
G431_addr.s:386 *ABS*:40015058 TIM20_ECR
G431_addr.s:387 *ABS*:4001505c TIM20_TISEL
G431_addr.s:388 *ABS*:40015060 TIM20_AF1
G431_addr.s:389 *ABS*:40015064 TIM20_AF2
G431_addr.s:391 *ABS*:400153dc TIM20_DCR
G431_addr.s:392 *ABS*:400153e0 TIM20_DMAR
G431_addr.s:396 *ABS*:40014000 TIM15_BASE
G431_addr.s:398 *ABS*:40014000 TIM15_CR1
G431_addr.s:399 *ABS*:40014004 TIM15_CR2
G431_addr.s:400 *ABS*:40014008 TIM15_SMCR
G431_addr.s:401 *ABS*:4001400c TIM15_DIER
G431_addr.s:402 *ABS*:40014010 TIM15_SR
G431_addr.s:403 *ABS*:40014014 TIM15_EGR
G431_addr.s:404 *ABS*:40014018 TIM15_CCMR1
G431_addr.s:406 *ABS*:40014020 TIM15_CCER
G431_addr.s:407 *ABS*:40014024 TIM15_CNT
G431_addr.s:408 *ABS*:40014028 TIM15_PSC
G431_addr.s:409 *ABS*:4001402c TIM15_ARR
G431_addr.s:410 *ABS*:40014030 TIM15_RCR
G431_addr.s:411 *ABS*:40014034 TIM15_CCR1
G431_addr.s:412 *ABS*:40014038 TIM15_CCR2
G431_addr.s:414 *ABS*:40014044 TIM15_BDTR
G431_addr.s:416 *ABS*:40014054 TIM15_DTR2
G431_addr.s:418 *ABS*:4001405c TIM15_TISEL
G431_addr.s:419 *ABS*:40014060 TIM15_AF1
G431_addr.s:420 *ABS*:40014064 TIM15_AF2
G431_addr.s:422 *ABS*:400143dc TIM15_DCR
G431_addr.s:423 *ABS*:400143e0 TIM15_DMAR
G431_addr.s:427 *ABS*:40014400 TIM16_BASE
G431_addr.s:429 *ABS*:40014400 TIM16_CR1
G431_addr.s:430 *ABS*:40014404 TIM16_CR2
G431_addr.s:432 *ABS*:4001440c TIM16_DIER
G431_addr.s:433 *ABS*:40014410 TIM16_SR
G431_addr.s:434 *ABS*:40014414 TIM16_EGR
G431_addr.s:435 *ABS*:40014418 TIM16_CCMR1
G431_addr.s:437 *ABS*:40014420 TIM16_CCER
G431_addr.s:438 *ABS*:40014424 TIM16_CNT
G431_addr.s:439 *ABS*:40014428 TIM16_PSC
G431_addr.s:440 *ABS*:4001442c TIM16_ARR
G431_addr.s:441 *ABS*:40014430 TIM16_RCR
G431_addr.s:442 *ABS*:40014434 TIM16_CCR1
G431_addr.s:444 *ABS*:40014444 TIM16_BDTR
G431_addr.s:446 *ABS*:40014454 TIM16_DTR2
G431_addr.s:448 *ABS*:4001445c TIM16_TISEL
G431_addr.s:449 *ABS*:40014460 TIM16_AF1
G431_addr.s:450 *ABS*:40014464 TIM16_AF2
G431_addr.s:451 *ABS*:40014468 TIM16_OR1
G431_addr.s:453 *ABS*:400147dc TIM16_DCR
G431_addr.s:454 *ABS*:400147e0 TIM16_DMAR
G431_addr.s:458 *ABS*:40014800 TIM17_BASE
G431_addr.s:460 *ABS*:40014800 TIM17_CR1
G431_addr.s:461 *ABS*:40014804 TIM17_CR2
G431_addr.s:463 *ABS*:4001480c TIM17_DIER
G431_addr.s:464 *ABS*:40014810 TIM17_SR
G431_addr.s:465 *ABS*:40014814 TIM17_EGR
G431_addr.s:466 *ABS*:40014818 TIM17_CCMR1
G431_addr.s:468 *ABS*:40014820 TIM17_CCER
G431_addr.s:469 *ABS*:40014824 TIM17_CNT
G431_addr.s:470 *ABS*:40014828 TIM17_PSC
G431_addr.s:471 *ABS*:4001482c TIM17_ARR
G431_addr.s:472 *ABS*:40014830 TIM17_RCR
G431_addr.s:473 *ABS*:40014834 TIM17_CCR1
G431_addr.s:475 *ABS*:40014844 TIM17_BDTR
G431_addr.s:477 *ABS*:40014854 TIM17_DTR2
G431_addr.s:479 *ABS*:4001485c TIM17_TISEL
G431_addr.s:480 *ABS*:40014860 TIM17_AF1
G431_addr.s:481 *ABS*:40014864 TIM17_AF2
G431_addr.s:482 *ABS*:40014868 TIM17_OR1
G431_addr.s:484 *ABS*:40014bdc TIM17_DCR
G431_addr.s:485 *ABS*:40014be0 TIM17_DMAR
G431_addr.s:493 *ABS*:40021000 RCC_BASE
G431_addr.s:495 *ABS*:40021000 RCC_CR
G431_addr.s:496 *ABS*:40021004 RCC_ICSCR
G431_addr.s:497 *ABS*:40021008 RCC_CFGR
G431_addr.s:498 *ABS*:4002100c RCC_PLLCFGR
G431_addr.s:500 *ABS*:40021018 RCC_CIER
G431_addr.s:501 *ABS*:4002101c RCC_CIFR
G431_addr.s:502 *ABS*:40021020 RCC_CICR
G431_addr.s:504 *ABS*:40021028 RCC_AHB1RSTR
G431_addr.s:505 *ABS*:4002102c RCC_AHB2RSTR
G431_addr.s:506 *ABS*:40021030 RCC_AHB3RSTR
G431_addr.s:508 *ABS*:40021038 RCC_APB1RSTR1
G431_addr.s:509 *ABS*:4002103c RCC_APB1RSTR2
G431_addr.s:510 *ABS*:40021040 RCC_APB2RSTR
G431_addr.s:512 *ABS*:40021048 RCC_AHB1ENR
G431_addr.s:513 *ABS*:4002104c RCC_AHB2ENR
G431_addr.s:514 *ABS*:40021050 RCC_AHB3ENR
G431_addr.s:516 *ABS*:40021058 RCC_APB1ENR1
G431_addr.s:517 *ABS*:4002105c RCC_APB1ENR2
G431_addr.s:518 *ABS*:40021060 RCC_APB2ENR
G431_addr.s:520 *ABS*:40021068 RCC_AHB1SMENR
G431_addr.s:521 *ABS*:4002106c RCC_AHB2SMENR
G431_addr.s:522 *ABS*:40021070 RCC_AHB3SMENR
G431_addr.s:524 *ABS*:40021078 RCC_APB1SMENR1
G431_addr.s:525 *ABS*:4002107c RCC_APB1SMENR2
G431_addr.s:526 *ABS*:40021080 RCC_APB2SMENR
G431_addr.s:528 *ABS*:40021088 RCC_CCIPR
G431_addr.s:530 *ABS*:40021090 RCC_BDCR
G431_addr.s:531 *ABS*:40021094 RCC_CSR
G431_addr.s:532 *ABS*:40021098 RCC_CRRCR
G431_addr.s:533 *ABS*:4002109c RCC_CCIPR2
G431_addr.s:541 *ABS*:48000000 GPIO_BASE
G431_addr.s:543 *ABS*:00000000 GPIO_MODER_OFFSET
G431_addr.s:544 *ABS*:00000004 GPIO_OTYPER_OFFSET
G431_addr.s:545 *ABS*:00000008 GPIO_OSPEEDR_OFFSET
G431_addr.s:546 *ABS*:0000000c GPIO_PUPDR_OFFSET
G431_addr.s:547 *ABS*:00000010 GPIO_IDR_OFFSET
G431_addr.s:548 *ABS*:00000014 GPIO_ODR_OFFSET
G431_addr.s:549 *ABS*:00000018 GPIO_BSRR_OFFSET
G431_addr.s:550 *ABS*:0000001c GPIO_LCKR_OFFSET
G431_addr.s:551 *ABS*:00000020 GPIO_AFRL_OFFSET
G431_addr.s:552 *ABS*:00000024 GPIO_AFRH_OFFSET
G431_addr.s:553 *ABS*:00000028 GPIO_BRR_OFFSET
G431_addr.s:559 *ABS*:48000000 GPIOA_BASE
G431_addr.s:561 *ABS*:48000000 GPIOA_MODER
G431_addr.s:562 *ABS*:48000004 GPIOA_OTYPER
G431_addr.s:563 *ABS*:48000008 GPIOA_OSPEEDR
G431_addr.s:564 *ABS*:4800000c GPIOA_PUPDR
G431_addr.s:565 *ABS*:48000010 GPIOA_IDR
G431_addr.s:566 *ABS*:48000014 GPIOA_ODR
G431_addr.s:567 *ABS*:48000018 GPIOA_BSRR
G431_addr.s:568 *ABS*:4800001c GPIOA_LCKR
G431_addr.s:569 *ABS*:48000020 GPIOA_AFRL
G431_addr.s:570 *ABS*:48000024 GPIOA_AFRH
G431_addr.s:571 *ABS*:48000028 GPIOA_BRR
G431_addr.s:575 *ABS*:48000400 GPIOB_BASE
G431_addr.s:577 *ABS*:48000400 GPIOB_MODER
G431_addr.s:578 *ABS*:48000404 GPIOB_OTYPER
G431_addr.s:579 *ABS*:48000408 GPIOB_OSPEEDR
G431_addr.s:580 *ABS*:4800040c GPIOB_PUPDR
G431_addr.s:581 *ABS*:48000410 GPIOB_IDR
G431_addr.s:582 *ABS*:48000414 GPIOB_ODR
G431_addr.s:583 *ABS*:48000418 GPIOB_BSRR
G431_addr.s:584 *ABS*:4800041c GPIOB_LCKR
G431_addr.s:585 *ABS*:48000420 GPIOB_AFRL
G431_addr.s:586 *ABS*:48000424 GPIOB_AFRH
G431_addr.s:587 *ABS*:48000428 GPIOB_BRR
G431_addr.s:591 *ABS*:48000800 GPIOC_BASE
G431_addr.s:593 *ABS*:48000800 GPIOC_MODER
G431_addr.s:594 *ABS*:48000804 GPIOC_OTYPER
G431_addr.s:595 *ABS*:48000808 GPIOC_OSPEEDR
G431_addr.s:596 *ABS*:4800080c GPIOC_PUPDR
G431_addr.s:597 *ABS*:48000810 GPIOC_IDR
G431_addr.s:598 *ABS*:48000814 GPIOC_ODR
G431_addr.s:599 *ABS*:48000818 GPIOC_BSRR
G431_addr.s:600 *ABS*:4800081c GPIOC_LCKR
G431_addr.s:601 *ABS*:48000820 GPIOC_AFRL
G431_addr.s:602 *ABS*:48000824 GPIOC_AFRH
G431_addr.s:603 *ABS*:48000828 GPIOC_BRR
G431_addr.s:607 *ABS*:48000c00 GPIOD_BASE
G431_addr.s:609 *ABS*:48000c00 GPIOD_MODER
G431_addr.s:610 *ABS*:48000c04 GPIOD_OTYPER
G431_addr.s:611 *ABS*:48000c08 GPIOD_OSPEEDR
G431_addr.s:612 *ABS*:48000c0c GPIOD_PUPDR
G431_addr.s:613 *ABS*:48000c10 GPIOD_IDR
G431_addr.s:614 *ABS*:48000c14 GPIOD_ODR
G431_addr.s:615 *ABS*:48000c18 GPIOD_BSRR
G431_addr.s:616 *ABS*:48000c1c GPIOD_LCKR
G431_addr.s:617 *ABS*:48000c20 GPIOD_AFRL
G431_addr.s:618 *ABS*:48000c24 GPIOD_AFRH
G431_addr.s:619 *ABS*:48000c28 GPIOD_BRR
G431_addr.s:623 *ABS*:48001000 GPIOE_BASE
G431_addr.s:625 *ABS*:48001000 GPIOE_MODER
G431_addr.s:626 *ABS*:48001004 GPIOE_OTYPER
G431_addr.s:627 *ABS*:48001008 GPIOE_OSPEEDR
G431_addr.s:628 *ABS*:4800100c GPIOE_PUPDR
G431_addr.s:629 *ABS*:48001010 GPIOE_IDR
G431_addr.s:630 *ABS*:48001014 GPIOE_ODR
G431_addr.s:631 *ABS*:48001018 GPIOE_BSRR
G431_addr.s:632 *ABS*:4800101c GPIOE_LCKR
G431_addr.s:633 *ABS*:48001020 GPIOE_AFRL
G431_addr.s:634 *ABS*:48001024 GPIOE_AFRH
G431_addr.s:635 *ABS*:48001028 GPIOE_BRR
G431_addr.s:639 *ABS*:48001400 GPIOF_BASE
G431_addr.s:641 *ABS*:48001400 GPIOF_MODER
G431_addr.s:642 *ABS*:48001404 GPIOF_OTYPER
G431_addr.s:643 *ABS*:48001408 GPIOF_OSPEEDR
G431_addr.s:644 *ABS*:4800140c GPIOF_PUPDR
G431_addr.s:645 *ABS*:48001410 GPIOF_IDR
G431_addr.s:646 *ABS*:48001414 GPIOF_ODR
G431_addr.s:647 *ABS*:48001418 GPIOF_BSRR
G431_addr.s:648 *ABS*:4800141c GPIOF_LCKR
G431_addr.s:649 *ABS*:48001420 GPIOF_AFRL
G431_addr.s:650 *ABS*:48001424 GPIOF_AFRH
G431_addr.s:651 *ABS*:48001428 GPIOF_BRR
G431_addr.s:655 *ABS*:48001800 GPIOG_BASE
G431_addr.s:657 *ABS*:48001800 GPIOG_MODER
G431_addr.s:658 *ABS*:48001804 GPIOG_OTYPER
G431_addr.s:659 *ABS*:48001808 GPIOG_OSPEEDR
G431_addr.s:660 *ABS*:4800180c GPIOG_PUPDR
G431_addr.s:661 *ABS*:48001810 GPIOG_IDR
G431_addr.s:662 *ABS*:48001814 GPIOG_ODR
G431_addr.s:663 *ABS*:48001818 GPIOG_BSRR
G431_addr.s:664 *ABS*:4800181c GPIOG_LCKR
G431_addr.s:665 *ABS*:48001820 GPIOG_AFRL
G431_addr.s:666 *ABS*:48001824 GPIOG_AFRH
G431_addr.s:667 *ABS*:48001828 GPIOG_BRR
G431_addr.s:675 *ABS*:e000e000 SCS_BASE
G431_addr.s:683 *ABS*:e000e00a STK_BASE
G431_addr.s:685 *ABS*:e000e000 STK_CTRL
G431_addr.s:686 *ABS*:e000e004 STK_LOAD
G431_addr.s:687 *ABS*:e000e008 STK_VAL
G431_addr.s:688 *ABS*:e000e00c STK_CALIB
G431_addr.s:696 *ABS*:e000e100 NVIC_BASE
G431_addr.s:698 *ABS*:e000e100 NVIC_ISER0
G431_addr.s:699 *ABS*:e000e104 NVIC_ISER1
G431_addr.s:700 *ABS*:e000e108 NVIC_ISER2
G431_addr.s:701 *ABS*:e000e10c NVIC_ISER3
G431_addr.s:703 *ABS*:e000e180 NVIC_ICER0
G431_addr.s:704 *ABS*:e000e184 NVIC_ICER1
G431_addr.s:705 *ABS*:e000e188 NVIC_ICER2
G431_addr.s:706 *ABS*:e000e18c NVIC_ICER3
G431_addr.s:708 *ABS*:e000e200 NVIC_ISPR0
G431_addr.s:709 *ABS*:e000e204 NVIC_ISPR1
G431_addr.s:710 *ABS*:e000e208 NVIC_ISPR2
G431_addr.s:711 *ABS*:e000e20c NVIC_ISPR3
G431_addr.s:713 *ABS*:e000e280 NVIC_ICPR0
G431_addr.s:714 *ABS*:e000e284 NVIC_ICPR1
G431_addr.s:715 *ABS*:e000e288 NVIC_ICPR2
G431_addr.s:716 *ABS*:e000e28c NVIC_ICPR3
G431_addr.s:718 *ABS*:e000e300 NVIC_IABR0
G431_addr.s:719 *ABS*:e000e304 NVIC_IABR1
G431_addr.s:720 *ABS*:e000e308 NVIC_IABR2
G431_addr.s:721 *ABS*:e000e30c NVIC_IABR3
G431_addr.s:723 *ABS*:e000e400 NVIC_IPR0
G431_addr.s:724 *ABS*:e000e404 NVIC_IPR1
G431_addr.s:725 *ABS*:e000e408 NVIC_IPR2
G431_addr.s:726 *ABS*:e000e40c NVIC_IPR3
G431_addr.s:727 *ABS*:e000e410 NVIC_IPR4
G431_addr.s:728 *ABS*:e000e414 NVIC_IPR5
G431_addr.s:729 *ABS*:e000e418 NVIC_IPR6
G431_addr.s:730 *ABS*:e000e41c NVIC_IPR7
G431_addr.s:731 *ABS*:e000e420 NVIC_IPR8
G431_addr.s:732 *ABS*:e000e424 NVIC_IPR9
G431_addr.s:733 *ABS*:e000e428 NVIC_IPR10
G431_addr.s:734 *ABS*:e000e42c NVIC_IPR11
G431_addr.s:735 *ABS*:e000e430 NVIC_IPR12
G431_addr.s:736 *ABS*:e000e434 NVIC_IPR13
G431_addr.s:737 *ABS*:e000e438 NVIC_IPR14
G431_addr.s:738 *ABS*:e000e43c NVIC_IPR15
G431_addr.s:739 *ABS*:e000e440 NVIC_IPR16
G431_addr.s:740 *ABS*:e000e444 NVIC_IPR17
G431_addr.s:741 *ABS*:e000e448 NVIC_IPR18
G431_addr.s:742 *ABS*:e000e44c NVIC_IPR19
G431_addr.s:743 *ABS*:e000e450 NVIC_IPR20
G431_addr.s:744 *ABS*:e000e454 NVIC_IPR21
G431_addr.s:745 *ABS*:e000e458 NVIC_IPR22
G431_addr.s:746 *ABS*:e000e45c NVIC_IPR23
G431_addr.s:747 *ABS*:e000e460 NVIC_IPR24
G431_addr.s:748 *ABS*:e000e464 NVIC_IPR25
G431_addr.s:750 *ABS*:e000ef00 STIR
G431_addr.s:758 *ABS*:e0042000 DBGMCU_BASE
G431_addr.s:760 *ABS*:e0042000 DBGMCU_IDCODE
G431_addr.s:761 *ABS*:e0042004 DBGMCU_CR
G431_addr.s:762 *ABS*:e0042008 DBGMCU_APB1FZR1
G431_addr.s:763 *ABS*:e004200c DBGMCU_APB1FZR2
G431_addr.s:764 *ABS*:e0042010 DBGMCU_APB2DZR
task2.s:38 .vectortable:00000000 $d
task2.s:61 .text:00000000 init
task2.s:221 .exhand:00000000 _ISR_NMI
task2.s:250 .exhand:00000028 _ISR_HARDF
task2.s:279 .exhand:00000050 _ISR_EXTI0
task2.s:313 .exhand:00000074 _ISR_EXTI4
task2.s:55 .text:00000000 $t
task2.s:181 .text:000000b8 main
task2.s:193 .text:000000c0 delay
task2.s:204 .text:000000c8 stop
task2.s:209 .text:000000ce .lp1
task2.s:210 .text:000000ce $d
task2.s:210 .text:000000d0 $d
task2.s:217 .exhand:00000000 $t
task2.s:299 .exhand:0000006a _clear_exti0
task2.s:333 .exhand:0000008e _clear_exti4
task2.s:342 .exhand:00000096 .lp2
task2.s:343 .exhand:00000096 $d
task2.s:343 .exhand:00000098 $d
NO UNDEFINED SYMBOLS