<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > LPC2000系列ARM啟動(dòng)代碼(startup部分)

          LPC2000系列ARM啟動(dòng)代碼(startup部分)

          作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201611/318926.htm
          1. ;定義堆棧的大小
          2. SVC_STACK_LEGTHEQU0
          3. FIQ_STACK_LEGTHEQU0
          4. IRQ_STACK_LEGTHEQU256
          5. ABT_STACK_LEGTHEQU0
          6. UND_STACK_LEGTHEQU0
          7. NoIntEQU0x80;禁止IRQ中斷
          8. NoFIQEQU0x40;禁止FIQ中斷
          9. USR32ModeEQU0x10;ARM的各種工作模式
          10. SVC32ModeEQU0x13
          11. SYS32ModeEQU0x1f
          12. IRQ32ModeEQU0x12
          13. FIQ32ModeEQU0x11
          14. IMPORT__use_no_semihosting_swi
          15. ;引入的外部標(biāo)號(hào)在這聲明
          16. IMPORTFIQ_Exception;Fastinterruptexceptionshandler快速中斷異常處理程序
          17. IMPORT__main;TheentrypointtothemainfunctionC語(yǔ)言主程序入口
          18. IMPORTTargetResetInit;initializethetargetboard目標(biāo)板基本初始化
          19. ;給外部使用的標(biāo)號(hào)在這聲明
          20. EXPORTbottom_of_heap
          21. EXPORTStackUsr
          22. EXPORTReset
          23. EXPORT__user_initial_stackheap
          24. CODE32
          25. AREAvectors,CODE,READONLY
          26. ENTRY
          27. ;中斷向量表
          28. Reset
          29. LDRPC,ResetAddr;//注意,這里應(yīng)該賦值給PC不是ResetAr這個(gè)地址,而是ResetAr這個(gè)地址里的值,是ResetInit
          30. LDRPC,UndefinedAddr;//另外,LDR尋找空間4K,用DCD實(shí)現(xiàn)全范圍尋址
          31. LDRPC,SWI_Addr
          32. LDRPC,PrefetchAddr
          33. LDRPC,DataAbortAddr
          34. DCD0xb9205f80
          35. LDRPC,[PC,#-0xff0]
          36. LDRPC,FIQ_Addr
          37. ResetAddrDCDResetInit
          38. UndefinedAddrDCDUndefined
          39. SWI_AddrDCDSoftwareInterrupt
          40. PrefetchAddrDCDPrefetchAbort
          41. DataAbortAddrDCDDataAbort
          42. NouseDCD0
          43. IRQ_AddrDCD0
          44. FIQ_AddrDCDFIQ_Handler
          45. Undefined
          46. BUndefined
          47. ;軟中斷
          48. SoftwareInterrupt
          49. ;BSoftwareInterrupt
          50. ;//增加開(kāi)/關(guān)中斷處理Chenxibing-2004-02-09
          51. CMPR0,#4
          52. LDRLOPC,[PC,R0,LSL#2]
          53. MOVSPC,LR
          54. SwiFunction
          55. DCDIRQDisable;0
          56. DCDIRQEnable;1
          57. DCDFIQDisable;2
          58. DCDFIQEnable;3
          59. IRQDisable
          60. ;關(guān)IRQ中斷
          61. MRSR0,SPSR
          62. ORRR0,R0,#NoInt
          63. MSRSPSR_c,R0
          64. MOVSPC,LR
          65. IRQEnable
          66. ;開(kāi)IRQ中斷
          67. MRSR0,SPSR
          68. BICR0,R0,#NoInt
          69. MSRSPSR_c,R0
          70. MOVSPC,LR
          71. FIQDisable
          72. ;關(guān)FIQ中斷
          73. MRSR0,SPSR
          74. ORRR0,R0,#NoFIQ
          75. MSRSPSR_c,R0
          76. MOVSPC,LR
          77. FIQEnable
          78. ;開(kāi)FIQ中斷
          79. MRSR0,SPSR
          80. BICR0,R0,#NoFIQ
          81. MSRSPSR_c,R0
          82. MOVSPC,LR
          83. ;//Changed2004-12-09
          84. ;取指令中止
          85. PrefetchAbort
          86. BPrefetchAbort
          87. ;取數(shù)據(jù)中止
          88. DataAbort
          89. BDataAbort
          90. ;快速中斷
          91. FIQ_Handler
          92. STMFDSP!,{R0-R3,LR}
          93. BLFIQ_Exception
          94. LDMFDSP!,{R0-R3,LR}
          95. SUBSPC,LR,#4
          96. ;/*********************************************************************************************************
          97. ;**unctionname函數(shù)名稱(chēng):InitStack
          98. ;**Descriptions功能描述:Initializethestacks初始化堆棧
          99. ;**inputparameters輸 入:None無(wú)
          100. ;**Returnedvalue輸 出:None無(wú)
          101. ;******************************************************************************************************/
          102. InitStack
          103. MOVR0,LR
          104. ;BuildtheSVCstack
          105. ;設(shè)置管理模式堆棧
          106. MSRCPSR_c,#0xd3
          107. LDRSP,StackSvc
          108. ;BuildtheIRQstack
          109. ;設(shè)置中斷模式堆棧
          110. MSRCPSR_c,#0xd2
          111. LDRSP,StackIrq
          112. ;BuildtheFIQstack
          113. ;設(shè)置快速中斷模式堆棧
          114. MSRCPSR_c,#0xd1
          115. LDRSP,StackFiq
          116. ;BuildtheDATAABORTstack
          117. ;設(shè)置中止模式堆棧
          118. MSRCPSR_c,#0xd7
          119. LDRSP,StackAbt
          120. ;BuildtheUDFstack
          121. ;設(shè)置未定義模式堆棧
          122. MSRCPSR_c,#0xdb
          123. LDRSP,StackUnd
          124. ;BuildtheSYSstack
          125. ;設(shè)置系統(tǒng)模式堆棧
          126. MSRCPSR_c,#0xdf
          127. LDRSP,=StackUsr
          128. MOVPC,R0
          129. ;/*********************************************************************************************************
          130. ;**unctionname函數(shù)名稱(chēng):ResetInit
          131. ;**Descriptions功能描述:RESET復(fù)位入口
          132. ;**inputparameters輸 入:None無(wú)
          133. ;**Returnedvalue輸 出:None無(wú)
          134. ;********************************************************************************************************/
          135. ResetInit
          136. BLInitStack;初始化堆棧Initializethestack
          137. BLTargetResetInit;目標(biāo)板基本初始化Initializethetargetboard
          138. ;跳轉(zhuǎn)到c語(yǔ)言入口JumptotheentrypointofCprogram
          139. B__main
          140. ;/*****************************************************************************************************************************************************
          141. ;**unctionname函數(shù)名稱(chēng):__user_initial_stackheap
          142. ;**Descriptions功能描述:Initialthefunctionlibrarystacksandheaps,cannotdeleted!庫(kù)函數(shù)初始化堆和棧,不能刪除
          143. ;**inputparameters輸 入:referencebyfunctionlibrary參考庫(kù)函數(shù)手冊(cè)
          144. ;**Returnedvalue輸 出:referencebyfunctionlibrary參考庫(kù)函數(shù)手冊(cè)
          145. ;************************************************************************************************************************************************************/
          146. __user_initial_stackheap
          147. LDRr0,=bottom_of_heap
          148. ;LDRr1,=StackUsr
          149. MOVpc,lr
          150. StackSvcDCDSvcStackSpace+(SVC_STACK_LEGTH-1)*4
          151. StackIrqDCDIrqStackSpace+(IRQ_STACK_LEGTH-1)*4
          152. StackFiqDCDFiqStackSpace+(FIQ_STACK_LEGTH-1)*4
          153. StackAbtDCDAbtStackSpace+(ABT_STACK_LEGTH-1)*4
          154. StackUndDCDUndtStackSpace+(UND_STACK_LEGTH-1)*4
          155. ;/*********************************************************************************************************
          156. ;**unctionname函數(shù)名稱(chēng):CrpData
          157. ;**Descriptions功能描述:encryptthechip
          158. ;**inputparameters輸 入:None無(wú)
          159. ;**Returnedvalue輸 出:None無(wú)
          160. ;********************************************************************************************************/
          161. IF:DEF:EN_CRP
          162. IF.>=0x1fc
          163. INFO1,"/nThedataat0x000001fcmustbe0x87654321./nPleasedeletesomesourcebeforethisline."
          164. ENDIF
          165. CrpData
          166. WHILE.<0x1fc
          167. NOP
          168. WEND
          169. CrpData1
          170. DCD0x87654321;/*WhentheDatais為0x87654321,usercodebeprotected.當(dāng)此數(shù)為0x87654321時(shí),用戶(hù)程序被保護(hù)*/
          171. ENDIF
          172. ;/*分配堆??臻g*/
          173. AREAMyStacks,DATA,NOINIT,ALIGN=2
          174. SvcStackSpaceSPACESVC_STACK_LEGTH*4;StackspacesforAdministrationMode管理模式堆??臻g
          175. IrqStackSpaceSPACEIRQ_STACK_LEGTH*4;StackspacesforInterruptReQuestMode中斷模式堆??臻g
          176. FiqStackSpaceSPACEFIQ_STACK_LEGTH*4;StackspacesforFastInterruptreQuestMode快速中斷模式堆??臻g
          177. AbtStackSpaceSPACEABT_STACK_LEGTH*4;StackspacesforSuspendMode中止義模式堆??臻g
          178. UndtStackSpaceSPACEUND_STACK_LEGTH*4;StackspacesforUndefinedMode未定義模式堆棧
          179. AREAHeap,DATA,NOINIT
          180. bottom_of_heapSPACE1
          181. AREAStacks,DATA,NOINIT
          182. StackUsr
          183. END
          184. ;/*********************************************************************************************************
          185. ;**EndOfFile
          186. ;********************************************************************************************************/



          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();