久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3975|回復: 1
收起左側

stm32學習:啟動代碼startup_stm32f10x_hd.s注解

[復制鏈接]
ID:161768 發表于 2017-2-9 22:32 | 顯示全部樓層 |閱讀模式
  1. ;******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
  2. ;* File Name : startup_stm32f10x_hd.s
  3. ;* Author : MCD Application Team
  4. ;* Version : V3.4.0
  5. ;* Date : 10/15/2010


  6. Stack_Size EQU 0x00000400                      //定義1KB大小的棧空間

  7. AREA STACK, NOINIT, READWRITE, ALIGN=3 //定義一個段,8(2的3次方)字節對齊 的空間作為棧
  8. Stack_Mem SPACE Stack_Size                    //開辟棧大小1KB,并用0填充
  9. __initial_sp                                                 //標記棧頂地址

  10. Heap_Size EQU 0x00000200                      //定義堆大小512字節

  11. AREA HEAP, NOINIT, READWRITE, ALIGN=3 //定義堆空間,8字節對齊
  12. __heap_base                                 //堆空間基址
  13. Heap_Mem SPACE Heap_Size          //開辟堆空間512字節,并清0
  14. __heap_limit                                   //堆空間結束地址

  15. PRESERVE8 //設置這個文件告訴編譯器鏈接時堆棧是8字節對齊
  16. THUMB //開始使用thumb指令模式


  17. ; Vector Table Mapped to Address 0 at Reset 復位后,中斷向量表映射到地址0
  18. AREA RESET, DATA, READONLY //定義名為RESET的只讀段,這個名稱最好不要亂改,不分大小寫,
  19. EXPORT __Vectors //聲明全局符號,表示中斷向量表入口地址
  20. EXPORT __Vectors_End //中斷向量表結束地址
  21. EXPORT __Vectors_Size //大小

  22. __Vectors DCD __initial_sp ; Top of Stack 棧頂地址
  23. DCD Reset_Handler ; Reset Handler 復位中斷的函數指針
  24. DCD NMI_Handler ; NMI Handler
  25. DCD HardFault_Handler ; Hard Fault Handler
  26. DCD MemManage_Handler ; MPU Fault Handler
  27. DCD BusFault_Handler ; Bus Fault Handler
  28. DCD UsageFault_Handler ; Usage Fault Handler
  29. DCD 0 ; Reserved
  30. DCD 0 ; Reserved
  31. DCD 0 ; Reserved
  32. DCD 0 ; Reserved
  33. DCD SVC_Handler ; SVCall Handler
  34. DCD DebugMon_Handler ; Debug Monitor Handler
  35. DCD 0 ; Reserved
  36. DCD PendSV_Handler ; PendSV Handler
  37. DCD SysTick_Handler ; SysTick Handler 以上都是內核中斷

  38. ; External Interrupts 第16個開始是外設的中斷
  39. DCD WWDG_IRQHandler ; Window Watchdog
  40. DCD PVD_IRQHandler ; PVD through EXTI Line detect
  41. DCD TAMPER_IRQHandler ; Tamper
  42. DCD RTC_IRQHandler ; RTC
  43. DCD FLASH_IRQHandler ; Flash
  44. DCD RCC_IRQHandler ; RCC
  45. DCD EXTI0_IRQHandler ; EXTI Line 0
  46. DCD EXTI1_IRQHandler ; EXTI Line 1
  47. DCD EXTI2_IRQHandler ; EXTI Line 2
  48. DCD EXTI3_IRQHandler ; EXTI Line 3
  49. DCD EXTI4_IRQHandler ; EXTI Line 4
  50. DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
  51. DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
  52. DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
  53. DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
  54. DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
  55. DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
  56. DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
  57. DCD ADC1_2_IRQHandler ; ADC1 & ADC2
  58. DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
  59. DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
  60. DCD CAN1_RX1_IRQHandler ; CAN1 RX1
  61. DCD CAN1_SCE_IRQHandler ; CAN1 SCE
  62. DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
  63. DCD TIM1_BRK_IRQHandler ; TIM1 Break
  64. DCD TIM1_UP_IRQHandler ; TIM1 Update
  65. DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
  66. DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
  67. DCD TIM2_IRQHandler ; TIM2
  68. DCD TIM3_IRQHandler ; TIM3
  69. DCD TIM4_IRQHandler ; TIM4
  70. DCD I2C1_EV_IRQHandler ; I2C1 Event
  71. DCD I2C1_ER_IRQHandler ; I2C1 Error
  72. DCD I2C2_EV_IRQHandler ; I2C2 Event
  73. DCD I2C2_ER_IRQHandler ; I2C2 Error
  74. DCD SPI1_IRQHandler ; SPI1
  75. DCD SPI2_IRQHandler ; SPI2
  76. DCD USART1_IRQHandler ; USART1
  77. DCD USART2_IRQHandler ; USART2
  78. DCD USART3_IRQHandler ; USART3
  79. DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
  80. DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
  81. DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
  82. DCD TIM8_BRK_IRQHandler ; TIM8 Break
  83. DCD TIM8_UP_IRQHandler ; TIM8 Update
  84. DCD TIM8_TRG_COM_IRQHandler ; TIM8 Trigger and Commutation
  85. DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
  86. DCD ADC3_IRQHandler ; ADC3
  87. DCD FSMC_IRQHandler ; FSMC
  88. DCD SDIO_IRQHandler ; SDIO
  89. DCD TIM5_IRQHandler ; TIM5
  90. DCD SPI3_IRQHandler ; SPI3
  91. DCD UART4_IRQHandler ; UART4
  92. DCD UART5_IRQHandler ; UART5
  93. DCD TIM6_IRQHandler ; TIM6
  94. DCD TIM7_IRQHandler ; TIM7
  95. DCD DMA2_Channel1_IRQHandler ; DMA2 Channel1
  96. DCD DMA2_Channel2_IRQHandler ; DMA2 Channel2
  97. DCD DMA2_Channel3_IRQHandler ; DMA2 Channel3
  98. DCD DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
  99. __Vectors_End ;以上即中斷函數指針數組

  100. __Vectors_Size EQU __Vectors_End - __Vectors ;計算中斷向量表長度

  101. AREA |.text|, CODE, READONLY ;定義只讀代碼段

  102. ; Reset handler ;復位中斷服務的入口
  103. Reset_Handler PROC ;PROC_ENDP是一個函數的開始與結束標記
  104. EXPORT Reset_Handler [WEAK];聲明復位中斷向量為全局的,可供外部調用,WEAK標記本代碼是備用編譯
  105. IMPORT __main ;導入c庫中的main標號,這個是c庫中的內容,不是我們自己寫的那個main函數
  106. IMPORT SystemInit ;導入SystemInit
  107. LDR R0, =SystemInit
  108. BLX R0 ;跳到SystemInit
  109. LDR R0, =__main ;裝載鏈接器添加的_mian代碼,用來進行flash到ram的存儲器映射與數據段拷貝并清0
  110. BX R0 ;它還執行了lib_init等c庫的初始化工作,完了之后再進入用戶的mian函數
  111. ENDP

  112. ; Dummy Exception Handlers (infinite loops which can be modified)

  113. NMI_Handler PROC
  114. EXPORT NMI_Handler [WEAK]
  115. B . ;weak標記說明,如果使用這個備用的函數(外部文件中沒有NMI_Handler),這里的B指令用nop替換,
  116. ENDP ;也就是說讓編譯器忽略,外部找不到任何NMI_Handler函數時的警告或錯誤
  117. HardFault_Handler\
  118. PROC
  119. EXPORT HardFault_Handler [WEAK]
  120. B .
  121. ENDP
  122. MemManage_Handler\
  123. PROC
  124. EXPORT MemManage_Handler [WEAK]
  125. B .
  126. ENDP
  127. BusFault_Handler\
  128. PROC
  129. EXPORT BusFault_Handler [WEAK]
  130. B .
  131. ENDP
  132. UsageFault_Handler\
  133. PROC
  134. EXPORT UsageFault_Handler [WEAK]
  135. B .
  136. ENDP
  137. SVC_Handler PROC
  138. EXPORT SVC_Handler [WEAK]
  139. B .
  140. ENDP
  141. DebugMon_Handler\
  142. PROC
  143. EXPORT DebugMon_Handler [WEAK]
  144. B .
  145. ENDP
  146. PendSV_Handler PROC
  147. EXPORT PendSV_Handler [WEAK]
  148. B .
  149. ENDP
  150. SysTick_Handler PROC
  151. EXPORT SysTick_Handler [WEAK]
  152. B .
  153. ENDP

  154. Default_Handler PROC

  155. EXPORT WWDG_IRQHandler [WEAK]
  156. EXPORT PVD_IRQHandler [WEAK]
  157. EXPORT TAMPER_IRQHandler [WEAK]
  158. EXPORT RTC_IRQHandler [WEAK]
  159. EXPORT FLASH_IRQHandler [WEAK]
  160. EXPORT RCC_IRQHandler [WEAK]
  161. EXPORT EXTI0_IRQHandler [WEAK]
  162. EXPORT EXTI1_IRQHandler [WEAK]
  163. EXPORT EXTI2_IRQHandler [WEAK]
  164. EXPORT EXTI3_IRQHandler [WEAK]
  165. EXPORT EXTI4_IRQHandler [WEAK]
  166. EXPORT DMA1_Channel1_IRQHandler [WEAK]
  167. EXPORT DMA1_Channel2_IRQHandler [WEAK]
  168. EXPORT DMA1_Channel3_IRQHandler [WEAK]
  169. EXPORT DMA1_Channel4_IRQHandler [WEAK]
  170. EXPORT DMA1_Channel5_IRQHandler [WEAK]
  171. EXPORT DMA1_Channel6_IRQHandler [WEAK]
  172. EXPORT DMA1_Channel7_IRQHandler [WEAK]
  173. EXPORT ADC1_2_IRQHandler [WEAK]
  174. EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK]
  175. EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK]
  176. EXPORT CAN1_RX1_IRQHandler [WEAK]
  177. EXPORT CAN1_SCE_IRQHandler [WEAK]
  178. EXPORT EXTI9_5_IRQHandler [WEAK]
  179. EXPORT TIM1_BRK_IRQHandler [WEAK]
  180. EXPORT TIM1_UP_IRQHandler [WEAK]
  181. EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
  182. EXPORT TIM1_CC_IRQHandler [WEAK]
  183. EXPORT TIM2_IRQHandler [WEAK]
  184. EXPORT TIM3_IRQHandler [WEAK]
  185. EXPORT TIM4_IRQHandler [WEAK]
  186. EXPORT I2C1_EV_IRQHandler [WEAK]
  187. EXPORT I2C1_ER_IRQHandler [WEAK]
  188. EXPORT I2C2_EV_IRQHandler [WEAK]
  189. EXPORT I2C2_ER_IRQHandler [WEAK]
  190. EXPORT SPI1_IRQHandler [WEAK]
  191. EXPORT SPI2_IRQHandler [WEAK]
  192. EXPORT USART1_IRQHandler [WEAK]
  193. EXPORT USART2_IRQHandler [WEAK]
  194. EXPORT USART3_IRQHandler [WEAK]
  195. EXPORT EXTI15_10_IRQHandler [WEAK]
  196. EXPORT RTCAlarm_IRQHandler [WEAK]
  197. EXPORT USBWakeUp_IRQHandler [WEAK]
  198. EXPORT TIM8_BRK_IRQHandler [WEAK]
  199. EXPORT TIM8_UP_IRQHandler [WEAK]
  200. EXPORT TIM8_TRG_COM_IRQHandler [WEAK]
  201. EXPORT TIM8_CC_IRQHandler [WEAK]
  202. EXPORT ADC3_IRQHandler [WEAK]
  203. EXPORT FSMC_IRQHandler [WEAK]
  204. EXPORT SDIO_IRQHandler [WEAK]
  205. EXPORT TIM5_IRQHandler [WEAK]
  206. EXPORT SPI3_IRQHandler [WEAK]
  207. EXPORT UART4_IRQHandler [WEAK]
  208. EXPORT UART5_IRQHandler [WEAK]
  209. EXPORT TIM6_IRQHandler [WEAK]
  210. EXPORT TIM7_IRQHandler [WEAK]
  211. EXPORT DMA2_Channel1_IRQHandler [WEAK]
  212. EXPORT DMA2_Channel2_IRQHandler [WEAK]
  213. EXPORT DMA2_Channel3_IRQHandler [WEAK]
  214. EXPORT DMA2_Channel4_5_IRQHandler [WEAK]

  215. WWDG_IRQHandler
  216. PVD_IRQHandler
  217. TAMPER_IRQHandler
  218. RTC_IRQHandler
  219. FLASH_IRQHandler
  220. RCC_IRQHandler
  221. EXTI0_IRQHandler
  222. EXTI1_IRQHandler
  223. EXTI2_IRQHandler
  224. EXTI3_IRQHandler
  225. EXTI4_IRQHandler
  226. DMA1_Channel1_IRQHandler
  227. DMA1_Channel2_IRQHandler
  228. DMA1_Channel3_IRQHandler
  229. DMA1_Channel4_IRQHandler
  230. DMA1_Channel5_IRQHandler
  231. DMA1_Channel6_IRQHandler
  232. DMA1_Channel7_IRQHandler
  233. ADC1_2_IRQHandler
  234. USB_HP_CAN1_TX_IRQHandler
  235. USB_LP_CAN1_RX0_IRQHandler
  236. CAN1_RX1_IRQHandler
  237. CAN1_SCE_IRQHandler
  238. EXTI9_5_IRQHandler
  239. TIM1_BRK_IRQHandler
  240. TIM1_UP_IRQHandler
  241. TIM1_TRG_COM_IRQHandler
  242. TIM1_CC_IRQHandler
  243. TIM2_IRQHandler
  244. TIM3_IRQHandler
  245. TIM4_IRQHandler
  246. I2C1_EV_IRQHandler
  247. I2C1_ER_IRQHandler
  248. I2C2_EV_IRQHandler
  249. I2C2_ER_IRQHandler
  250. SPI1_IRQHandler
  251. SPI2_IRQHandler
  252. USART1_IRQHandler
  253. USART2_IRQHandler
  254. USART3_IRQHandler
  255. EXTI15_10_IRQHandler
  256. RTCAlarm_IRQHandler
  257. USBWakeUp_IRQHandler
  258. TIM8_BRK_IRQHandler
  259. TIM8_UP_IRQHandler
  260. TIM8_TRG_COM_IRQHandler
  261. TIM8_CC_IRQHandler
  262. ADC3_IRQHandler
  263. FSMC_IRQHandler
  264. SDIO_IRQHandler
  265. TIM5_IRQHandler
  266. SPI3_IRQHandler
  267. UART4_IRQHandler
  268. UART5_IRQHandler
  269. TIM6_IRQHandler
  270. TIM7_IRQHandler
  271. DMA2_Channel1_IRQHandler
  272. DMA2_Channel2_IRQHandler
  273. DMA2_Channel3_IRQHandler
  274. DMA2_Channel4_5_IRQHandler
  275. B .

  276. ENDP

  277. ALIGN

  278. ;*******************************************************************************
  279. ; User Stack and Heap initialization
  280. ;*******************************************************************************
  281. IF :DEF:__MICROLIB ;判斷是否定義了這個宏

  282. EXPORT __initial_sp ;是的話定義為全局屬性
  283. EXPORT __heap_base
  284. EXPORT __heap_limit

  285. ELSE

  286. IMPORT __use_two_region_memory ;使用2個存儲區?
  287. EXPORT __user_initial_stackheap ;用戶堆棧初始化入口

  288. __user_initial_stackheap

  289. LDR R0, = Heap_Mem ;堆棧初始化
  290. LDR R1, =(Stack_Mem + Stack_Size)
  291. LDR R2, = (Heap_Mem + Heap_Size)
  292. LDR R3, = Stack_Mem
  293. BX LR

  294. ALIGN ;填充字節使地址對齊

  295. ENDIF

  296. END ;結束匯編文件

  297. ;******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE*****
