微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 keil mdk启动代码发分析

STM32 keil mdk启动代码发分析

时间:11-10 来源:互联网 点击:

  1. DTIM3_IRQHandler;TIM3
  2. DCDTIM4_IRQHandler;TIM4
  3. DCDI2C1_EV_IRQHandler;I2C1Event
  4. DCDI2C1_ER_IRQHandler;I2C1Error
  5. DCDI2C2_EV_IRQHandler;I2C2Event
  6. DCDI2C2_ER_IRQHandler;I2C2Error
  7. DCDSPI1_IRQHandler;SPI1
  8. DCDSPI2_IRQHandler;SPI2
  9. DCDUSART1_IRQHandler;USART1
  10. DCDUSART2_IRQHandler;USART2
  11. DCDUSART3_IRQHandler;USART3
  12. DCDEXTI15_10_IRQHandler;EXTILine15..10
  13. DCDRTCAlarm_IRQHandler;RTCAlarmthroughEXTILine
  14. DCDUSBWakeUp_IRQHandler;USBWakeupfromsuspend;//同上
  15. AREA|.text|,CODE,READONLY;//定义代码段
  16. ;ResetHandler
  17. Reset_HandlerPROC;//Rset_Handler的实现
  18. EXPORTReset_Handler[WEAK];//在外部没有定义该符号时导出该符号,见HELP中[WEAK]
  19. IMPORT__main;//导入符号,__main为运行时库提供的函数;完成堆栈,堆的初始话
  20. LDRR0,=__main;//等工作,会调用下面定义的__user_initial_stackheap;
  21. BXR0;//跳到__main,进入C的世界
  22. ENDP
  23. ALIGN
  24. ;UserInitialStack&Heap
  25. IF:DEF:__MICROLIB;//如果使用microlib,microlib描述见armlib.chm
  26. EXPORT__initial_sp
  27. EXPORT__heap_base
  28. EXPORT__heap_limit;//只导出几个定义
  29. ELSE;//如果使用默认C运行时库
  30. IMPORT__use_two_region_memory
  31. EXPORT__user_initial_stackheap
  32. __user_initial_stackheap;//则进行堆栈和堆的赋值,在__main函数执行过程中调用。
  33. LDRR0,=Heap_Mem
  34. LDRR1,=(Stack_Mem+Stack_Size)
  35. LDRR2,=(Heap_Mem+Heap_Size)
  36. LDRR3,=Stack_Mem
  37. BXLR
  38. ALIGN
  39. ENDIF
  40. END;//OK,完了


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top