⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cstartup.lst

📁 arm 7 lpc21xx的函数库
💻 LST
📖 第 1 页 / 共 2 页
字号:
 172              	/*- Enable interrupt & Set up Supervisor Mode and set Supervisor Mode Stack*/
 173              	
 174              	# Relocate .data section (Copy from ROM to RAM)
 175 0078 A0109FE5 	                LDR     R1, =_etext
 176 007c A0209FE5 	                LDR     R2, =_data
 177 0080 A0309FE5 	                LDR     R3, =_edata
 178 0084 030052E1 	LoopRel:        CMP     R2, R3
 179 0088 04009134 	                LDRLO   R0, [R1], #4
 180 008c 04008234 	                STRLO   R0, [R2], #4
 181 0090 FBFFFF3A 	                BLO     LoopRel
 182              	
 183              	# Clear .bss section (Zero init)
 184 0094 0000A0E3 	                MOV     R0, #0
 185 0098 8C109FE5 	                LDR     R1, =__bss_start__
 186 009c 8C209FE5 	                LDR     R2, =__bss_end__
 187 00a0 020051E1 	LoopZI:         CMP     R1, R2
 188 00a4 04008134 	                STRLO   R0, [R1], #4
 189 00a8 FCFFFF3A 	                BLO     LoopZI
 190              	
 191 00ac 80E09FE5 			ldr	lr,=exit
 192 00b0 80009FE5 			ldr	r0,=main
 193 00b4 10FF2FE1 			bx	r0
 194              			
 195              	        .size   _startup, . - _startup
 196              	        .endfunc
 197              			
 198              	/* "exit" dummy added by mthomas to avoid sbrk write read etc. needed
 199              	   by the newlib default "exit" */
 200              	        .global exit
 201              	        .func   exit
 202              	exit:
 203 00b8 FEFFFFEA 	        b    .
 204              			.size   exit, . - exit
 205              	        .endfunc
 206              			
 207              	/*------------------------------------------------------------------------------
 208              	//*- Manage exception
 209              	//*---------------
 210              	//*- This module The exception must be ensure in ARM mode
 211              	//*------------------------------------------------------------------------------
 212              	//*------------------------------------------------------------------------------
 213              	//*- Function             : IRQ_Handler_Entry
 214              	//*- Treatments           : IRQ Controller Interrupt Handler.
 215              	//*- Called Functions     : AIC_IVR[interrupt] 
 216              	//*------------------------------------------------------------------------------*/
 217              	        .global IRQ_Handler_Entry
 218              	        .func   IRQ_Handler_Entry
 219              	
 220              	IRQ_Handler_Entry:
 221              	
 222              	/*- Manage Exception Entry  */
 223              	/*- Adjust and save LR_irq in IRQ stack  */
