CORTEX-M33 S文件汇编代码解析

CORTEX-M33 S文件汇编代码解析

    .syntax unified //启用统一的汇编语法,允许使用ARM和Thumb指令的混合编程
    .cpu cortex-m33 //指定目标处理器为Cortex-M33,确保生成的代码与该架构兼容
    .fpu softvfp //配置浮点单元为软件浮点,适用于不支持硬件浮点的系统
    .thumb //指示编译器生成Thumb指令集代码,以提高代码密度和性能

.global g_pfnVectors //定义全局符号g_pfnVectors(中断向量表)
.global Default_Handler //定义全局符号Default_Handler(默认中断处理函数)

//.word声明对应链接脚本中定义的符号地址
.word   _sidata //Flash中初始化数据的起始地址
.word   _sdata //SDRAM中.data段的起始地址
.word   _edata //SDRAM中.data段的结束地址
.word   _sbss //BSS段起始地址
.word   _ebss //BSS段结束地址

.word   _sicoderam //Flash中初始化数据的源地址
.word   _scoderam //CODE_RAM段的起始地址(目标地址)
.word   _ecoderam //CODE_RAM段的结束地址

.word   _sidataram //初始化数据在Flash中的源地址
.word   _sdataram //RAM中普通数据区域起始地址
.word   _edataram //RAM中普通数据区域结束地址

.word   _siisr_vector //中断向量表在Flash中的源地址
.word   _sisr_vector //ITCM中向量表起始地址
.word   _eisr_vector //ITCM中向量表结束地址

.word   _sicodeitcm //代码在Flash中的源地址
.word   _scodeitcm //ITCM目标区域起始地址
.word   _ecodeitcm //ITCM目标区域结束地址

.word   _sidatadtcm //数据在Flash中的源地址
.word   _sdatadtcm //DTCM目标区域起始地址
.word   _edatadtcm //DTCM目标区域结束地址

  .section  .text.Reset_Handler //将Reset_Handler放在.text段中
  .weak  Reset_Handler //标记为弱符号,允许被其他定义覆盖
  .type  Reset_Handler, %function
Reset_Handler:  
   ldr   sp, =_estack //设置初始堆栈指针(SP)为_estack,这是链接脚本中定义的栈顶地址

  /*有BOOT就可以不用在SystemInit中初始化时钟和SDRAM*/
  /*bl SystemInit*/

//将闪存中的数据段初始化值复制到SDRAM,确保.data段在RAM中有正确的初始值
  ldr r0, =_sdata //SDRAM中.data段的起始地址
  ldr r1, =_edata //SDRAM中.data段的结束地址
  ldr r2, =_sidata //Flash中初始化数据的起始地址
  movs r3, #0 //初始化偏移计数器
  b LoopCopyDataInit //跳转到循环检查

CopyDataInit: //数据搬运段
  ldr r4, [r2, r3] //从Flash读取4字节数据(r2基址+r3偏移)
  str r4, [r0, r3] //写入SDRAM对应位置(r0基址+r3偏移)
  adds r3, r3, #4 //偏移量递增4字节(32位架构)

LoopCopyDataInit: //循环入口
  adds r4, r0, r3 //计算当前目标地址
  cmp r4, r1 //比较是否到达结束地址
  bcc CopyDataInit //若未完成继续复制(bcc=无符号小于跳转)

//从Flash存储器到RAM的代码段初始化复制操作
  ldr r0, =_scoderam //目标地址指针(CODE_RAM)
  ldr r1, =_ecoderam //结束地址边界检查
  ldr r2, =_sicoderam //源数据指针(Flash)
  movs r3, #0 //偏移计数器(4字节步进)
  b LoopCopyCodeRamInit

CopyCodeRamInit: //代码搬运段
  ldr r4, [r2, r3] //从Flash加载4字节数据
  str r4, [r0, r3] //存储到CODE_RAM
  adds r3, r3, #4 //偏移量+4(32位架构)

LoopCopyCodeRamInit: //循环入口
  adds r4, r0, r3 //计算当前目标地址(r0+r3)
  cmp r4, r1 //检查是否到达结束地址
  bcc CopyCodeRamInit //检查是否到达结束地址

