Skip to content

Commit 00b0438

Browse files
Tobias Badertschertobbad
authored andcommitted
L4 integration: Modification to startup code, clock configuration and interrupts.
1 parent b894551 commit 00b0438

File tree

3 files changed

+365
-13
lines changed

3 files changed

+365
-13
lines changed

stmhal/startup_stm32.S

Lines changed: 201 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,12 @@
4444
*/
4545

4646
.syntax unified
47-
#if defined(MCU_SERIES_M7)
47+
#if defined(MCU_SERIES_F7)
4848
.cpu cortex-m7
49-
#else
49+
#elif defined(MCU_SERIES_F4) || defined(MCU_SERIES_L4)
5050
.cpu cortex-m4
51+
#else
52+
#error "Unknown MCU Series"
5153
#endif
5254
.fpu softvfp
5355
.thumb
@@ -164,7 +166,11 @@ g_pfnVectors:
164166

165167
/* External Interrupts */
166168
.word WWDG_IRQHandler /* Window WatchDog */
169+
#if defined(MCU_SERIES_L4)
170+
.word PVD_PVM_IRQHandler /* PVD and PVM through EXTI line detection */
171+
#else
167172
.word PVD_IRQHandler /* PVD through EXTI Line detection */
173+
#endif
168174
.word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */
169175
.word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */
170176
.word FLASH_IRQHandler /* FLASH */
@@ -174,6 +180,16 @@ g_pfnVectors:
174180
.word EXTI2_IRQHandler /* EXTI Line2 */
175181
.word EXTI3_IRQHandler /* EXTI Line3 */
176182
.word EXTI4_IRQHandler /* EXTI Line4 */
183+
#if defined(MCU_SERIES_L4)
184+
.word DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */
185+
.word DMA1_Channel2_IRQHandler /* DMA1 Channel 2 */
186+
.word DMA1_Channel3_IRQHandler /* DMA1 Channel 3 */
187+
.word DMA1_Channel4_IRQHandler /* DMA1 Channel 4 */
188+
.word DMA1_Channel5_IRQHandler /* DMA1 Channel 5 */
189+
.word DMA1_Channel6_IRQHandler /* DMA1 Channel 6 */
190+
.word DMA1_Channel7_IRQHandler /* DMA1 Channel 7 */
191+
.word ADC1_2_IRQHandler /* ADC1 and ADC2 */
192+
#else
177193
.word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */
178194
.word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */
179195
.word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */
@@ -182,14 +198,21 @@ g_pfnVectors:
182198
.word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */
183199
.word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */
184200
.word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */
201+
#endif
185202
.word CAN1_TX_IRQHandler /* CAN1 TX */
186203
.word CAN1_RX0_IRQHandler /* CAN1 RX0 */
187204
.word CAN1_RX1_IRQHandler /* CAN1 RX1 */
188205
.word CAN1_SCE_IRQHandler /* CAN1 SCE */
189206
.word EXTI9_5_IRQHandler /* External Line[9:5]s */
207+
#if defined(MCU_SERIES_L4)
208+
.word TIM1_BRK_TIM15_IRQHandler /* TIM1 Break and TIM15 */
209+
.word TIM1_UP_TIM16_IRQHandler /* TIM1 Update and TIM16 */
210+
.word TIM1_TRG_COM_TIM17_IRQHandler /* TIM1 Trigger and Commutation and TIM17 */
211+
#else
190212
.word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */
191213
.word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */
192214
.word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */
215+
#endif
193216
.word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
194217
.word TIM2_IRQHandler /* TIM2 */
195218
.word TIM3_IRQHandler /* TIM3 */
@@ -205,13 +228,24 @@ g_pfnVectors:
205228
.word USART3_IRQHandler /* USART3 */
206229
.word EXTI15_10_IRQHandler /* External Line[15:10]s */
207230
.word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */
231+
#if defined(MCU_SERIES_L4)
232+
.word DFSDM3_IRQHandler /* Digital filter for sigma delta modulator 3 */
233+
.word TIM8_BRK_IRQHandler /* TIM8 Break */
234+
.word TIM8_UP_IRQHandler /* TIM8 Update */
235+
.word TIM8_TRG_COM_IRQHandler /* TIM8 Trigger and Commutation */
236+
#else
208237
.word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */
209238
.word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */
210239
.word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */
211240
.word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */
241+
#endif
212242
.word TIM8_CC_IRQHandler /* TIM8 Capture Compare */
243+
#if defined(MCU_SERIES_L4)
244+
.word ADC3_IRQHandler /* ADC3 global interrupt */
245+
#else
213246
.word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */
214-
#if defined(MCU_SERIES_F7)
247+
#endif
248+
#if defined(MCU_SERIES_F7) || defined(MCU_SERIES_L4)
215249
.word FMC_IRQHandler /* FMC */
216250
.word SDMMC1_IRQHandler /* SDMMC1 */
217251
#else
@@ -224,6 +258,19 @@ g_pfnVectors:
224258
.word UART5_IRQHandler /* UART5 */
225259
.word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */
226260
.word TIM7_IRQHandler /* TIM7 */
261+
#if defined(MCU_SERIES_L4)
262+
.word DMA2_Channel1_IRQHandler /* DMA2 Channel 1 */
263+
.word DMA2_Channel2_IRQHandler /* DMA2 Channel 2 */
264+
.word DMA2_Channel3_IRQHandler /* DMA2 Channel 3 */
265+
.word DMA2_Channel4_IRQHandler /* DMA2 Channel 4 */
266+
.word DMA2_Channel5_IRQHandler /* DMA2 Channel 5 */
267+
.word DFSDM0_IRQHandler /* Digital filter for sigma delta modulator 0 */
268+
.word DFSDM1_IRQHandler /* Digital filter for sigma delta modulator 1 */
269+
.word DFSDM2_IRQHandler /* Digital filter for sigma delta modulator 2 */
270+
.word COMP_IRQHandler /* Comporator thru EXTI line */
271+
.word LPTIM1_IRQHandler /* Low power timer 1 */
272+
.word LPTIM2_IRQHandler /* Low power timer 2 */
273+
#else
227274
.word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */
228275
.word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */
229276
.word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */
@@ -235,20 +282,40 @@ g_pfnVectors:
235282
.word CAN2_RX0_IRQHandler /* CAN2 RX0 */
236283
.word CAN2_RX1_IRQHandler /* CAN2 RX1 */
237284
.word CAN2_SCE_IRQHandler /* CAN2 SCE */
285+
#endif
238286
.word OTG_FS_IRQHandler /* USB OTG FS */
287+
#if defined(MCU_SERIES_L4)
288+
.word DMA2_Channel6_IRQHandler /* DMA2 Channel 6 */
289+
.word DMA2_Channel7_IRQHandler /* DMA2 Channel 7 */
290+
.word LPUART1_IRQHandler /* Low power UART */
291+
.word QUADSPI_IRQHandler /* Quad SPI */
292+
#else
239293
.word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */
240294
.word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */
241295
.word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */
242296
.word USART6_IRQHandler /* USART6 */
297+
#endif
243298
.word I2C3_EV_IRQHandler /* I2C3 event */
244299
.word I2C3_ER_IRQHandler /* I2C3 error */
300+
#if defined(MCU_SERIES_L4)
301+
.word SAI1_IRQHandler /* Serial audio interface 1 */
302+
.word SAI2_IRQHandler /* Serial audio interface 2 */
303+
.word SWPMI1_IRQHandler /* Single wire protocole 1 */
304+
.word TSC_IRQHandler /* Touch sensig controller */
305+
.word LCD_IRQHandler /* LCD */
306+
#else
245307
.word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */
246308
.word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */
247309
.word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */
248310
.word OTG_HS_IRQHandler /* USB OTG HS */
249311
.word DCMI_IRQHandler /* DCMI */
312+
#endif
250313
.word 0 /* CRYP crypto */
314+
#if defined(MCU_SERIES_L4)
315+
.word RNG_IRQHandler /* Random number generator */
316+
#else
251317
.word HASH_RNG_IRQHandler /* Hash and Rng */
318+
#endif
252319
.word FPU_IRQHandler /* FPU */
253320

