Cortex M33核启动代码
STM32CubeMX生成的代码中启动代码在在 “工程目录\MDK-ARM” 下名字 startup_stm32xxx.s启动过程涉及到的汇编伪指令指令名称作用EQU给数字常量取一个符号名相当于 C 语言中的defineAREA汇编一个新的代码段或者数据段SPACE分配内存空间PRESERVE8当前文件堆栈需要按照 8 字节对齐EXPORT声明一个标号具有全局属性可被外部的文件使用DCD以字节为单位分配内存要求 4 字节对齐并要求初始化这些内存PROC定义子程序与 ENDP 成对使用表示子程序结束IMPORT声明标号来自外部文件跟 C 语言中的extern关键字类似LDR从存储器中加载字到一个寄存器中BLX跳转到由寄存器给出的地址并根据寄存器的 LSB 确定处理器的状态还要把跳转前的下条指令地址保存到 LRBX跳转到由寄存器 / 标号给出的地址不用返回B跳转到一个标号IF, ELSE, ENDIF汇编条件分支语句跟 C 语言的类似END到达文件的末尾文件结束ALIGN编译器对指令或者数据的存放地址进行对齐一般需要跟一个立即数缺省表示 4 字节对齐WEAK弱定义如果外部文件声明了一个标号则优先使用外部文件定义的标号如果外部文件没有定义也不会出错启动文件代码注释;分配栈空间 Stack_Size EQU 0x400 ;设置栈大小 AREA STACK, NOINIT, READWRITE, ALIGN3 ;名称STACK, 不初始化读写对齐方式为 2^3 8字节 Stack_Mem SPACE Stack_Size __initial_sp ;栈顶地址 ; h Heap Configuration ; o Heap Size (in Bytes) 0x0-0xFFFFFFFF:8 ; /h ;分配堆空间 Heap_Size EQU 0x200 ;设置堆大小 AREA HEAP, NOINIT, READWRITE, ALIGN3 ;名称STACK, 不初始化读写对齐方式为 2^3 8字节 __heap_base ;堆基址 Heap_Mem SPACE Heap_Size __heap_limit ;堆结束地址 PRESERVE8 THUMB ;向量表 ; Vector Table Mapped to Address 0 at Reset ;复位后从映射的地址 0 开始 AREA RESET, DATA, READONLY ;名称RESET, 数据段只读 EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack ;栈顶地址 DCD Reset_Handler ; Reset Handler ;复位处理程序 DCD NMI_Handler ; NMI Handler ;非屏蔽中断 DCD HardFault_Handler ; Hard Fault Handler ;硬错误处理程序 DCD MemManage_Handler ; MPU Fault Handler ;MPU 错误处理程序 DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD SecureFault_Handler ; Secure Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD SVC_Handler ; SVCall Handler DCD DebugMon_Handler ; Debug Monitor Handler DCD 0 ; Reserved DCD PendSV_Handler ; PendSV Handler DCD SysTick_Handler ; SysTick Handler ; External Interrupts DCD WWDG_IRQHandler ; Window WatchDog DCD PVD_PVM_IRQHandler ; PVD/PVM through EXTI Line detection Interrupt DCD RTC_IRQHandler ; RTC non-secure interrupt DCD RTC_S_IRQHandler ; RTC secure interrupt DCD TAMP_IRQHandler ; Tamper non-secure interrupt DCD RAMCFG_IRQHandler ; RAMCFG global DCD FLASH_IRQHandler ; FLASH non-secure global interrupt DCD FLASH_S_IRQHandler ; FLASH secure global interrupt DCD GTZC_IRQHandler ; Global TrustZone Controller interrupt DCD RCC_IRQHandler ; RCC non-secure global interrupt DCD RCC_S_IRQHandler ; RCC secure global interrupt DCD EXTI0_IRQHandler ; EXTI Line0 interrupt DCD EXTI1_IRQHandler ; EXTI Line1 interrupt DCD EXTI2_IRQHandler ; EXTI Line2 interrupt DCD EXTI3_IRQHandler ; EXTI Line3 interrupt DCD EXTI4_IRQHandler ; EXTI Line4 interrupt DCD EXTI5_IRQHandler ; EXTI Line5 interrupt DCD EXTI6_IRQHandler ; EXTI Line6 interrupt DCD EXTI7_IRQHandler ; EXTI Line7 interrupt DCD EXTI8_IRQHandler ; EXTI Line8 interrupt DCD EXTI9_IRQHandler ; EXTI Line9 interrupt DCD EXTI10_IRQHandler ; EXTI Line10 interrupt DCD EXTI11_IRQHandler ; EXTI Line11 interrupt DCD EXTI12_IRQHandler ; EXTI Line12 interrupt DCD EXTI13_IRQHandler ; EXTI Line13 interrupt DCD EXTI14_IRQHandler ; EXTI Line14 interrupt DCD EXTI15_IRQHandler ; EXTI Line15 interrupt DCD IWDG_IRQHandler ; IWDG global interrupt DCD 0 ; Reserved DCD GPDMA1_Channel0_IRQHandler ; GPDMA1 Channel 0 global interrupt DCD GPDMA1_Channel1_IRQHandler ; GPDMA1 Channel 1 global interrupt DCD GPDMA1_Channel2_IRQHandler ; GPDMA1 Channel 2 global interrupt DCD GPDMA1_Channel3_IRQHandler ; GPDMA1 Channel 3 global interrupt DCD GPDMA1_Channel4_IRQHandler ; GPDMA1 Channel 4 global interrupt DCD GPDMA1_Channel5_IRQHandler ; GPDMA1 Channel 5 global interrupt DCD GPDMA1_Channel6_IRQHandler ; GPDMA1 Channel 6 global interrupt DCD GPDMA1_Channel7_IRQHandler ; GPDMA1 Channel 7 global interrupt DCD ADC1_IRQHandler ; ADC1 global interrupt DCD DAC1_IRQHandler ; DAC1 global interrupt DCD FDCAN1_IT0_IRQHandler ; FDCAN1 interrupt 0 DCD FDCAN1_IT1_IRQHandler ; FDCAN1 interrupt 1 DCD TIM1_BRK_IRQHandler ; TIM1 Break interrupt DCD TIM1_UP_IRQHandler ; TIM1 Update interrupt DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation interrupt DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare interrupt DCD TIM2_IRQHandler ; TIM2 global interrupt DCD TIM3_IRQHandler ; TIM3 global interrupt DCD TIM4_IRQHandler ; TIM4 global interrupt DCD TIM5_IRQHandler ; TIM5 global interrupt DCD TIM6_IRQHandler ; TIM6 global interrupt DCD TIM7_IRQHandler ; TIM7 global interrupt DCD TIM8_BRK_IRQHandler ; TIM8 Break interrupt DCD TIM8_UP_IRQHandler ; TIM8 Update interrupt DCD TIM8_TRG_COM_IRQHandler ; TIM8 Trigger and Commutation interrupt DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare interrupt DCD I2C1_EV_IRQHandler ; I2C1 Event interrupt DCD I2C1_ER_IRQHandler ; I2C1 Error interrupt DCD I2C2_EV_IRQHandler ; I2C2 Event interrupt DCD I2C2_ER_IRQHandler ; I2C2 Error interrupt DCD SPI1_IRQHandler ; SPI1 global interrupt DCD SPI2_IRQHandler ; SPI2 global interrupt DCD USART1_IRQHandler ; USART1 global interrupt DCD USART2_IRQHandler ; USART2 global interrupt DCD USART3_IRQHandler ; USART3 global interrupt DCD UART4_IRQHandler ; UART4 global interrupt DCD UART5_IRQHandler ; UART5 global interrupt DCD LPUART1_IRQHandler ; LPUART1 global interrupt DCD LPTIM1_IRQHandler ; LPTIM1 global interrupt DCD LPTIM2_IRQHandler ; LPTIM2 global interrupt DCD TIM15_IRQHandler ; TIM15 global interrupt DCD TIM16_IRQHandler ; TIM16 global interrupt DCD TIM17_IRQHandler ; TIM17 global interrupt DCD COMP_IRQHandler ; COMP1 and COMP2 through EXTI Lines interrupt DCD OTG_FS_IRQHandler ; USB OTG FS global interrupt DCD CRS_IRQHandler ; CRS global interrupt DCD FMC_IRQHandler ; FMC global interrupt DCD OCTOSPI1_IRQHandler ; OctoSPI1 global interrupt DCD PWR_S3WU_IRQHandler ; PWR wake up from Stop3 interrupt DCD SDMMC1_IRQHandler ; SDMMC1 global interrupt DCD SDMMC2_IRQHandler ; SDMMC2 global interrupt DCD GPDMA1_Channel8_IRQHandler ; GPDMA1 Channel 8 global interrupt DCD GPDMA1_Channel9_IRQHandler ; GPDMA1 Channel 9 global interrupt DCD GPDMA1_Channel10_IRQHandler ; GPDMA1 Channel 10 global interrupt DCD GPDMA1_Channel11_IRQHandler ; GPDMA1 Channel 11 global interrupt DCD GPDMA1_Channel12_IRQHandler ; GPDMA1 Channel 12 global interrupt DCD GPDMA1_Channel13_IRQHandler ; GPDMA1 Channel 13 global interrupt DCD GPDMA1_Channel14_IRQHandler ; GPDMA1 Channel 14 global interrupt DCD GPDMA1_Channel15_IRQHandler ; GPDMA1 Channel 15 global interrupt DCD I2C3_EV_IRQHandler ; I2C3 event interrupt DCD I2C3_ER_IRQHandler ; I2C3 error interrupt DCD SAI1_IRQHandler ; Serial Audio Interface 1 global interrupt DCD SAI2_IRQHandler ; Serial Audio Interface 2 global interrupt DCD TSC_IRQHandler ; Touch Sense Controller global interrupt DCD 0 ; Reserved DCD RNG_IRQHandler ; RNG global interrupt DCD FPU_IRQHandler ; FPU global interrupt DCD HASH_IRQHandler ; HASH global interrupt DCD 0 ; Reserved DCD LPTIM3_IRQHandler ; LPTIM3 global interrupt DCD SPI3_IRQHandler ; SPI3 global interrupt DCD I2C4_ER_IRQHandler ; I2C4 Error interrupt DCD I2C4_EV_IRQHandler ; I2C4 Event interrupt DCD MDF1_FLT0_IRQHandler ; MDF1 Filter 0 global interrupt DCD MDF1_FLT1_IRQHandler ; MDF1 Filter 1 global interrupt DCD MDF1_FLT2_IRQHandler ; MDF1 Filter 2 global interrupt DCD MDF1_FLT3_IRQHandler ; MDF1 Filter 3 global interrupt DCD UCPD1_IRQHandler ; UCPD1 global interrupt DCD ICACHE_IRQHandler ; Instruction cache global interrupt DCD 0 ; Reserved DCD 0 ; Reserved DCD LPTIM4_IRQHandler ; LPTIM4 global interrupt DCD DCACHE1_IRQHandler ; Data cache global interrupt DCD ADF1_IRQHandler ; ADF interrupt DCD ADC4_IRQHandler ; ADC4 (12bits) global interrupt DCD LPDMA1_Channel0_IRQHandler ; LPDMA1 SmartRun Channel 0 global interrupt DCD LPDMA1_Channel1_IRQHandler ; LPDMA1 SmartRun Channel 1 global interrupt DCD LPDMA1_Channel2_IRQHandler ; LPDMA1 SmartRun Channel 2 global interrupt DCD LPDMA1_Channel3_IRQHandler ; LPDMA1 SmartRun Channel 3 global interrupt DCD DMA2D_IRQHandler ; DMA2D global interrupt DCD DCMI_PSSI_IRQHandler ; DCMI/PSSI global interrupt DCD OCTOSPI2_IRQHandler ; OCTOSPI2 global interrupt DCD MDF1_FLT4_IRQHandler ; MDF1 Filter 4 global interrupt DCD MDF1_FLT5_IRQHandler ; MDF1 Filter 5 global interrupt DCD CORDIC_IRQHandler ; CORDIC global interrupt DCD FMAC_IRQHandler ; FMAC global interrupt DCD LSECSSD_IRQHandler ; LSECSSD global interrupt __Vectors_End __Vectors_Size EQU __Vectors_End - __Vectors ;申请代码段 AREA |.text|, CODE, READONLY ;名称.text, 代码段只读 ;复位处理程序 ; Reset Handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] ;声明一个可被外部访问的符号且是弱函数 IMPORT SystemInit ;导入 SystemInit 函数 IMPORT __main ;导入 __main 函数 不是我们写的 main() 函数是 C 库中的 main() 函数 LDR R0, __initial_sp ;设置栈顶地址 MOV SP, R0 LDR R0, SystemInit ;调用 SystemInit 函数 BLX R0 LDR R0, __main ;调用C库中的main()函数 BLX R0 BX R0 ENDP ; Dummy Exception Handlers (infinite loops which can be modified) NMI_Handler\ PROC EXPORT NMI_Handler [WEAK] B . ENDP HardFault_Handler\ PROC EXPORT HardFault_Handler [WEAK] B . ENDP MemManage_Handler\ PROC EXPORT MemManage_Handler [WEAK] B . ENDP BusFault_Handler\ PROC EXPORT BusFault_Handler [WEAK] B . ENDP UsageFault_Handler\ PROC EXPORT UsageFault_Handler [WEAK] B . ENDP SecureFault_Handler\ PROC EXPORT SecureFault_Handler [WEAK] B . ENDP SVC_Handler\ PROC EXPORT SVC_Handler [WEAK] B . ENDP DebugMon_Handler\ PROC EXPORT DebugMon_Handler [WEAK] B . ENDP PendSV_Handler\ PROC EXPORT PendSV_Handler [WEAK] B . ENDP SysTick_Handler\ PROC EXPORT SysTick_Handler [WEAK] B . ENDP Default_Handler PROC EXPORT WWDG_IRQHandler [WEAK] EXPORT PVD_PVM_IRQHandler [WEAK] EXPORT RTC_IRQHandler [WEAK] EXPORT RTC_S_IRQHandler [WEAK] EXPORT TAMP_IRQHandler [WEAK] EXPORT RAMCFG_IRQHandler [WEAK] EXPORT FLASH_IRQHandler [WEAK] EXPORT FLASH_S_IRQHandler [WEAK] EXPORT GTZC_IRQHandler [WEAK] EXPORT RCC_IRQHandler [WEAK] EXPORT RCC_S_IRQHandler [WEAK] EXPORT EXTI0_IRQHandler [WEAK] EXPORT EXTI1_IRQHandler [WEAK] EXPORT EXTI2_IRQHandler [WEAK] EXPORT EXTI3_IRQHandler [WEAK] EXPORT EXTI4_IRQHandler [WEAK] EXPORT EXTI5_IRQHandler [WEAK] EXPORT EXTI6_IRQHandler [WEAK] EXPORT EXTI7_IRQHandler [WEAK] EXPORT EXTI8_IRQHandler [WEAK] EXPORT EXTI9_IRQHandler [WEAK] EXPORT EXTI10_IRQHandler [WEAK] EXPORT EXTI11_IRQHandler [WEAK] EXPORT EXTI12_IRQHandler [WEAK] EXPORT EXTI13_IRQHandler [WEAK] EXPORT EXTI14_IRQHandler [WEAK] EXPORT EXTI15_IRQHandler [WEAK] EXPORT IWDG_IRQHandler [WEAK] EXPORT GPDMA1_Channel0_IRQHandler [WEAK] EXPORT GPDMA1_Channel1_IRQHandler [WEAK] EXPORT GPDMA1_Channel2_IRQHandler [WEAK] EXPORT GPDMA1_Channel3_IRQHandler [WEAK] EXPORT GPDMA1_Channel4_IRQHandler [WEAK] EXPORT GPDMA1_Channel5_IRQHandler [WEAK] EXPORT GPDMA1_Channel6_IRQHandler [WEAK] EXPORT GPDMA1_Channel7_IRQHandler [WEAK] EXPORT ADC1_IRQHandler [WEAK] EXPORT DAC1_IRQHandler [WEAK] EXPORT FDCAN1_IT0_IRQHandler [WEAK] EXPORT FDCAN1_IT1_IRQHandler [WEAK] EXPORT TIM1_BRK_IRQHandler [WEAK] EXPORT TIM1_UP_IRQHandler [WEAK] EXPORT TIM1_TRG_COM_IRQHandler [WEAK] EXPORT TIM1_CC_IRQHandler [WEAK] EXPORT TIM2_IRQHandler [WEAK] EXPORT TIM3_IRQHandler [WEAK] EXPORT TIM4_IRQHandler [WEAK] EXPORT TIM5_IRQHandler [WEAK] EXPORT TIM6_IRQHandler [WEAK] EXPORT TIM7_IRQHandler [WEAK] EXPORT TIM8_BRK_IRQHandler [WEAK] EXPORT TIM8_UP_IRQHandler [WEAK] EXPORT TIM8_TRG_COM_IRQHandler [WEAK] EXPORT TIM8_CC_IRQHandler [WEAK] EXPORT I2C1_EV_IRQHandler [WEAK] EXPORT I2C1_ER_IRQHandler [WEAK] EXPORT I2C2_EV_IRQHandler [WEAK] EXPORT I2C2_ER_IRQHandler [WEAK] EXPORT SPI1_IRQHandler [WEAK] EXPORT SPI2_IRQHandler [WEAK] EXPORT USART1_IRQHandler [WEAK] EXPORT USART2_IRQHandler [WEAK] EXPORT USART3_IRQHandler [WEAK] EXPORT UART4_IRQHandler [WEAK] EXPORT UART5_IRQHandler [WEAK] EXPORT LPUART1_IRQHandler [WEAK] EXPORT LPTIM1_IRQHandler [WEAK] EXPORT LPTIM2_IRQHandler [WEAK] EXPORT TIM15_IRQHandler [WEAK] EXPORT TIM16_IRQHandler [WEAK] EXPORT TIM17_IRQHandler [WEAK] EXPORT COMP_IRQHandler [WEAK] EXPORT OTG_FS_IRQHandler [WEAK] EXPORT CRS_IRQHandler [WEAK] EXPORT FMC_IRQHandler [WEAK] EXPORT OCTOSPI1_IRQHandler [WEAK] EXPORT PWR_S3WU_IRQHandler [WEAK] EXPORT SDMMC1_IRQHandler [WEAK] EXPORT SDMMC2_IRQHandler [WEAK] EXPORT GPDMA1_Channel8_IRQHandler [WEAK] EXPORT GPDMA1_Channel9_IRQHandler [WEAK] EXPORT GPDMA1_Channel10_IRQHandler [WEAK] EXPORT GPDMA1_Channel11_IRQHandler [WEAK] EXPORT GPDMA1_Channel12_IRQHandler [WEAK] EXPORT GPDMA1_Channel13_IRQHandler [WEAK] EXPORT GPDMA1_Channel14_IRQHandler [WEAK] EXPORT GPDMA1_Channel15_IRQHandler [WEAK] EXPORT I2C3_EV_IRQHandler [WEAK] EXPORT I2C3_ER_IRQHandler [WEAK] EXPORT SAI1_IRQHandler [WEAK] EXPORT SAI2_IRQHandler [WEAK] EXPORT TSC_IRQHandler [WEAK] EXPORT RNG_IRQHandler [WEAK] EXPORT FPU_IRQHandler [WEAK] EXPORT HASH_IRQHandler [WEAK] EXPORT LPTIM3_IRQHandler [WEAK] EXPORT SPI3_IRQHandler [WEAK] EXPORT I2C4_ER_IRQHandler [WEAK] EXPORT I2C4_EV_IRQHandler [WEAK] EXPORT MDF1_FLT0_IRQHandler [WEAK] EXPORT MDF1_FLT1_IRQHandler [WEAK] EXPORT MDF1_FLT2_IRQHandler [WEAK] EXPORT MDF1_FLT3_IRQHandler [WEAK] EXPORT UCPD1_IRQHandler [WEAK] EXPORT ICACHE_IRQHandler [WEAK] EXPORT LPTIM4_IRQHandler [WEAK] EXPORT DCACHE1_IRQHandler [WEAK] EXPORT ADF1_IRQHandler [WEAK] EXPORT ADC4_IRQHandler [WEAK] EXPORT LPDMA1_Channel0_IRQHandler [WEAK] EXPORT LPDMA1_Channel1_IRQHandler [WEAK] EXPORT LPDMA1_Channel2_IRQHandler [WEAK] EXPORT LPDMA1_Channel3_IRQHandler [WEAK] EXPORT DMA2D_IRQHandler [WEAK] EXPORT DCMI_PSSI_IRQHandler [WEAK] EXPORT OCTOSPI2_IRQHandler [WEAK] EXPORT MDF1_FLT4_IRQHandler [WEAK] EXPORT MDF1_FLT5_IRQHandler [WEAK] EXPORT CORDIC_IRQHandler [WEAK] EXPORT FMAC_IRQHandler [WEAK] EXPORT LSECSSD_IRQHandler [WEAK] WWDG_IRQHandler PVD_PVM_IRQHandler RTC_IRQHandler RTC_S_IRQHandler TAMP_IRQHandler RAMCFG_IRQHandler FLASH_IRQHandler FLASH_S_IRQHandler GTZC_IRQHandler RCC_IRQHandler RCC_S_IRQHandler EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler EXTI5_IRQHandler EXTI6_IRQHandler EXTI7_IRQHandler EXTI8_IRQHandler EXTI9_IRQHandler EXTI10_IRQHandler EXTI11_IRQHandler EXTI12_IRQHandler EXTI13_IRQHandler EXTI14_IRQHandler EXTI15_IRQHandler IWDG_IRQHandler GPDMA1_Channel0_IRQHandler GPDMA1_Channel1_IRQHandler GPDMA1_Channel2_IRQHandler GPDMA1_Channel3_IRQHandler GPDMA1_Channel4_IRQHandler GPDMA1_Channel5_IRQHandler GPDMA1_Channel6_IRQHandler GPDMA1_Channel7_IRQHandler ADC1_IRQHandler DAC1_IRQHandler FDCAN1_IT0_IRQHandler FDCAN1_IT1_IRQHandler TIM1_BRK_IRQHandler TIM1_UP_IRQHandler TIM1_TRG_COM_IRQHandler TIM1_CC_IRQHandler TIM2_IRQHandler TIM3_IRQHandler TIM4_IRQHandler TIM5_IRQHandler TIM6_IRQHandler TIM7_IRQHandler TIM8_BRK_IRQHandler TIM8_UP_IRQHandler TIM8_TRG_COM_IRQHandler TIM8_CC_IRQHandler I2C1_EV_IRQHandler I2C1_ER_IRQHandler I2C2_EV_IRQHandler I2C2_ER_IRQHandler SPI1_IRQHandler SPI2_IRQHandler USART1_IRQHandler USART2_IRQHandler USART3_IRQHandler UART4_IRQHandler UART5_IRQHandler LPUART1_IRQHandler LPTIM1_IRQHandler LPTIM2_IRQHandler TIM15_IRQHandler TIM16_IRQHandler TIM17_IRQHandler COMP_IRQHandler OTG_FS_IRQHandler CRS_IRQHandler FMC_IRQHandler OCTOSPI1_IRQHandler PWR_S3WU_IRQHandler SDMMC1_IRQHandler SDMMC2_IRQHandler GPDMA1_Channel8_IRQHandler GPDMA1_Channel9_IRQHandler GPDMA1_Channel10_IRQHandler GPDMA1_Channel11_IRQHandler GPDMA1_Channel12_IRQHandler GPDMA1_Channel13_IRQHandler GPDMA1_Channel14_IRQHandler GPDMA1_Channel15_IRQHandler I2C3_EV_IRQHandler I2C3_ER_IRQHandler SAI1_IRQHandler SAI2_IRQHandler TSC_IRQHandler RNG_IRQHandler FPU_IRQHandler HASH_IRQHandler LPTIM3_IRQHandler SPI3_IRQHandler I2C4_ER_IRQHandler I2C4_EV_IRQHandler MDF1_FLT0_IRQHandler MDF1_FLT1_IRQHandler MDF1_FLT2_IRQHandler MDF1_FLT3_IRQHandler UCPD1_IRQHandler ICACHE_IRQHandler LPTIM4_IRQHandler DCACHE1_IRQHandler ADF1_IRQHandler ADC4_IRQHandler LPDMA1_Channel0_IRQHandler LPDMA1_Channel1_IRQHandler LPDMA1_Channel2_IRQHandler LPDMA1_Channel3_IRQHandler DMA2D_IRQHandler DCMI_PSSI_IRQHandler OCTOSPI2_IRQHandler MDF1_FLT4_IRQHandler MDF1_FLT5_IRQHandler CORDIC_IRQHandler FMAC_IRQHandler LSECSSD_IRQHandler B . ENDP ALIGN ;******************************************************************************* ; User Stack and Heap initialization ; 用户 栈和堆 初始化 ;******************************************************************************* IF :DEF:__MICROLIB EXPORT __initial_sp EXPORT __heap_base EXPORT __heap_limit ELSE IMPORT __use_two_region_memory EXPORT __user_initial_stackheap __user_initial_stackheap PROC LDR R0, Heap_Mem LDR R1, (Stack_Mem Stack_Size) LDR R2, (Heap_Mem Heap_Size) LDR R3, Stack_Mem BX LR ENDP ALIGN ENDIF END