//将数据RAM段初始化器从闪存复制到DATA_RAM
  ldr r0, =_sdataram //目标RAM区起始地址(.data段)
  ldr r1, =_edataram //目标RAM区结束地址
  ldr r2, =_sidataram //Flash中初始化数据的源地址
  movs r3, #0 //偏移计数器(4字节步进)
  b LoopCopyDataRamInit

CopyDataRamInit: //数据搬运段
  ldr r4, [r2, r3] //从Flash加载4字节数据(源地址r2+r3)
  str r4, [r0, r3] //存储到RAM(目标地址r0+r3)
  adds r3, r3, #4 //偏移量+4(32位架构字对齐)

LoopCopyDataRamInit: //循环入口
  adds r4, r0, r3 //计算当前目标地址(r0 + r3)
  cmp r4, r1 //检查是否到达结束地址
  bcc CopyDataRamInit //若未完成则跳转(bcc=无符号小于)

//中断向量表从Flash到ITCM内存的复制操作
  ldr r0, =_sisr_vector //ITCM中目标中断向量表起始地址
  ldr r1, =_eisr_vector //ITCM中目标中断向量表结束地址
  ldr r2, =_siisr_vector //Flash中源中断向量表起始地址
  movs r3, #0 //偏移计数器(4字节步进)
  b LoopCopyVtorItcmInit

CopyVtorItcmInit: //数据搬运核心
  ldr r4, [r2, r3] //从Flash加载4字节中断向量
  str r4, [r0, r3] //存储到ITCM目标地址
  adds r3, r3, #4 //偏移量+4(32位字对齐)

LoopCopyVtorItcmInit: //循环控制入口
  adds r4, r0, r3 //计算当前目标地址(r0 + r3)
  cmp r4, r1 //检查是否到达结束地址
  bcc CopyVtorItcmInit //若未完成则跳转(bcc=无符号小于)

//关键代码段从Flash到ITCM的复制操作
  ldr r0, =_scodeitcm //ITCM目标区域起始地址(CODR_ITCM段)
  ldr r1, =_ecodeitcm //ITCM目标区域结束地址
  ldr r2, =_sicodeitcm //Flash中代码镜像的源地址
  movs r3, #0 //偏移计数器(4字节步进)
  b LoopCopyCodeItcmInit

CopyCodeItcmInit: //数据搬运
  ldr r4, [r2, r3] //从Flash加载4字节指令
  str r4, [r0, r3] //存入ITCM对应位置
  adds r3, r3, #4 //偏移量+4(32位字对齐)

LoopCopyCodeItcmInit: //循环控制
  adds r4, r0, r3 //计算当前写入地址(r0+r3)
  cmp r4, r1 //检查是否到达结束地址
  bcc CopyCodeItcmInit //未完成则跳转(bcc=无符号小于)

//将初始化数据从Flash复制到DTCM
  ldr r0, =_sdatadtcm //DTCM目标区域起始地址
  ldr r1, =_edatadtcm //DTCM目标区域结束地址
  ldr r2, =_sidatadtcm //Flash中数据镜像的源地址
  movs r3, #0 //偏移计数器(4字节步进)
  b LoopCopyDataDtcmInit

CopyDataDtcmInit: //数据搬运核心
  ldr r4, [r2, r3] //从Flash加载4字节数据
  str r4, [r0, r3] //存入DTCM对应位置
  adds r3, r3, #4 //偏移量+4(32位字对齐)

LoopCopyDataDtcmInit: //循环控制
  adds r4, r0, r3 //计算当前目标地址
  cmp r4, r1 //边界检查
  bcc CopyDataDtcmInit //未完成则跳转(bcc=无符号小于)

//BSS段清零
  ldr r2, =_sbss //BSS段起始地址
  ldr r4, =_ebss //BSS段结束地址
  movs r3, #0 //r3始化为0
  b LoopFillZerobss

FillZerobss: //清零操作
 str  r3, [r2] //写入0值(r3已初始化为0)
  adds r2, r2, #4 //地址指针递增4字节(32位对齐)

LoopFillZerobss: //循环控制
 cmp r2, r4 //比较当前地址(r2)与结束地址(r4)
 bcc FillZerobss //若未完成则跳转(bcc=无符号小于)

   bl __libc_init_array //调用C++全局对象构造函数

   bl main //跳转至用户main函数
   bx lr //main返回后跳回调用者(启动代码)

.size   Reset_Handler, .-Reset_Handler //计算Reset_Handler函数/代码块的大小(字节数)