復制代碼


回復

使用道具 舉報

ID:829862 發表于 2022-2-4 23:54 | 顯示全部樓層
:handshake:victory::o
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a级片网站| 日本一本视频 | 亚洲成人精品免费 | av资源中文在线 | 青青草在线视频免费观看 | 欧美精品一区二区在线观看 | 九九色综合 | 久久久久久免费毛片精品 | 伊人影院99| 黄色一级毛片 | 久久性 | 91资源在线观看 | 国产精品免费一区二区三区四区 | 国产视频第一页 | 免费一区| 男人的天堂在线视频 | 懂色av一区二区三区在线播放 | 91免费电影 | 国产精品久久久久久一区二区三区 | 日韩成人一区 | 亚洲一区二区三区在线视频 | 精品久久国产视频 | 亚洲精品乱码久久久久久按摩 | 美女福利网站 | 日韩欧美在线免费 | www久| 黄色大片免费看 | 91se在线| 伊人天堂网 | 亚洲精品国产成人 | 免费av毛片 | 99精品免费 | 成人a免费| 国产成人精品免高潮在线观看 | 欧美日韩高清一区 | 中文在线视频 | 黄视频网站在线 | 欧美三区 | 97色伦网 | 久久精品91久久久久久再现 | 亚洲视频中文字幕 |