相关新闻

NVIC相关寄存器

NVIC相关寄存器

用户中断控制相关寄存器 16~479用户中断相关寄存器中断使能、失能寄存器 NVIC->ISER[0] ~ NVIC->ISER[15]NVIC->ICER[0] ~ NVIC->ICER[15] void NVIC_EnableIRQ (IRQn_Type IRQn); // Enables an interrupt void NVIC_DisableIRQ (IRQn_Type IRQn); // Disables an…

2026/5/17 12:54:06 阅读更多 →
直接上干货!今天咱们聊聊怎么用Matlab实现基于动态窗口法(DWA)的机器人避障。这个算法特别适合处理突发障碍物,先扔个可以直接运行的代码框架

直接上干货!今天咱们聊聊怎么用Matlab实现基于动态窗口法(DWA)的机器人避障。这个算法特别适合处理突发障碍物,先扔个可以直接运行的代码框架

基于DWA算法的机器人避障路径规划 matlab程序 机器人路径优化dwa算法,栅格栏 直接修改数据运行即可% 初始化参数 robot.vel [0, 0]; % 当前速度 [v, w] robot.pose [0, 0, 0]; % 初始位姿 [x,y,θ] goal [10, 10]; % 目标点 obstacles [3,4; 7…

2026/7/4 8:56:53 阅读更多 →
LITESTAR 4D应用:室内球场照明设计

LITESTAR 4D应用:室内球场照明设计

设计意义提供良好的照明,提升比赛体验,提高比赛质量,保障选手安全,节能和环保设计要求照明强度:篮球场需要足够的照明强度,以确保运动员和观众能够清晰地看到比赛。一般而言,篮球场的水平面照度…

2026/5/17 12:54:06 阅读更多 →

最新新闻

使用glibc-all-in-one的10个实用技巧:从基础下载到高级调试

使用glibc-all-in-one的10个实用技巧:从基础下载到高级调试

使用glibc-all-in-one的10个实用技巧:从基础下载到高级调试 【免费下载链接】glibc-all-in-one 🎁A convenient glibc binary and debug file downloader and source code auto builder 项目地址: https://gitcode.com/gh_mirrors/gl/glibc-all-in-one…

2026/7/5 16:35:01 阅读更多 →
Stocksera数据源揭秘:从Yahoo Finance到SEC.gov的完整集成方案

Stocksera数据源揭秘:从Yahoo Finance到SEC.gov的完整集成方案

Stocksera数据源揭秘:从Yahoo Finance到SEC.gov的完整集成方案 【免费下载链接】Stocksera Finance application that provides more than 60 different alternative data to retail investors 项目地址: https://gitcode.com/gh_mirrors/st/Stocksera Stock…

2026/7/5 16:35:01 阅读更多 →
WeKnora智能知识平台:如何在3小时内构建企业级RAG与自主推理系统

WeKnora智能知识平台:如何在3小时内构建企业级RAG与自主推理系统

WeKnora智能知识平台:如何在3小时内构建企业级RAG与自主推理系统 【免费下载链接】WeKnora Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki. 项目地址: https://git…

2026/7/5 16:33:00 阅读更多 →
{{date}} 日志

{{date}} 日志

{{date}} 日志 【免费下载链接】OB_Template OB_Templates is a Obsidian reference for note templates focused on new users of the application using only core plugins. 项目地址: https://gitcode.com/gh_mirrors/ob/OB_Template 天气:☀️ 今日计划&…

2026/7/5 16:33:00 阅读更多 →
终极指南:如何用AI驱动的供应链瓶颈研究方法提升投资决策效率

终极指南:如何用AI驱动的供应链瓶颈研究方法提升投资决策效率

终极指南:如何用AI驱动的供应链瓶颈研究方法提升投资决策效率 【免费下载链接】serenity-skill Serenity-inspired Agent Skill for supply-chain bottleneck stock research 项目地址: https://gitcode.com/gh_mirrors/se/serenity-skill 在信息爆炸的投资时…

2026/7/5 16:24:58 阅读更多 →
Mac用户制作Windows启动盘的终极解决方案:WinDiskWriter完全指南

Mac用户制作Windows启动盘的终极解决方案:WinDiskWriter完全指南

Mac用户制作Windows启动盘的终极解决方案:WinDiskWriter完全指南 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI &…

2026/7/5 16:22:58 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