//系统中处理未定义中断的默认处理程序实现,其核心功能是通过无限循环锁定系统状态以便调试
    //定义代码段名为.text.Default_Handler
    //”ax”标志表示可分配且可执行
    //%progbits指定段包含实际指令
    .section    .text.Default_Handler,”ax”,%progbits
Default_Handler:
Infinite_Loop:
    b   Infinite_Loop //实现死循环
    .size   Default_Handler, .-Default_Handler

//定义处理器异常和中断的入口地址
    //定义名为.isr_vector的段,”a”表示可分配(allocatable),%progbits表示段包含实际数据
    .section    .isr_vector,”a”,%progbits
    .type   g_pfnVectors, %object //声明g_pfnVectors为数据对象
    .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

    // 外部中断
    .word   WDT_IRQHandler
    .word   LVD_IRQHandler
    .word   RTC_IRQHandler
    .word   RSV3_IRQHandler
    .word   RSV4_IRQHandler
    .word   RSV5_IRQHandler
    .word   CLKRDY_IRQHandler
    .word   EXTI0_IRQHandler
    .word   EXTI1_IRQHandler
    .word   EXTI2_IRQHandler
    .word   EXTI3_IRQHandler
    .word   EXTI4_IRQHandler
    .word   RSV12_IRQHandler
    .word   RSV13_IRQHandler
    .word   ADC12_IRQHandler
    .word   ADC3_IRQHandler
    .word   DAC1_IRQHandler
    .word   COMP1_IRQHandler
    .word   USBOTG1_IRQHandler
    .word   FDCAN1_IRQHandler
    .word   FDCAN2_IRQHandler
    .word   EXTI9_5_IRQHandler
    .word   TIM1_BRK_UP_TRG_COM_IRQHandler
    .word   TIM1_CC_IRQHandler
    .word   TIM2_IRQHandler
    .word   TIM3_IRQHandler
    .word   TIM6_IRQHandler
    .word   TIM7_IRQHandler
    .word   TIM8_BRK_UP_TRG_COM_IRQHandler
    .word   TIM8_CC_IRQHandler
    .word   TIM15_IRQHandler
    .word   TIM16_IRQHandler
    .word   TIM17_IRQHandler
    .word   I2C1_IRQHandler
    .word   I2C2_IRQHandler
    .word   SPI1_IRQHandler
    .word   SPI2_IRQHandler
    .word   SPI3_IRQHandler
    .word   I2S1_IRQHandler
    .word   I2S2_IRQHandler
    .word   USART1_IRQHandler
    .word   USART2_IRQHandler
    .word   USART3_IRQHandler
    .word   USART4_IRQHandler
    .word   EXTI15_10_IRQHandler
    .word   USBOTG1_WKUP_IRQHandler
    .word   LPUART1_IRQHandler
    .word   LPTIM1_IRQHandler
    .word   USBOTG2_WKUP_IRQHandler
    .word   AES_IRQHandler
    .word   FPU_IRQHandler
    .word   USBOTG2_IRQHandler
    .word   DCMI_IRQHandler
    .word   TIM4_IRQHandler
    .word   RSV54_IRQHandler
    .word   IWDT_WKUP_IRQHandler
    .word   LTDC_IRQHandler
    .word   LTDC_ERR_IRQHandler
    .word   DMA2D_IRQHandler
    .word   LPTIM2_IRQHandler
    .word   LPTIM3_IRQHandler
    .word   LPTIM4_IRQHandler
    .word   LPTIM5_IRQHandler
    .word   LPTIM6_IRQHandler
    .word   AES_SPI1_IRQHandler
    .word   I2S3_IRQHandler
    .word   SPI4_IRQHandler
    .word   SPI5_IRQHandler
    .word   SPI6_IRQHandler
    .word   I2C3_IRQHandler
    .word   I2C4_IRQHandler
    .word   FDCAN3_IRQHandler
    .word   RSV72_IRQHandler
    .word   ETH_IRQHandler
    .word   ETH_WKUP_IRQHandler
    .word   SDMMC_IRQHandler
    .word   USART5_IRQHandler
    .word   USART6_IRQHandler
    .word   USART7_IRQHandler
    .word   USART8_IRQHandler
    .word   USART9_IRQHandler
    .word   USART10_IRQHandler
    .word   DAC2_IRQHandler
    .word   TIM5_IRQHandler
    .word   TIM9_IRQHandler
    .word   TIM10_IRQHandler
    .word   TIM11_IRQHandler
    .word   TIM12_IRQHandler
    .word   TIM13_IRQHandler
    .word   TIM14_IRQHandler
    .word   TIM18_IRQHandler
    .word   TIM19_IRQHandler
    .word   TIM20_BRK_UP_TRG_COM_IRQHandler
    .word   TIM20_CC_IRQHandler
    .word   TIM21_IRQHandler
    .word   TIM22_IRQHandler
    .word   TIM23_IRQHandler
    .word   TIM24_IRQHandler
    .word   TIM25_IRQHandler
    .word   TIM26_IRQHandler
    .word   SPI7_IRQHandler
    .word   SPI8_IRQHandler
    .word   OSPI1_IRQHandler
    .word   OSPI2_IRQHandler
    .word   RSV104_IRQHandler
    .word   TKEY_IRQHandler
    .word   LPT_IRQHandler
    .word   RSV107_IRQHandler
    .word   OTG1_HS_EP_OUT_IRQHandler
    .word   OTG1_HS_EP_IN_IRQHandler
    .word   OTG2_HS_EP_OUT_IRQHandler
    .word   OTG2_HS_EP_IN_IRQHandler
    .word   NDL_IRQHandler
    .word   THM_IRQHandler
    .word   STM1_PWM_IRQHandler
    .word   STM2_PWM_IRQHandler
    .word   DCM1_PWM_IRQHandler
    .word   DCM2_PWM_IRQHandler
    .word   DCM3_PWM_IRQHandler
    .word   DCM4_PWM_IRQHandler
    .word   STM3_PWM_IRQHandler
    .word   STM4_PWM_IRQHandler
    .word   STM5_PWM_IRQHandler
    .word   STM6_PWM_IRQHandler
    .word   DCM5_PWM_IRQHandler
    .word   DCM6_PWM_IRQHandler
    .word   NAND_IRQHandler
    .word   BCH_IRQHandler
    .word   SDRAM_IRQHandler
    .word   DMA1_CH0_IRQHandler
    .word   DMA1_CH1_IRQHandler
    .word   DMA1_CH2_IRQHandler
    .word   DMA1_CH3_IRQHandler
    .word   DMA1_CH4_IRQHandler
    .word   DMA1_CH5_IRQHandler
    .word   DMA1_CH6_IRQHandler
    .word   DMA1_CH7_IRQHandler
    .word   DMA2_CH0_IRQHandler
    .word   DMA2_CH1_IRQHandler
    .word   DMA2_CH2_IRQHandler
    .word   DMA2_CH3_IRQHandler
    .word   DMA2_CH4_IRQHandler
    .word   DMA2_CH5_IRQHandler
    .word   DMA2_CH6_IRQHandler
    .word   DMA2_CH7_IRQHandler
    .word   SRAM1_SEC_IRQHandler
    .word   SRAM1_DED_IRQHandler
    .word   SRAM3_SEC_IRQHandler
    .word   SRAM3_DED_IRQHandler
    .word   BKPSRAM_SEC_IRQHandler
    .word   BKPSRAM_DED_IRQHandler

