LPC1778启动代码分析.doc_第1页
LPC1778启动代码分析.doc_第2页
LPC1778启动代码分析.doc_第3页
LPC1778启动代码分析.doc_第4页
LPC1778启动代码分析.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LPC1788 启动代码分析 在Keil uVision4中新建一个基于NXP1788的工程后,会提示添加启动汇编代码startup_LPC177x_8x.S。该文件进行从汇编到C语言运行环境的初始化工作。cpp view plaincopy1 ;/* 2 ; * file: startup_LPC177x_8x.s 3 ; * purpose: CMSIS Cortex-M3 Core Device Startup File 4 ; * for the NXP LPC177x_8x Device Series 5 ; * version: V1.20 6 ; * date: 07. October 2010 7 ; *- - 8 ; * 9 ; * Copyright (C) 2010 ARM Limited. All rights reserved. 10 ; * ARM Limited (ARM) is supplying this software for use with Cortex-M3 11 ; * processor based microcontrollers. This file can be freely distributed 12 ; * within development tools that are supporting such ARM based processors. 13 ; * 14 ; * THIS SOFTWARE IS PROVIDED AS IS. NO WARRANTIES, WHETHER EXPRESS, IMPLIED 15 ; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 16 ; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. 17 ; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR 18 ; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. 19 ; * 20 ; */ 21 22 23 ; Stack Configuration 24 ; Stack Size (in Bytes) 25 ; 26 27 Stack_Size EQU 0x00000200 28 29 AREA STACK, NOINIT, READWRITE, ALIGN=3 30 Stack_Mem SPACE Stack_Size 31 _initial_sp 32 33 34 ; Heap Configuration 35 ; Heap Size (in Bytes) 36 ; 37 38 Heap_Size EQU 0x00000400 39 40 AREA HEAP, NOINIT, READWRITE, ALIGN=3 41 _heap_base 42 Heap_Mem SPACE Heap_Size 43 _heap_limit 44 45 46 PRESERVE8 47 THUMB 48 49 50 ; Vector Table Mapped to Address 0 at Reset 51 52 AREA RESET, DATA, READONLY 53 EXPORT _Vectors 54 55 _Vectors DCD _initial_sp ; Top of Stack 56 DCD Reset_Handler ; Reset Handler 57 DCD NMI_Handler ; NMI Handler 58 DCD HardFault_Handler ; Hard Fault Handler 59 DCD MemManage_Handler ; MPU Fault Handler 60 DCD BusFault_Handler ; Bus Fault Handler 61 DCD UsageFault_Handler ; Usage Fault Handler 62 DCD 0 ; Reserved 63 DCD 0 ; Reserved 64 DCD 0 ; Reserved 65 DCD 0 ; Reserved 66 DCD SVC_Handler ; SVCall Handler 67 DCD DebugMon_Handler ; Debug Monitor Handler 68 DCD 0 ; Reserved 69 DCD PendSV_Handler ; PendSV Handler 70 DCD SysTick_Handler ; SysTick Handler 71 72 ; External Interrupts 73 DCD WDT_IRQHandler ; 16: Watchdog Timer 74 DCD TIMER0_IRQHandler ; 17: Timer0 75 DCD TIMER1_IRQHandler ; 18: Timer1 76 DCD TIMER2_IRQHandler ; 19: Timer2 77 DCD TIMER3_IRQHandler ; 20: Timer3 78 DCD UART0_IRQHandler ; 21: UART0 79 DCD UART1_IRQHandler ; 22: UART1 80 DCD UART2_IRQHandler ; 23: UART2 81 DCD UART3_IRQHandler ; 24: UART3 82 DCD PWM1_IRQHandler ; 25: PWM1 83 DCD I2C0_IRQHandler ; 26: I2C0 84 DCD I2C1_IRQHandler ; 27: I2C1 85 DCD I2C2_IRQHandler ; 28: I2C2 86 DCD SPIFI_IRQHandler ; 29: SPIFI 87 DCD SSP0_IRQHandler ; 30: SSP0 88 DCD SSP1_IRQHandler ; 31: SSP1 89 DCD PLL0_IRQHandler ; 32: PLL0 Lock (Main PLL) 90 DCD RTC_IRQHandler ; 33: Real Time Clock 91 DCD EINT0_IRQHandler ; 34: External Interrupt 0 92 DCD EINT1_IRQHandler ; 35: External Interrupt 1 93 DCD EINT2_IRQHandler ; 36: External Interrupt 2 94 DCD EINT3_IRQHandler ; 37: External Interrupt 3 95 DCD ADC_IRQHandler ; 38: A/D Converter 96 DCD BOD_IRQHandler ; 39: Brown-Out Detect 97 DCD USB_IRQHandler ; 40: USB 98 DCD CAN_IRQHandler ; 41: CAN 99 DCD DMA_IRQHandler ; 42: General Purpose DMA 100 DCD I2S_IRQHandler ; 43: I2S 101 DCD ENET_IRQHandler ; 44: Ethernet 102 DCD MCI_IRQHandler ; 45: SD/MMC card I/F 103 DCD MCPWM_IRQHandler ; 46: Motor Control PWM 104 DCD QEI_IRQHandler ; 47: Quadrature Encoder Interface 105 DCD PLL1_IRQHandler ; 48: PLL1 Lock (USB PLL) 106 DCD USBActivity_IRQHandler ; 49: USB Activity interrupt to wakeup 107 DCD CANActivity_IRQHandler ; 50: CAN Activity interrupt to wakeup 108 DCD UART4_IRQHandler ; 51: UART4 109 DCD SSP2_IRQHandler ; 52: SSP2 110 DCD LCD_IRQHandler ; 53: LCD 111 DCD GPIO_IRQHandler ; 54: GPIO 112 DCD PWM0_IRQHandler ; 55: PWM0 113 DCD EEPROM_IRQHandler ; 56: EEPROM 114 115 116 IF :LNOT:DEF:NO_CRP 117 AREA |.ARM._at_0x02FC|, CODE, READONLY 118 CRP_Key DCD 0xFFFFFFFF 119 ENDIF 120 121 122 AREA |.text|, CODE, READONLY 123 124 125 ; Reset Handler 126 127 Reset_Handler PROC 128 EXPORT Reset_Handler WEAK 129 IMPORT SystemInit 130 IMPORT _main 131 LDR R0, =SystemInit 132 BLX R0 133 LDR R0, =_main 134 BX R0 135 ENDP 136 137 138 ; Dummy Exception Handlers (infinite loops which can be modified) 139 140 NMI_Handler PROC 141 EXPORT NMI_Handler WEAK 142 B . 143 ENDP 144 HardFault_Handler 145 PROC 146 EXPORT HardFault_Handler WEAK 147 B . 148 ENDP 149 MemManage_Handler 150 PROC 151 EXPORT MemManage_Handler WEAK 152 B . 153 ENDP 154 BusFault_Handler 155 PROC 156 EXPORT BusFault_Handler WEAK 157 B . 158 ENDP 159 UsageFault_Handler 160 PROC 161 EXPORT UsageFault_Handler WEAK 162 B . 163 ENDP 164 SVC_Handler PROC 165 EXPORT SVC_Handler WEAK 166 B . 167 ENDP 168 DebugMon_Handler 169 PROC 170 EXPORT DebugMon_Handler WEAK 171 B . 172 ENDP 173 PendSV_Handler PROC 174 EXPORT PendSV_Handler WEAK 175 B . 176 ENDP 177 SysTick_Handler PROC 178 EXPORT SysTick_Handler WEAK 179 B . 180 ENDP 181 182 Default_Handler PROC 183 184 EXPORT WDT_IRQHandler WEAK 185 EXPORT TIMER0_IRQHandler WEAK 186 EXPORT TIMER1_IRQHandler WEAK 187 EXPORT TIMER2_IRQHandler WEAK 188 EXPORT TIMER3_IRQHandler WEAK 189 EXPORT UART0_IRQHandler WEAK 190 EXPORT UART1_IRQHandler WEAK 191 EXPORT UART2_IRQHandler WEAK 192 EXPORT UART3_IRQHandler WEAK 193 EXPORT PWM1_IRQHandler WEAK 194 EXPORT I2C0_IRQHandler WEAK 195 EXPORT I2C1_IRQHandler WEAK 196 EXPORT I2C2_IRQHandler WEAK 197 EXPORT SPIFI_IRQHandler WEAK 198 EXPORT SSP0_IRQHandler WEAK 199 EXPORT SSP1_IRQHandler WEAK 200 EXPORT PLL0_IRQHandler WEAK 201 EXPORT RTC_IRQHandler WEAK 202 EXPORT EINT0_IRQHandler WEAK 203 EXPORT EINT1_IRQHandler WEAK 204 EXPORT EINT2_IRQHandler WEAK 205 EXPORT EINT3_IRQHandler WEAK 206 EXPORT ADC_IRQHandler WEAK 207 EXPORT BOD_IRQHandler WEAK 208 EXPORT USB_IRQHandler WEAK 209 EXPORT CAN_IRQHandler WEAK 210 EXPORT DMA_IRQHandler WEAK 211 EXPORT I2S_IRQHandler WEAK 212 EXPORT ENET_IRQHandler WEAK 213 EXPORT MCI_IRQHandler WEAK 214 EXPORT MCPWM_IRQHandler WEAK 215 EXPORT QEI_IRQHandler WEAK 216 EXPORT PLL1_IRQHandler WEAK 217 EXPORT USBActivity_IRQHandler WEAK 218 EXPORT CANActivity_IRQHandler WEAK 219 EXPORT UART4_IRQHandler WEAK 220 EXPORT SSP2_IRQHandler WEAK 221 EXPORT LCD_IRQHandler WEAK 222 EXPORT GPIO_IRQHandler WEAK 223 EXPORT PWM0_IRQHandler WEAK 224 EXPORT EEPROM_IRQHandler WEAK 225 226 WDT_IRQHandler 227 TIMER0_IRQHandler 228 TIMER1_IRQHandler 229 TIMER2_IRQHandler 230 TIMER3_IRQHandler 231 UART0_IRQHandler 232 UART1_IRQHandler 233 UART2_IRQHandler 234 UART3_IRQHandler 235 PWM1_IRQHandler 236 I2C0_IRQHandler 237 I2C1_IRQHandler 238 I2C2_IRQHandler 239 SPIFI_IRQHandler 240 SSP0_IRQHandler 241 SSP1_IRQHandler 242 PLL0_IRQHandler 243 RTC_IRQHandler 244 EINT0_IRQHandler 245 EINT1_IRQHandler 246 EINT2_IRQHandler 247 EINT3_IRQHandler 248 ADC_IRQHandler 249 BOD_IRQHandler 250 USB_IRQHandler 251 CAN_IRQHandler 252 DMA_IRQHandler 253 I2S_IRQHandler 254 ENET_IRQHandler 255 MCI_IRQHandler 256 MCPWM_IRQHandler 257 QEI_IRQHandler 258 PLL1_IRQHandler 259 USBActivity_IRQHandler 260 CANActivity_IRQHandler 261 UART4_IRQHandler 262 SSP2_IRQHandler 263 LCD_IRQHandler 264 GPIO_IRQHandler 265 PWM0_IRQHandler 266 EEPROM_IRQHandler 267 268 B . 269 270 ENDP 271 272 273 ALIGN 274 275 276 ; User Initial Stack & Heap 277 278 IF :DEF:_MICROLIB 279 280 EXPORT _initial_sp 281 EXPORT _heap_base 282 EXPORT _heap_limit 283 284 ELSE 285 286 IMPORT _use_two_region_memory 287 EXPORT _user_initial_stackheap 288 _user_initial_stackheap 289 290 LDR R0, = Heap_Mem 291 LDR R1, =(Stack_Mem + Stack_Size) 292 LDR R2, = (Heap_Mem + Heap_Size) 293 LDR R3, = Stack_Mem 294 BX LR 295 296 ALIGN 297 298 ENDIF 299 300 301 END 程序完成如下内容的工作: 开辟一块大小为Stack_Size的栈空间; 标号_initial_sp指向栈顶位置; 定义堆空间大小为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论