254321
#if defined(MCU_SERIES_F7)
@@ -307,8 +374,13 @@ g_pfnVectors:
307374
.weak WWDG_IRQHandler
308375
.thumb_set WWDG_IRQHandler,Default_Handler
309376

377+
#if defined(MCU_SERIES_L4)
378+
.weak PVD_PVM_IRQHandler
379+
.thumb_set PVD_PVM_IRQHandler,Default_Handler
380+
#else
310381
.weak PVD_IRQHandler
311382
.thumb_set PVD_IRQHandler,Default_Handler
383+
#endif
312384

313385
.weak TAMP_STAMP_IRQHandler
314386
.thumb_set TAMP_STAMP_IRQHandler,Default_Handler
@@ -337,6 +409,31 @@ g_pfnVectors:
337409
.weak EXTI4_IRQHandler
338410
.thumb_set EXTI4_IRQHandler,Default_Handler
339411

412+
#if defined(MCU_SERIES_L4)
413+
.weak DMA1_Channel1_IRQHandler
414+
.thumb_set DMA1_Channel1_IRQHandler,Default_Handler
415+
416+
.weak DMA1_Channel2_IRQHandler
417+
.thumb_set DMA1_Channel2_IRQHandler,Default_Handler
418+
419+
.weak DMA1_Channel3_IRQHandler
420+
.thumb_set DMA1_Channel3_IRQHandler,Default_Handler
421+
422+
.weak DMA1_Channel4_IRQHandler
423+
.thumb_set DMA1_Channel4_IRQHandler,Default_Handler
424+
425+
.weak DMA1_Channel5_IRQHandler
426+
.thumb_set DMA1_Channel5_IRQHandler,Default_Handler
427+
428+
.weak DMA1_Channel6_IRQHandler
429+
.thumb_set DMA1_Channel6_IRQHandler,Default_Handler
430+
431+
.weak DMA1_Channel7_IRQHandler
432+
.thumb_set DMA1_Channel7_IRQHandler,Default_Handler
433+
434+
.weak ADC1_2_IRQHandler
435+
.thumb_set ADC1_2_IRQHandler,Default_Handler
436+
#else
340437
.weak DMA1_Stream0_IRQHandler
341438
.thumb_set DMA1_Stream0_IRQHandler,Default_Handler
342439