//异常处理机制的弱符号定义实现,主要功能是为各类异常处理程序提供默认的弱引用实现
    .weak   NMI_Handler //.weak伪指令声明符号为弱引用,允许用户代码覆盖这些默认定义
    .thumb_set NMI_Handler,Default_Handler //未重定义时自动使用Default_Handler

    .weak   HardFault_Handler
    .thumb_set HardFault_Handler,Default_Handler

    .weak   MemManage_Handler
    .thumb_set MemManage_Handler,Default_Handler

    .weak   BusFault_Handler
    .thumb_set BusFault_Handler,Default_Handler

    .weak   UsageFault_Handler
    .thumb_set UsageFault_Handler,Default_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   WDT_IRQHandler
    .thumb_set WDT_IRQHandler,Default_Handler

    .weak   LVD_IRQHandler
    .thumb_set LVD_IRQHandler,Default_Handler

    .weak   RTC_IRQHandler
    .thumb_set RTC_IRQHandler,Default_Handler

    .weak   RSV3_IRQHandler
    .thumb_set RSV3_IRQHandler,Default_Handler

    .weak   RSV4_IRQHandler
    .thumb_set RSV4_IRQHandler,Default_Handler

    .weak   RSV5_IRQHandler
    .thumb_set RSV5_IRQHandler,Default_Handler

    .weak   CLKRDY_IRQHandler
    .thumb_set CLKRDY_IRQHandler,Default_Handler

    .weak   EXTI0_IRQHandler
    .thumb_set EXTI0_IRQHandler,Default_Handler

    .weak   EXTI1_IRQHandler
    .thumb_set EXTI1_IRQHandler,Default_Handler

    .weak   EXTI2_IRQHandler
    .thumb_set EXTI2_IRQHandler,Default_Handler

    .weak   EXTI3_IRQHandler
    .thumb_set EXTI3_IRQHandler,Default_Handler

    .weak   EXTI4_IRQHandler
    .thumb_set EXTI4_IRQHandler,Default_Handler

    .weak   RSV12_IRQHandler
    .thumb_set RSV12_IRQHandler,Default_Handler

    .weak   RSV13_IRQHandler
    .thumb_set RSV13_IRQHandler,Default_Handler

    .weak   ADC12_IRQHandler
    .thumb_set ADC12_IRQHandler,Default_Handler

    .weak   ADC3_IRQHandler
    .thumb_set ADC3_IRQHandler,Default_Handler

    .weak   DAC1_IRQHandler
    .thumb_set DAC1_IRQHandler,Default_Handler

    .weak   COMP1_IRQHandler
    .thumb_set COMP1_IRQHandler,Default_Handler

    .weak   USBOTG1_IRQHandler
    .thumb_set USBOTG1_IRQHandler,Default_Handler

    .weak   FDCAN1_IRQHandler
    .thumb_set FDCAN1_IRQHandler,Default_Handler

    .weak   FDCAN2_IRQHandler
    .thumb_set FDCAN2_IRQHandler,Default_Handler

    .weak   EXTI9_5_IRQHandler
    .thumb_set EXTI9_5_IRQHandler,Default_Handler

    .weak   TIM1_BRK_UP_TRG_COM_IRQHandler
    .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler

    .weak   TIM1_CC_IRQHandler
    .thumb_set TIM1_CC_IRQHandler,Default_Handler

    .weak   TIM2_IRQHandler
    .thumb_set TIM2_IRQHandler,Default_Handler

    .weak   TIM3_IRQHandler
    .thumb_set TIM3_IRQHandler,Default_Handler

    .weak   TIM6_IRQHandler
    .thumb_set TIM6_IRQHandler,Default_Handler

    .weak   TIM7_IRQHandler
    .thumb_set TIM7_IRQHandler,Default_Handler

    .weak   TIM8_BRK_UP_TRG_COM_IRQHandler
    .thumb_set TIM8_BRK_UP_TRG_COM_IRQHandler,Default_Handler

    .weak   TIM8_CC_IRQHandler
    .thumb_set TIM8_CC_IRQHandler,Default_Handler

    .weak   TIM15_IRQHandler
    .thumb_set TIM15_IRQHandler,Default_Handler

    .weak   TIM16_IRQHandler
    .thumb_set TIM16_IRQHandler,Default_Handler

    .weak   TIM17_IRQHandler
    .thumb_set TIM17_IRQHandler,Default_Handler

    .weak   I2C1_IRQHandler
    .thumb_set I2C1_IRQHandler,Default_Handler

    .weak   I2C2_IRQHandler
    .thumb_set I2C2_IRQHandler,Default_Handler

    .weak   SPI1_IRQHandler
    .thumb_set SPI1_IRQHandler,Default_Handler

    .weak   SPI2_IRQHandler
    .thumb_set SPI2_IRQHandler,Default_Handler

    .weak   SPI3_IRQHandler
    .thumb_set SPI3_IRQHandler,Default_Handler

    .weak   I2S1_IRQHandler
    .thumb_set I2S1_IRQHandler,Default_Handler

    .weak   I2S2_IRQHandler
    .thumb_set I2S2_IRQHandler,Default_Handler

    .weak   USART1_IRQHandler
    .thumb_set USART1_IRQHandler,Default_Handler

    .weak   USART2_IRQHandler
    .thumb_set USART2_IRQHandler,Default_Handler

    .weak   USART3_IRQHandler
    .thumb_set USART3_IRQHandler,Default_Handler

    .weak   USART4_IRQHandler
    .thumb_set USART4_IRQHandler,Default_Handler

    .weak   EXTI15_10_IRQHandler
    .thumb_set EXTI15_10_IRQHandler,Default_Handler

    .weak   USBOTG1_WKUP_IRQHandler
    .thumb_set USBOTG1_WKUP_IRQHandler,Default_Handler

    .weak   LPUART1_IRQHandler
    .thumb_set LPUART1_IRQHandler,Default_Handler

    .weak   LPTIM1_IRQHandler
    .thumb_set LPTIM1_IRQHandler,Default_Handler

    .weak   USBOTG2_WKUP_IRQHandler
    .thumb_set USBOTG2_WKUP_IRQHandler,Default_Handler

    .weak   AES_IRQHandler
    .thumb_set AES_IRQHandler,Default_Handler

    .weak   FPU_IRQHandler
    .thumb_set FPU_IRQHandler,Default_Handler

    .weak   USBOTG2_IRQHandler
    .thumb_set USBOTG2_IRQHandler,Default_Handler

    .weak   DCMI_IRQHandler
    .thumb_set DCMI_IRQHandler,Default_Handler

    .weak   TIM4_IRQHandler
    .thumb_set TIM4_IRQHandler,Default_Handler

    .weak   RSV54_IRQHandler
    .thumb_set RSV54_IRQHandler,Default_Handler

    .weak   IWDT_WKUP_IRQHandler
    .thumb_set IWDT_WKUP_IRQHandler,Default_Handler

    .weak   LTDC_IRQHandler
    .thumb_set LTDC_IRQHandler,Default_Handler

    .weak   LTDC_ERR_IRQHandler
    .thumb_set LTDC_ERR_IRQHandler,Default_Handler

    .weak   DMA2D_IRQHandler
    .thumb_set DMA2D_IRQHandler,Default_Handler

    .weak   LPTIM2_IRQHandler
    .thumb_set LPTIM2_IRQHandler,Default_Handler

    .weak   LPTIM3_IRQHandler
    .thumb_set LPTIM3_IRQHandler,Default_Handler

    .weak   LPTIM4_IRQHandler
    .thumb_set LPTIM4_IRQHandler,Default_Handler

    .weak   LPTIM5_IRQHandler
    .thumb_set LPTIM5_IRQHandler,Default_Handler

    .weak   LPTIM6_IRQHandler
    .thumb_set LPTIM6_IRQHandler,Default_Handler

    .weak   AES_SPI1_IRQHandler
    .thumb_set AES_SPI1_IRQHandler,Default_Handler

    .weak   I2S3_IRQHandler
    .thumb_set I2S3_IRQHandler,Default_Handler

    .weak   SPI4_IRQHandler
    .thumb_set SPI4_IRQHandler,Default_Handler

    .weak   SPI5_IRQHandler
    .thumb_set SPI5_IRQHandler,Default_Handler

    .weak   SPI6_IRQHandler
    .thumb_set SPI6_IRQHandler,Default_Handler

    .weak   I2C3_IRQHandler
    .thumb_set I2C3_IRQHandler,Default_Handler

    .weak   I2C4_IRQHandler
    .thumb_set I2C4_IRQHandler,Default_Handler

    .weak   FDCAN3_IRQHandler
    .thumb_set FDCAN3_IRQHandler,Default_Handler

    .weak   RSV72_IRQHandler
    .thumb_set RSV72_IRQHandler,Default_Handler

    .weak   ETH_IRQHandler
    .thumb_set ETH_IRQHandler,Default_Handler

    .weak   ETH_WKUP_IRQHandler
    .thumb_set ETH_WKUP_IRQHandler,Default_Handler

    .weak   SDMMC_IRQHandler
    .thumb_set SDMMC_IRQHandler,Default_Handler

    .weak   USART5_IRQHandler
    .thumb_set USART5_IRQHandler,Default_Handler

    .weak   USART6_IRQHandler
    .thumb_set USART6_IRQHandler,Default_Handler

    .weak   USART7_IRQHandler
    .thumb_set USART7_IRQHandler,Default_Handler

    .weak   USART8_IRQHandler
    .thumb_set USART8_IRQHandler,Default_Handler

    .weak   USART9_IRQHandler
    .thumb_set USART9_IRQHandler,Default_Handler

    .weak   USART10_IRQHandler
    .thumb_set USART10_IRQHandler,Default_Handler

    .weak   DAC2_IRQHandler
    .thumb_set DAC2_IRQHandler,Default_Handler

    .weak   TIM5_IRQHandler
    .thumb_set TIM5_IRQHandler,Default_Handler

    .weak   TIM9_IRQHandler
    .thumb_set TIM9_IRQHandler,Default_Handler

    .weak   TIM10_IRQHandler
    .thumb_set TIM10_IRQHandler,Default_Handler

    .weak   TIM11_IRQHandler
    .thumb_set TIM11_IRQHandler,Default_Handler

    .weak   TIM12_IRQHandler
    .thumb_set TIM12_IRQHandler,Default_Handler

    .weak   TIM13_IRQHandler
    .thumb_set TIM13_IRQHandler,Default_Handler

    .weak   TIM14_IRQHandler
    .thumb_set TIM14_IRQHandler,Default_Handler

    .weak   TIM18_IRQHandler
    .thumb_set TIM18_IRQHandler,Default_Handler

    .weak   TIM19_IRQHandler
    .thumb_set TIM19_IRQHandler,Default_Handler

    .weak   TIM20_BRK_UP_TRG_COM_IRQHandler
    .thumb_set TIM20_BRK_UP_TRG_COM_IRQHandler,Default_Handler

    .weak   TIM20_CC_IRQHandler
    .thumb_set TIM20_CC_IRQHandler,Default_Handler

    .weak   TIM21_IRQHandler
    .thumb_set TIM21_IRQHandler,Default_Handler

    .weak   TIM22_IRQHandler
    .thumb_set TIM22_IRQHandler,Default_Handler

    .weak   TIM23_IRQHandler
    .thumb_set TIM23_IRQHandler,Default_Handler

    .weak   TIM24_IRQHandler
    .thumb_set TIM24_IRQHandler,Default_Handler

    .weak   TIM25_IRQHandler
    .thumb_set TIM25_IRQHandler,Default_Handler

    .weak   TIM26_IRQHandler
    .thumb_set TIM26_IRQHandler,Default_Handler

    .weak   SPI7_IRQHandler
    .thumb_set SPI7_IRQHandler,Default_Handler

    .weak   SPI8_IRQHandler
    .thumb_set SPI8_IRQHandler,Default_Handler

    .weak   OSPI1_IRQHandler
    .thumb_set OSPI1_IRQHandler,Default_Handler

    .weak   OSPI2_IRQHandler
    .thumb_set OSPI2_IRQHandler,Default_Handler

    .weak   RSV104_IRQHandler
    .thumb_set RSV104_IRQHandler,Default_Handler

    .weak   TKEY_IRQHandler
    .thumb_set TKEY_IRQHandler,Default_Handler

    .weak   LPT_IRQHandler
    .thumb_set LPT_IRQHandler,Default_Handler

    .weak   RSV107_IRQHandler
    .thumb_set RSV107_IRQHandler,Default_Handler

    .weak   OTG1_HS_EP_OUT_IRQHandler
    .thumb_set OTG1_HS_EP_OUT_IRQHandler,Default_Handler

    .weak   OTG1_HS_EP_IN_IRQHandler
    .thumb_set OTG1_HS_EP_IN_IRQHandler,Default_Handler

    .weak   OTG2_HS_EP_OUT_IRQHandler
    .thumb_set OTG2_HS_EP_OUT_IRQHandler,Default_Handler

    .weak   OTG2_HS_EP_IN_IRQHandler
    .thumb_set OTG2_HS_EP_IN_IRQHandler,Default_Handler

    .weak   NDL_IRQHandler
    .thumb_set NDL_IRQHandler,Default_Handler

    .weak   THM_IRQHandler
    .thumb_set THM_IRQHandler,Default_Handler

    .weak   STM1_PWM_IRQHandler
    .thumb_set STM1_PWM_IRQHandler,Default_Handler

    .weak   STM2_PWM_IRQHandler
    .thumb_set STM2_PWM_IRQHandler,Default_Handler

    .weak   DCM1_PWM_IRQHandler
    .thumb_set DCM1_PWM_IRQHandler,Default_Handler

    .weak   DCM2_PWM_IRQHandler
    .thumb_set DCM2_PWM_IRQHandler,Default_Handler

    .weak   DCM3_PWM_IRQHandler
    .thumb_set DCM3_PWM_IRQHandler,Default_Handler

    .weak   DCM4_PWM_IRQHandler
    .thumb_set DCM4_PWM_IRQHandler,Default_Handler

    .weak   STM3_PWM_IRQHandler
    .thumb_set STM3_PWM_IRQHandler,Default_Handler

    .weak   STM4_PWM_IRQHandler
    .thumb_set STM4_PWM_IRQHandler,Default_Handler

    .weak   STM5_PWM_IRQHandler
    .thumb_set STM5_PWM_IRQHandler,Default_Handler

    .weak   STM6_PWM_IRQHandler
    .thumb_set STM6_PWM_IRQHandler,Default_Handler

    .weak   DCM5_PWM_IRQHandler
    .thumb_set DCM5_PWM_IRQHandler,Default_Handler

    .weak   DCM6_PWM_IRQHandler
    .thumb_set DCM6_PWM_IRQHandler,Default_Handler

    .weak   NAND_IRQHandler
    .thumb_set NAND_IRQHandler,Default_Handler

    .weak   BCH_IRQHandler
    .thumb_set BCH_IRQHandler,Default_Handler

    .weak   SDRAM_IRQHandler
    .thumb_set SDRAM_IRQHandler,Default_Handler

    .weak   DMA1_CH0_IRQHandler
    .thumb_set DMA1_CH0_IRQHandler,Default_Handler

    .weak   DMA1_CH1_IRQHandler
    .thumb_set DMA1_CH1_IRQHandler,Default_Handler

    .weak   DMA1_CH2_IRQHandler
    .thumb_set DMA1_CH2_IRQHandler,Default_Handler

    .weak   DMA1_CH3_IRQHandler
    .thumb_set DMA1_CH3_IRQHandler,Default_Handler

    .weak   DMA1_CH4_IRQHandler
    .thumb_set DMA1_CH4_IRQHandler,Default_Handler

    .weak   DMA1_CH5_IRQHandler
    .thumb_set DMA1_CH5_IRQHandler,Default_Handler

    .weak   DMA1_CH6_IRQHandler
    .thumb_set DMA1_CH6_IRQHandler,Default_Handler

    .weak   DMA1_CH7_IRQHandler
    .thumb_set DMA1_CH7_IRQHandler,Default_Handler

    .weak   DMA2_CH0_IRQHandler
    .thumb_set DMA2_CH0_IRQHandler,Default_Handler

    .weak   DMA2_CH1_IRQHandler
    .thumb_set DMA2_CH1_IRQHandler,Default_Handler

    .weak   DMA2_CH2_IRQHandler
    .thumb_set DMA2_CH2_IRQHandler,Default_Handler

    .weak   DMA2_CH3_IRQHandler
    .thumb_set DMA2_CH3_IRQHandler,Default_Handler

    .weak   DMA2_CH4_IRQHandler
    .thumb_set DMA2_CH4_IRQHandler,Default_Handler

    .weak   DMA2_CH5_IRQHandler
    .thumb_set DMA2_CH5_IRQHandler,Default_Handler

    .weak   DMA2_CH6_IRQHandler
    .thumb_set DMA2_CH6_IRQHandler,Default_Handler

    .weak   DMA2_CH7_IRQHandler
    .thumb_set DMA2_CH7_IRQHandler,Default_Handler

    .weak   SRAM1_SEC_IRQHandler
    .thumb_set SRAM1_SEC_IRQHandler,Default_Handler

    .weak   SRAM1_DED_IRQHandler
    .thumb_set SRAM1_DED_IRQHandler,Default_Handler

    .weak   SRAM3_SEC_IRQHandler
    .thumb_set SRAM3_SEC_IRQHandler,Default_Handler

    .weak   SRAM3_DED_IRQHandler
    .thumb_set SRAM3_DED_IRQHandler,Default_Handler

    .weak   BKPSRAM_SEC_IRQHandler
    .thumb_set BKPSRAM_SEC_IRQHandler,Default_Handler

    .weak   BKPSRAM_DED_IRQHandler
    .thumb_set BKPSRAM_DED_IRQHandler,Default_Handler
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容