소스 검색

update:补充源码license

alienwalker 4 년 전
부모
커밋
811e913800
1개의 변경된 파일294개의 추가작업 그리고 273개의 파일을 삭제
  1. 294 273
      bsp/air105/platform/startup_full.s

+ 294 - 273
bsp/air105/platform/startup_full.s

@@ -1,273 +1,294 @@
-  .syntax unified
-  .cpu cortex-m4
-  .fpu softvfp
-  .thumb
-
-.global  g_pfnVectors
-.global HardFault_Handler
-/* start address for the initialization values of the .data section. 
-defined in linker script */
-.word  _sidata
-/* start address for the .data section. defined in linker script */  
-.word  _sdata
-/* end address for the .data section. defined in linker script */
-.word  _edata
-/* start address for the .bss section. defined in linker script */
-.word  _sbss
-/* end address for the .bss section. defined in linker script */
-.word  _ebss
-/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
-
-/**
- * @brief  This is the code that gets called when the processor first
- *          starts execution following a reset event. Only the absolutely
- *          necessary set is performed, after which the application
- *          supplied main() routine is called. 
- * @param  None
- * @retval : None
-*/
-
-    .section  .text.Reset_Handler
-  .weak  Reset_Handler
-  .type  Reset_Handler, %function
-Reset_Handler:  
-	movs r0, #0
-	movs r1, #0
-	movs r2, #0
-	movs r3, #0
-	movs r4, #0
-	movs r5, #0
-	movs r6, #0
-	movs r7, #0
-
-	LDR R0, =g_pfnVectors
-	LDR R1, =0xE000ED08
-	STR R0,[R1]
-  ldr   sp, =_estack     /* set stack pointer */
-
-/* Copy the data segment initializers from flash to SRAM */  
-  movs  r1, #0
-  b  LoopCopyDataInit
-
-CopyDataInit:
-  ldr  r3, =_sidata
-  ldr  r3, [r3, r1]
-  str  r3, [r0, r1]
-  adds  r1, r1, #4
-    
-LoopCopyDataInit:
-  ldr  r0, =_sdata
-  ldr  r3, =_edata
-  adds  r2, r0, r1
-  cmp  r2, r3
-  bcc  CopyDataInit
-  ldr  r2, =_sbss
-  b  LoopFillZerobss
-/* Zero fill the bss segment. */  
-FillZerobss:
-  movs  r3, #0
-  str  r3, [r2], #4
-    
-LoopFillZerobss:
-  ldr  r3, = _ebss
-  cmp  r2, r3
-  bcc  FillZerobss
-
-/* Call the clock system intitialization function.*/
-  bl  SystemInit   
-/* Call static constructors */
-  bl __libc_init_array /*目前看来这个没什么用,如果代码量有超可以去掉*/
-/* Call the application's entry point.*/
-  bl  main
-  bx  lr    
-.size  Reset_Handler, .-Reset_Handler
-
-/**
- * @brief  This is the code that gets called when the processor receives an 
- *         unexpected interrupt.  This simply enters an infinite loop, preserving
- *         the system state for examination by a debugger.
- * @param  None     
- * @retval None       
-*/
-    .section  .text.Default_Handler,"ax",%progbits
-Default_Handler:
-Infinite_Loop:
-  b  Infinite_Loop
-  .size  Default_Handler, .-Default_Handler
-/******************************************************************************
-*
-* The minimal vector table for a Cortex M3. Note that the proper constructs
-* must be placed on this to ensure that it ends up at physical address
-* 0x0000.0000.
-* 
-*******************************************************************************/
-   .section  .isr_vector,"a",%progbits
-  .type  g_pfnVectors, %object
-  .size  g_pfnVectors, .-g_pfnVectors
-    
-    
-g_pfnVectors:
-  .word  _estack
-  .word  Reset_Handler
-  .word  NMI_Handler
-  .word  HardFault_Handler
-  .word  MemManage_Handler
-  .word  BusFault_Handler
-  .word  UsageFault_Handler
-  .word  0
-  .word  0
-  .word  0
-  .word  0
-  .word  SVC_Handler
-  .word  DebugMon_Handler
-  .word  0
-  .word  PendSV_Handler
-  .word  SysTick_Handler
-  
-  /* External Interrupts */
-  .word     ISR_GlobalHandler                   /* Window WatchDog              */                                        
-  .word     ISR_GlobalHandler                    /* PVD through EXTI Line detection */                        
-  .word     ISR_GlobalHandler             /* Tamper and TimeStamps through the EXTI line */            
-  .word     ISR_GlobalHandler               /* RTC Wakeup through the EXTI line */                      
-  .word     ISR_GlobalHandler                  /* FLASH                        */                                          
-  .word     ISR_GlobalHandler                    /* RCC                          */                                            
-  .word     ISR_GlobalHandler                  /* EXTI Line0                   */                        
-  .word     ISR_GlobalHandler                  /* EXTI Line1                   */                          
-  .word     ISR_GlobalHandler                  /* EXTI Line2                   */                          
-  .word     ISR_GlobalHandler                  /* EXTI Line3                   */                          
-  .word     ISR_GlobalHandler                  /* EXTI Line4                   */                          
-  .word     ISR_GlobalHandler           /* DMA1 Stream 0                */                  
-  .word     ISR_GlobalHandler           /* DMA1 Stream 1                */                   
-  .word     ISR_GlobalHandler           /* DMA1 Stream 2                */                   
-  .word     ISR_GlobalHandler           /* DMA1 Stream 3                */                   
-  .word     ISR_GlobalHandler           /* DMA1 Stream 4                */                   
-  .word     ISR_GlobalHandler           /* DMA1 Stream 5                */                   
-  .word     ISR_GlobalHandler           /* DMA1 Stream 6                */                   
-  .word     ISR_GlobalHandler                    /* ADC1, ADC2 and ADC3s         */                   
-  .word     ISR_GlobalHandler                /* CAN1 TX                      */                         
-  .word     ISR_GlobalHandler               /* CAN1 RX0                     */                          
-  .word     ISR_GlobalHandler               /* CAN1 RX1                     */                          
-  .word     ISR_GlobalHandler               /* CAN1 SCE                     */                          
-  .word     ISR_GlobalHandler                /* External Line[9:5]s          */                          
-  .word     ISR_GlobalHandler          /* TIM1 Break and TIM9          */         
-  .word     ISR_GlobalHandler          /* TIM1 Update and TIM10        */         
-  .word     ISR_GlobalHandler     /* TIM1 Trigger and Commutation and TIM11 */
-  .word     ISR_GlobalHandler                /* TIM1 Capture Compare         */                          
-  .word     ISR_GlobalHandler                   /* TIM2                         */                   
-  .word     ISR_GlobalHandler                   /* TIM3                         */                   
-  .word     ISR_GlobalHandler                   /* TIM4                         */                   
-  .word     ISR_GlobalHandler                /* I2C1 Event                   */                          
-  .word     ISR_GlobalHandler                /* I2C1 Error                   */                          
-  .word     ISR_GlobalHandler                /* I2C2 Event                   */                          
-  .word     ISR_GlobalHandler                /* I2C2 Error                   */                            
-  .word     ISR_GlobalHandler                   /* SPI1                         */                   
-  .word     ISR_GlobalHandler                   /* SPI2                         */                   
-  .word     ISR_GlobalHandler                 /* USART1                       */                   
-  .word     ISR_GlobalHandler                 /* USART2                       */                   
-  .word     ISR_GlobalHandler                 /* USART3                       */                   
-  .word     ISR_GlobalHandler              /* External Line[15:10]s        */                          
-  .word     ISR_GlobalHandler              /* RTC Alarm (A and B) through EXTI Line */                 
-  .word     ISR_GlobalHandler            /* USB OTG FS Wakeup through EXTI line */                       
-  .word     ISR_GlobalHandler         /* TIM8 Break and TIM12         */         
-  .word     ISR_GlobalHandler          /* TIM8 Update and TIM13        */         
-  .word     ISR_GlobalHandler     /* TIM8 Trigger and Commutation and TIM14 */
-  .word     ISR_GlobalHandler                /* TIM8 Capture Compare         */                          
-  .word     ISR_GlobalHandler           /* DMA1 Stream7                 */                          
-  .word     ISR_GlobalHandler                   /* FSMC                         */                   
-  .word     ISR_GlobalHandler                   /* SDIO                         */                   
-  .word     ISR_GlobalHandler                   /* TIM5                         */                   
-  .word     ISR_GlobalHandler                   /* SPI3                         */                   
-  .word     ISR_GlobalHandler                  /* UART4                        */                   
-  .word     ISR_GlobalHandler                  /* UART5                        */                   
-  .word     ISR_GlobalHandler               /* TIM6 and DAC1&2 underrun errors */                   
-  .word     ISR_GlobalHandler                   /* TIM7                         */
-  .word     ISR_GlobalHandler           /* DMA2 Stream 0                */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 1                */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 2                */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 3                */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 4                */                   
-  .word     ISR_GlobalHandler                    /* Ethernet                     */                   
-  .word     ISR_GlobalHandler               /* Ethernet Wakeup through EXTI line */                     
-  .word     ISR_GlobalHandler                /* CAN2 TX                      */                          
-  .word     ISR_GlobalHandler               /* CAN2 RX0                     */                          
-  .word     ISR_GlobalHandler               /* CAN2 RX1                     */                          
-  .word     ISR_GlobalHandler               /* CAN2 SCE                     */                          
-  .word     ISR_GlobalHandler                 /* USB OTG FS                   */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 5                */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 6                */                   
-  .word     ISR_GlobalHandler           /* DMA2 Stream 7                */                   
-  .word     ISR_GlobalHandler                 /* USART6                       */                    
-  .word     ISR_GlobalHandler                /* I2C3 event                   */                          
-  .word     ISR_GlobalHandler                /* I2C3 error                   */                          
-  .word     ISR_GlobalHandler         /* USB OTG HS End Point 1 Out   */                   
-  .word     ISR_GlobalHandler          /* USB OTG HS End Point 1 In    */                   
-  .word     ISR_GlobalHandler            /* USB OTG HS Wakeup through EXTI */                         
-  .word     ISR_GlobalHandler                 /* USB OTG HS                   */                   
-  .word     ISR_GlobalHandler                   /* DCMI                         */                   
-  .word     ISR_GlobalHandler                                /* CRYP crypto                  */                   
-  .word     ISR_GlobalHandler               /* Hash and Rng                 */
-  .word     ISR_GlobalHandler                    /* FPU                          */
-  .word     ISR_GlobalHandler                  /* UART7                        */      
-  .word     ISR_GlobalHandler                  /* UART8                        */
-  .word     ISR_GlobalHandler                   /* SPI4                         */
-  .word     ISR_GlobalHandler                   /* SPI5 						  */
-  .word     ISR_GlobalHandler                   /* SPI6						  */
-  .word     ISR_GlobalHandler                   /* SAI1						  */
-  .word     ISR_GlobalHandler                   /* LTDC_IRQHandler			  */
-  .word     ISR_GlobalHandler                /* LTDC_ER_IRQHandler			  */
-  .word     ISR_GlobalHandler                  /* DMA2D                   
-                         
-/*******************************************************************************
-*
-* Provide weak aliases for each Exception handler to the Default_Handler. 
-* As they are weak aliases, any function with the same name will override 
-* this definition.
-* 
-*******************************************************************************/
-   .weak      NMI_Handler
-   .thumb_set NMI_Handler,Default_Handler
-
-
-
-	.section  .text.CmTrace_Handler
- 	.type CmTrace_Handler, %function
-CmTrace_Handler:
- 	MOV     r0, lr                  /* get lr */
-    MOV     r1, sp                  /* get stack pointer (current is MSP) */
-    BL      cm_backtrace_fault
-Fault_Loop:
-    BL      Fault_Loop              /* while(1) */
-    
-   .weak      NMI_Handler
-   .thumb_set NMI_Handler,CmTrace_Handler
-  
-   .weak      HardFault_Handler
-   .thumb_set HardFault_Handler,CmTrace_Handler
-  
-   .weak      MemManage_Handler
-   .thumb_set MemManage_Handler,CmTrace_Handler
-  
-   .weak      BusFault_Handler
-   .thumb_set BusFault_Handler,CmTrace_Handler
-
-   .weak      UsageFault_Handler
-   .thumb_set UsageFault_Handler,CmTrace_Handler
-
-   .weak      SVC_Handler
-   .thumb_set SVC_Handler,Default_Handler
-
-   .weak      DebugMon_Handler
-   .thumb_set DebugMon_Handler,Default_Handler
-
-   .weak      PendSV_Handler
-   .thumb_set PendSV_Handler,Default_Handler
-
-   .weak      SysTick_Handler
-   .thumb_set SysTick_Handler,Default_Handler              
-  
-   .weak      ISR_GlobalHandler                   
-   .thumb_set ISR_GlobalHandler,Default_Handler      
-                  
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+/*
+ * Copyright (c) 2022 OpenLuat & AirM2M
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+  .syntax unified
+  .cpu cortex-m4
+  .fpu softvfp
+  .thumb
+
+.global  g_pfnVectors
+.global HardFault_Handler
+/* start address for the initialization values of the .data section. 
+defined in linker script */
+.word  _sidata
+/* start address for the .data section. defined in linker script */  
+.word  _sdata
+/* end address for the .data section. defined in linker script */
+.word  _edata
+/* start address for the .bss section. defined in linker script */
+.word  _sbss
+/* end address for the .bss section. defined in linker script */
+.word  _ebss
+/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
+
+/**
+ * @brief  This is the code that gets called when the processor first
+ *          starts execution following a reset event. Only the absolutely
+ *          necessary set is performed, after which the application
+ *          supplied main() routine is called. 
+ * @param  None
+ * @retval : None
+*/
+
+    .section  .text.Reset_Handler
+  .weak  Reset_Handler
+  .type  Reset_Handler, %function
+Reset_Handler:  
+	movs r0, #0
+	movs r1, #0
+	movs r2, #0
+	movs r3, #0
+	movs r4, #0
+	movs r5, #0
+	movs r6, #0
+	movs r7, #0
+
+	LDR R0, =g_pfnVectors
+	LDR R1, =0xE000ED08
+	STR R0,[R1]
+  ldr   sp, =_estack     /* set stack pointer */
+
+/* Copy the data segment initializers from flash to SRAM */  
+  movs  r1, #0
+  b  LoopCopyDataInit
+
+CopyDataInit:
+  ldr  r3, =_sidata
+  ldr  r3, [r3, r1]
+  str  r3, [r0, r1]
+  adds  r1, r1, #4
+    
+LoopCopyDataInit:
+  ldr  r0, =_sdata
+  ldr  r3, =_edata
+  adds  r2, r0, r1
+  cmp  r2, r3
+  bcc  CopyDataInit
+  ldr  r2, =_sbss
+  b  LoopFillZerobss
+/* Zero fill the bss segment. */  
+FillZerobss:
+  movs  r3, #0
+  str  r3, [r2], #4
+    
+LoopFillZerobss:
+  ldr  r3, = _ebss
+  cmp  r2, r3
+  bcc  FillZerobss
+
+/* Call the clock system intitialization function.*/
+  bl  SystemInit   
+/* Call static constructors */
+  bl __libc_init_array /*目前看来这个没什么用,如果代码量有超可以去掉*/
+/* Call the application's entry point.*/
+  bl  main
+  bx  lr    
+.size  Reset_Handler, .-Reset_Handler
+
+/**
+ * @brief  This is the code that gets called when the processor receives an 
+ *         unexpected interrupt.  This simply enters an infinite loop, preserving
+ *         the system state for examination by a debugger.
+ * @param  None     
+ * @retval None       
+*/
+    .section  .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+  b  Infinite_Loop
+  .size  Default_Handler, .-Default_Handler
+/******************************************************************************
+*
+* The minimal vector table for a Cortex M3. Note that the proper constructs
+* must be placed on this to ensure that it ends up at physical address
+* 0x0000.0000.
+* 
+*******************************************************************************/
+   .section  .isr_vector,"a",%progbits
+  .type  g_pfnVectors, %object
+  .size  g_pfnVectors, .-g_pfnVectors
+    
+    
+g_pfnVectors:
+  .word  _estack
+  .word  Reset_Handler
+  .word  NMI_Handler
+  .word  HardFault_Handler
+  .word  MemManage_Handler
+  .word  BusFault_Handler
+  .word  UsageFault_Handler
+  .word  0
+  .word  0
+  .word  0
+  .word  0
+  .word  SVC_Handler
+  .word  DebugMon_Handler
+  .word  0
+  .word  PendSV_Handler
+  .word  SysTick_Handler
+  
+  /* External Interrupts */
+  .word     ISR_GlobalHandler                   /* Window WatchDog              */                                        
+  .word     ISR_GlobalHandler                    /* PVD through EXTI Line detection */                        
+  .word     ISR_GlobalHandler             /* Tamper and TimeStamps through the EXTI line */            
+  .word     ISR_GlobalHandler               /* RTC Wakeup through the EXTI line */                      
+  .word     ISR_GlobalHandler                  /* FLASH                        */                                          
+  .word     ISR_GlobalHandler                    /* RCC                          */                                            
+  .word     ISR_GlobalHandler                  /* EXTI Line0                   */                        
+  .word     ISR_GlobalHandler                  /* EXTI Line1                   */                          
+  .word     ISR_GlobalHandler                  /* EXTI Line2                   */                          
+  .word     ISR_GlobalHandler                  /* EXTI Line3                   */                          
+  .word     ISR_GlobalHandler                  /* EXTI Line4                   */                          
+  .word     ISR_GlobalHandler           /* DMA1 Stream 0                */                  
+  .word     ISR_GlobalHandler           /* DMA1 Stream 1                */                   
+  .word     ISR_GlobalHandler           /* DMA1 Stream 2                */                   
+  .word     ISR_GlobalHandler           /* DMA1 Stream 3                */                   
+  .word     ISR_GlobalHandler           /* DMA1 Stream 4                */                   
+  .word     ISR_GlobalHandler           /* DMA1 Stream 5                */                   
+  .word     ISR_GlobalHandler           /* DMA1 Stream 6                */                   
+  .word     ISR_GlobalHandler                    /* ADC1, ADC2 and ADC3s         */                   
+  .word     ISR_GlobalHandler                /* CAN1 TX                      */                         
+  .word     ISR_GlobalHandler               /* CAN1 RX0                     */                          
+  .word     ISR_GlobalHandler               /* CAN1 RX1                     */                          
+  .word     ISR_GlobalHandler               /* CAN1 SCE                     */                          
+  .word     ISR_GlobalHandler                /* External Line[9:5]s          */                          
+  .word     ISR_GlobalHandler          /* TIM1 Break and TIM9          */         
+  .word     ISR_GlobalHandler          /* TIM1 Update and TIM10        */         
+  .word     ISR_GlobalHandler     /* TIM1 Trigger and Commutation and TIM11 */
+  .word     ISR_GlobalHandler                /* TIM1 Capture Compare         */                          
+  .word     ISR_GlobalHandler                   /* TIM2                         */                   
+  .word     ISR_GlobalHandler                   /* TIM3                         */                   
+  .word     ISR_GlobalHandler                   /* TIM4                         */                   
+  .word     ISR_GlobalHandler                /* I2C1 Event                   */                          
+  .word     ISR_GlobalHandler                /* I2C1 Error                   */                          
+  .word     ISR_GlobalHandler                /* I2C2 Event                   */                          
+  .word     ISR_GlobalHandler                /* I2C2 Error                   */                            
+  .word     ISR_GlobalHandler                   /* SPI1                         */                   
+  .word     ISR_GlobalHandler                   /* SPI2                         */                   
+  .word     ISR_GlobalHandler                 /* USART1                       */                   
+  .word     ISR_GlobalHandler                 /* USART2                       */                   
+  .word     ISR_GlobalHandler                 /* USART3                       */                   
+  .word     ISR_GlobalHandler              /* External Line[15:10]s        */                          
+  .word     ISR_GlobalHandler              /* RTC Alarm (A and B) through EXTI Line */                 
+  .word     ISR_GlobalHandler            /* USB OTG FS Wakeup through EXTI line */                       
+  .word     ISR_GlobalHandler         /* TIM8 Break and TIM12         */         
+  .word     ISR_GlobalHandler          /* TIM8 Update and TIM13        */         
+  .word     ISR_GlobalHandler     /* TIM8 Trigger and Commutation and TIM14 */
+  .word     ISR_GlobalHandler                /* TIM8 Capture Compare         */                          
+  .word     ISR_GlobalHandler           /* DMA1 Stream7                 */                          
+  .word     ISR_GlobalHandler                   /* FSMC                         */                   
+  .word     ISR_GlobalHandler                   /* SDIO                         */                   
+  .word     ISR_GlobalHandler                   /* TIM5                         */                   
+  .word     ISR_GlobalHandler                   /* SPI3                         */                   
+  .word     ISR_GlobalHandler                  /* UART4                        */                   
+  .word     ISR_GlobalHandler                  /* UART5                        */                   
+  .word     ISR_GlobalHandler               /* TIM6 and DAC1&2 underrun errors */                   
+  .word     ISR_GlobalHandler                   /* TIM7                         */
+  .word     ISR_GlobalHandler           /* DMA2 Stream 0                */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 1                */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 2                */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 3                */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 4                */                   
+  .word     ISR_GlobalHandler                    /* Ethernet                     */                   
+  .word     ISR_GlobalHandler               /* Ethernet Wakeup through EXTI line */                     
+  .word     ISR_GlobalHandler                /* CAN2 TX                      */                          
+  .word     ISR_GlobalHandler               /* CAN2 RX0                     */                          
+  .word     ISR_GlobalHandler               /* CAN2 RX1                     */                          
+  .word     ISR_GlobalHandler               /* CAN2 SCE                     */                          
+  .word     ISR_GlobalHandler                 /* USB OTG FS                   */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 5                */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 6                */                   
+  .word     ISR_GlobalHandler           /* DMA2 Stream 7                */                   
+  .word     ISR_GlobalHandler                 /* USART6                       */                    
+  .word     ISR_GlobalHandler                /* I2C3 event                   */                          
+  .word     ISR_GlobalHandler                /* I2C3 error                   */                          
+  .word     ISR_GlobalHandler         /* USB OTG HS End Point 1 Out   */                   
+  .word     ISR_GlobalHandler          /* USB OTG HS End Point 1 In    */                   
+  .word     ISR_GlobalHandler            /* USB OTG HS Wakeup through EXTI */                         
+  .word     ISR_GlobalHandler                 /* USB OTG HS                   */                   
+  .word     ISR_GlobalHandler                   /* DCMI                         */                   
+  .word     ISR_GlobalHandler                                /* CRYP crypto                  */                   
+  .word     ISR_GlobalHandler               /* Hash and Rng                 */
+  .word     ISR_GlobalHandler                    /* FPU                          */
+  .word     ISR_GlobalHandler                  /* UART7                        */      
+  .word     ISR_GlobalHandler                  /* UART8                        */
+  .word     ISR_GlobalHandler                   /* SPI4                         */
+  .word     ISR_GlobalHandler                   /* SPI5 						  */
+  .word     ISR_GlobalHandler                   /* SPI6						  */
+  .word     ISR_GlobalHandler                   /* SAI1						  */
+  .word     ISR_GlobalHandler                   /* LTDC_IRQHandler			  */
+  .word     ISR_GlobalHandler                /* LTDC_ER_IRQHandler			  */
+  .word     ISR_GlobalHandler                  /* DMA2D                   
+                         
+/*******************************************************************************
+*
+* Provide weak aliases for each Exception handler to the Default_Handler. 
+* As they are weak aliases, any function with the same name will override 
+* this definition.
+* 
+*******************************************************************************/
+   .weak      NMI_Handler
+   .thumb_set NMI_Handler,Default_Handler
+
+
+
+	.section  .text.CmTrace_Handler
+ 	.type CmTrace_Handler, %function
+CmTrace_Handler:
+ 	MOV     r0, lr                  /* get lr */
+    MOV     r1, sp                  /* get stack pointer (current is MSP) */
+    BL      cm_backtrace_fault
+Fault_Loop:
+    BL      Fault_Loop              /* while(1) */
+    
+   .weak      NMI_Handler
+   .thumb_set NMI_Handler,CmTrace_Handler
+  
+   .weak      HardFault_Handler
+   .thumb_set HardFault_Handler,CmTrace_Handler
+  
+   .weak      MemManage_Handler
+   .thumb_set MemManage_Handler,CmTrace_Handler
+  
+   .weak      BusFault_Handler
+   .thumb_set BusFault_Handler,CmTrace_Handler
+
+   .weak      UsageFault_Handler
+   .thumb_set UsageFault_Handler,CmTrace_Handler
+
+   .weak      SVC_Handler
+   .thumb_set SVC_Handler,Default_Handler
+
+   .weak      DebugMon_Handler
+   .thumb_set DebugMon_Handler,Default_Handler
+
+   .weak      PendSV_Handler
+   .thumb_set PendSV_Handler,Default_Handler
+
+   .weak      SysTick_Handler
+   .thumb_set SysTick_Handler,Default_Handler              
+  
+   .weak      ISR_GlobalHandler                   
+   .thumb_set ISR_GlobalHandler,Default_Handler      
+                  
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/