ARM GAS  C:\DOCUME~1\pstang\LOCALS~1\Temp/cc2Zaaaa.s 			page 5


 224 00bc 04E04EE2 	            sub         lr, lr, #4
 225 00c0 00402DE9 	            stmfd       sp!, {lr}
 226              	
 227              	/*- Save SPSR need to be saved for nested interrupt */
 228 00c4 00E04FE1 	            mrs         r14, SPSR
 229 00c8 00402DE9 	            stmfd       sp!, {r14}
 230              	
 231              	/*- Save and r0 in IRQ stack  */
 232 00cc 01002DE9 	            stmfd       sp!, {r0}
 233              	
 234              	/*- Write in the IVR to support Protect Mode  */
 235              	/*- No effect in Normal Mode  */
 236              	/*- De-assert the NIRQ and clear the source in Protect Mode */
 237 00d0 44E09FE5 	            ldr         r14, =AT91C_BASE_AIC
 238 00d4 00019EE5 		    ldr         r0 , [r14, #AIC_IVR]
 239 00d8 00E18EE5 		    str         r14, [r14, #AIC_IVR]
 240              	
 241              	/*- Enable Interrupt and Switch in Supervisor Mode */
 242 00dc 13F021E3 	            msr         CPSR_c, #ARM_MODE_SVC
 243              	
 244              	/*- Save scratch/used registers and LR in User Stack */
 245 00e0 0E502DE9 	            stmfd       sp!, { r1-r3, r12, r14}
 246              	
 247              	/*- Branch to the routine pointed by the AIC_IVR  */
 248 00e4 0FE0A0E1 	            mov         r14, pc
 249 00e8 10FF2FE1 	            bx          r0
 250              	/*- Restore scratch/used registers and LR from User Stack*/
 251 00ec 0E50BDE8 	            ldmia       sp!, { r1-r3, r12, r14}
 252              	
 253              	/*- Disable Interrupt and switch back in IRQ mode */
 254 00f0 92F021E3 	            msr         CPSR_c, #I_BIT | ARM_MODE_IRQ
 255              	
 256              	/*- Mark the End of Interrupt on the AIC */
 257 00f4 20E09FE5 	            ldr         r14, =AT91C_BASE_AIC
 258 00f8 30E18EE5 	            str         r14, [r14, #AIC_EOICR]
 259              	
 260              	/*- Restore SPSR_irq and r0 from IRQ stack */
 261 00fc 0100BDE8 	            ldmia       sp!, {r0}
 262              	
 263              	/*- Restore SPSR_irq and r0 from IRQ stack */
 264 0100 0040BDE8 	            ldmia       sp!, {r14}
 265 0104 0EF06FE1 	            msr         SPSR_cxsf, r14
 266              	
 267              	/*- Restore adjusted  LR_irq from IRQ stack directly in the PC */
 268 0108 0080FDE8 	            ldmia       sp!, {pc}^
 269              		
 270              	        .size   IRQ_Handler_Entry, . - IRQ_Handler_Entry
 271              	        .endfunc
 272              	/*---------------------------------------------------------------
 273              	//* ?EXEPTION_VECTOR
 274              	//* This module is only linked if needed for closing files.
 275              	//*---------------------------------------------------------------*/
 276              	        .global AT91F_Default_FIQ_handler
 277              	        .func   AT91F_Default_FIQ_handler
 278              	AT91F_Default_FIQ_handler:
 279 010c FEFFFFEA 	            b     AT91F_Default_FIQ_handler
 280              	        .size   AT91F_Default_FIQ_handler, . - AT91F_Default_FIQ_handler
ARM GAS  C:\DOCUME~1\pstang\LOCALS~1\Temp/cc2Zaaaa.s 			page 6


 281              	        .endfunc
 282              	
 283              	        .global AT91F_Default_IRQ_handler
 284              	        .func   AT91F_Default_IRQ_handler
 285              	AT91F_Default_IRQ_handler:
 286 0110 FEFFFFEA 	            b     AT91F_Default_IRQ_handler
 287              	        .size   AT91F_Default_IRQ_handler, . - AT91F_Default_IRQ_handler
 288              	        .endfunc
 289              	
 290              	        .global AT91F_Spurious_handler
 291              	        .func   AT91F_Spurious_handler
 292              	AT91F_Spurious_handler:
 293 0114 FEFFFFEA 	            b     AT91F_Spurious_handler
 294              	        .size   AT91F_Spurious_handler, . - AT91F_Spurious_handler
 295              	        .endfunc
 296              	
 297 0118 00000000 	        .end
 297      00F0FFFF 
 297      00000000 
 297      00000000 
 297      00000000 
ARM GAS  C:\DOCUME~1\pstang\LOCALS~1\Temp/cc2Zaaaa.s 			page 7


DEFINED SYMBOLS
                            *ABS*:00000000 c:\code\arm\armlib/arch/at91/boot/cstartup.s
c:\code\arm\armlib/arch/at91/boot/cstartup.s:19     *ABS*:00000060 IRQ_Stack_Size
c:\code\arm\armlib/arch/at91/boot/cstartup.s:23     *ABS*:00000100 AIC_IVR
c:\code\arm\armlib/arch/at91/boot/cstartup.s:24     *ABS*:00000104 AIC_FVR
c:\code\arm\armlib/arch/at91/boot/cstartup.s:25     *ABS*:00000130 AIC_EOICR
c:\code\arm\armlib/arch/at91/boot/cstartup.s:26     *ABS*:fffff000 AT91C_BASE_AIC
c:\code\arm\armlib/arch/at91/boot/cstartup.s:36     .internal_ram_top:00000000 $a
c:\code\arm\armlib/arch/at91/boot/cstartup.s:39     .internal_ram_top:00000000 Top_Stack
c:\code\arm\armlib/arch/at91/boot/cstartup.s:49     .text:00000000 _startup
c:\code\arm\armlib/arch/at91/boot/cstartup.s:50     .text:00000000 reset
c:\code\arm\armlib/arch/at91/boot/cstartup.s:61     .text:00000000 $a
c:\code\arm\armlib/arch/at91/boot/cstartup.s:113    .text:00000048 InitReset
c:\code\arm\armlib/arch/at91/boot/cstartup.s:62     .text:00000004 undefvec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:64     .text:00000008 swivec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:66     .text:0000000c pabtvec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:68     .text:00000010 dabtvec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:70     .text:00000014 rsvdvec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:72     .text:00000018 irqvec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:220    .text:000000bc IRQ_Handler_Entry
c:\code\arm\armlib/arch/at91/boot/cstartup.s:74     .text:0000001c fiqvec
c:\code\arm\armlib/arch/at91/boot/cstartup.s:81     .text:0000001c FIQ_Handler_Entry
                            *ABS*:00000080 I_BIT
                            *ABS*:00000040 F_BIT
                            *ABS*:00000013 ARM_MODE_SVC
                            *ABS*:00000011 ARM_MODE_FIQ
c:\code\arm\armlib/arch/at91/boot/cstartup.s:110    .text:00000044 .RAM_TOP
c:\code\arm\armlib/arch/at91/boot/cstartup.s:111    .text:00000044 $d
c:\code\arm\armlib/arch/at91/boot/cstartup.s:121    .text:00000048 $a
c:\code\arm\armlib/arch/at91/boot/cstartup.s:146    *ABS*:00000060 IRQ_STACK_SIZE
c:\code\arm\armlib/arch/at91/boot/cstartup.s:148    *ABS*:00000012 ARM_MODE_IRQ
c:\code\arm\armlib/arch/at91/boot/cstartup.s:178    .text:00000084 LoopRel
c:\code\arm\armlib/arch/at91/boot/cstartup.s:187    .text:000000a0 LoopZI
c:\code\arm\armlib/arch/at91/boot/cstartup.s:202    .text:000000b8 exit
c:\code\arm\armlib/arch/at91/boot/cstartup.s:278    .text:0000010c AT91F_Default_FIQ_handler
c:\code\arm\armlib/arch/at91/boot/cstartup.s:285    .text:00000110 AT91F_Default_IRQ_handler
c:\code\arm\armlib/arch/at91/boot/cstartup.s:292    .text:00000114 AT91F_Spurious_handler
c:\code\arm\armlib/arch/at91/boot/cstartup.s:297    .text:00000118 $d

UNDEFINED SYMBOLS
processorInit
_etext
_data
_edata
__bss_start__
__bss_end__
main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -