8000 L4 integration: Modification to startup code, clock configuration and… · micropython/micropython@812b5ce · GitHub
[go: up one dir, main page]

Skip to content

Commit 812b5ce

Browse files
author
Tobias Badertscher
committed
L4 integration: Modification to startup code, clock configuration and interrupts.
1 parent b894551 commit 812b5ce

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)
0