@@ -360,6 +457,7 @@ g_pfnVectors:
360457

361458
.weak ADC_IRQHandler
362459
.thumb_set ADC_IRQHandler,Default_Handler
460+
#endif
363461

364462
.weak CAN1_TX_IRQHandler
365463
.thumb_set CAN1_TX_IRQHandler,Default_Handler
@@ -376,6 +474,16 @@ g_pfnVectors:
376474
.weak EXTI9_5_IRQHandler
377475
.thumb_set EXTI9_5_IRQHandler,Default_Handler
378476

477+
#if defined(MCU_SERIES_L4)
478+
.weak TIM1_BRK_TIM15_IRQHandler
479+
.thumb_set TIM1_BRK_TIM15_IRQHandler,Default_Handler
480+
481+
.weak TIM1_UP_TIM16_IRQHandler
482+
.thumb_set TIM1_UP_TIM16_IRQHandler,Default_Handler
483+
484+
.weak TIM1_TRG_COM_TIM17_IRQHandler
485+
.thumb_set TIM1_TRG_COM_TIM17_IRQHandler,Default_Handler
486+
#else
379487
.weak TIM1_BRK_TIM9_IRQHandler
380488
.thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
381489

@@ -384,6 +492,7 @@ g_pfnVectors:
384492

385493
.weak TIM1_TRG_COM_TIM11_IRQHandler
386494
.thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
495+
#endif
387496

388497
.weak TIM1_CC_IRQHandler
389498
.thumb_set TIM1_CC_IRQHandler,Default_Handler
@@ -430,6 +539,19 @@ g_pfnVectors:
430539
.weak RTC_Alarm_IRQHandler
431540
.thumb_set RTC_Alarm_IRQHandler,Default_Handler
432541

542+
#if defined(MCU_SERIES_L4)
543+
.weak DFSDM3_IRQHandler
544+
.thumb_set DFSDM3_IRQHandler,Default_Handler
545+
546+
.weak TIM8_BRK_IRQHandler
547+
.thumb_set TIM8_BRK_IRQHandler,Default_Handler
548+
549+
.weak TIM8_UP_IRQHandler
550+
.thumb_set TIM8_UP_IRQHandler,Default_Handler
551+
552+
.weak TIM8_TRG_COM_IRQHandler
553+
.thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler
554+
#else
433555
.weak OTG_FS_WKUP_IRQHandler
434556
.thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
435557

@@ -441,14 +563,20 @@ g_pfnVectors:
441563

442564
.weak TIM8_TRG_COM_TIM14_IRQHandler
443565
.thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler
566+
#endif
444567

445568
.weak TIM8_CC_IRQHandler
446569
.thumb_set TIM8_CC_IRQHandler,Default_Handler
447570

571+
#if defined(MCU_SERIES_L4)
572+
.weak ADC3_IRQHandler
573+
.thumb_set ADC3_IRQHandler,Default_Handler
574+
#else
448575
.weak DMA1_Stream7_IRQHandler
449576
.thumb_set DMA1_Stream7_IRQHandler,Default_Handler
577+
#endif
450578

451-
#if defined(MCU_SERIES_F7)
579+
#if defined(MCU_SERIES_F7) || defined(MCU_SERIES_L4)
452580
.weak FMC_IRQHandler
453581
.thumb_set FMC_IRQHandler,Default_Handler
454582

@@ -480,6 +608,40 @@ g_pfnVectors:
480608
.weak TIM7_IRQHandler
481609
.thumb_set TIM7_IRQHandler,Default_Handler
482610

611+
#if defined(MCU_SERIES_L4)
612+
.weak DMA2_Channel1_IRQHandler
613+
.thumb_set DMA2_Channel1_IRQHandler,Default_Handler
614+
615+
.weak DMA2_Channel2_IRQHandler
616+
.thumb_set DMA2_Channel2_IRQHandler,Default_Handler
617+
618+
.weak DMA2_Channel3_IRQHandler
619+
.thumb_set DMA2_Channel3_IRQHandler,Default_Handler
620+
621+
.weak DMA2_Channel4_IRQHandler
622+
.thumb_set DMA2_Channel4_IRQHandler,Default_Handler
623+
624+
.weak DMA2_Channel5_IRQHandler
625+
.thumb_set DMA2_Channel5_IRQHandler,Default_Handler
626+
627+
.weak DFSDM0_IRQHandler
628+
.thumb_set DFSDM0_IRQHandler,Default_Handler
629+
630+
.weak DFSDM1_IRQHandler
631+
.thumb_set DFSDM1_IRQHandler,Default_Handler
632+
633+
.weak DFSDM2_IRQHandler
634+
.thumb_set DFSDM2_IRQHandler,Default_Handler
635+
636+
.weak COMP_IRQHandler
637+
.thumb_set COMP_IRQHandler,Default_Handler
638+
639+
.weak LPTIM1_IRQHandler
640+
.thumb_set LPTIM1_IRQHandler,Default_Handler
641+
642+
.weak LPTIM2_IRQHandler
643+
.thumb_set LPTIM2_IRQHandler,Default_Handler
644+
#else
483645
.weak DMA2_Stream0_IRQHandler
484646
.thumb_set DMA2_Stream0_IRQHandler,Default_Handler
485647

@@ -512,10 +674,24 @@ g_pfnVectors:
512674

513675
.weak CAN2_SCE_IRQHandler
514676
.thumb_set CAN2_SCE_IRQHandler,Default_Handler
677+
#endif
515678

516679
.weak OTG_FS_IRQHandler
517680
.thumb_set OTG_FS_IRQHandler,Default_Handler
518681

682+
#if defined(MCU_SERIES_L4)
683+
.weak DMA2_Channel6_IRQHandler
684+
.thumb_set DMA2_Channel6_IRQHandler,Default_Handler
685+
686+
.weak DMA2_Channel7_IRQHandler
687+
.thumb_set DMA2_Channel7_IRQHandler,Default_Handler
688+
689+
.weak LPUART1_IRQHandler
690+
.thumb_set LPUART1_IRQHandler,Default_Handler
691+
692+
.weak QUADSPI_IRQHandler
693+
.thumb_set QUADSPI_IRQHandler,Default_Handler
694+
#else
519695
.weak DMA2_Stream5_IRQHandler
520696
.thumb_set DMA2_Stream5_IRQHandler,Default_Handler
521697

@@ -527,13 +703,33 @@ g_pfnVectors:
527703

528704
.weak USART6_IRQHandler
529705
.thumb_set USART6_IRQHandler,Default_Handler
706+
#endif
530707

531708
.weak I2C3_EV_IRQHandler
532709
.thumb_set I2C3_EV_IRQHandler,Default_Handler
533710

534711
.weak I2C3_ER_IRQHandler
535712
.thumb_set I2C3_ER_IRQHandler,Default_Handler
536713

714+
#if defined(MCU_SERIES_L4)
715+
.weak SAI1_IRQHandler
716+
.thumb_set SAI1_IRQHandler,Default_Handler
717+
718+
.weak SAI2_IRQHandler
719+
.thumb_set SAI2_IRQHandler,Default_Handler
720+
721+
.weak SWPMI1_IRQHandler
722+
.thumb_set SWPMI1_IRQHandler,Default_Handler
723+
724+
.weak TSC_IRQHandler
725+
.thumb_set TSC_IRQHandler,Default_Handler
726+
727+
.weak LCD_IRQHandler
728+
.thumb_set LCD_IRQHandler,Default_Handler
729+
730+
.weak RNG_IRQHandler
731+
.thumb_set RNG_IRQHandler,Default_Handler
732+
#else
537733
.weak OTG_HS_EP1_OUT_IRQHandler
538734
.thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler
539735

@@ -551,6 +747,7 @@ g_pfnVectors:
551747

552748
.weak HASH_RNG_IRQHandler
553749
.thumb_set HASH_RNG_IRQHandler,Default_Handler
750+
#endif
554751

555752
.weak FPU_IRQHandler
556753
.thumb_set FPU_IRQHandler,Default_Handler

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy