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

📄 startup.lst

📁 看看ARM菜鸟在ARM7上写的操作系统——ARM圈圈操作系统 最近在ADuC7027上写了一个ARM_00_OS
💻 LST
📖 第 1 页 / 共 2 页
字号:
                        240             
                        241     
                        242     
                        243                                                                             
00080000                244     AREA   STARTUPCODE, CODE, AT 0x00080000
                        245            PUBLIC  __startup
                        246     
                        247            EXTERN  CODE32 (?C?INIT)
                        248     
                        249     __startup       PROC    CODE32
                        250     
                        251     
                        252     
                        253     EXTERN CODE32 (Undef_Handler?A)
                        254     EXTERN CODE32 (SWI_Handler?A)
                        255     EXTERN CODE32 (PAbt_Handler?A)
                        256     EXTERN CODE32 (DAbt_Handler?A)
AA MACRO ASSEMBLER RSTARTUP                                                                 16/05/06 14:55:44 PAGE     5

                        257     EXTERN CODE32 (IRQ_Handler?A)
                        258     EXTERN CODE32 (FIQ_Handler?A)
                        259     
                        260     
                        261     
                        262     
                        263     
00080000 E59FF000       264     Vectors:        LDR     PC,Reset_Addr         
00080004 E59FF000       265                     LDR     PC,Undef_Addr
00080008 E59FF000       266                     LDR     PC,SWI_Addr
0008000C E59FF000       267                     LDR     PC,PAbt_Addr
00080010 E59FF000       268                     LDR     PC,DAbt_Addr
00080014 E1A00000       269                     NOP                             
00080018 E59FF000       270                     LDR     PC,IRQ_Addr
0008001C E59FF000       271                     LDR     PC,FIQ_Addr
                        272     
00080020 00080040 R     273     Reset_Addr:     DD      Reset_Handler
00080024 00000000 E     274     Undef_Addr:     DD      Undef_Handler?A
00080028 00000000 E     275     SWI_Addr:       DD      SWI_Handler?A
0008002C 00000000 E     276     PAbt_Addr:      DD      PAbt_Handler?A
00080030 00000000 E     277     DAbt_Addr:      DD      DAbt_Handler?A
00080034 00000000       278                     DD      0                       
00080038 00000000 E     279     IRQ_Addr:       DD      IRQ_Handler?A
0008003C 00000000 E     280     FIQ_Addr:       DD      FIQ_Handler?A
                        281     
                        282     
                        283     
                        284     
00080040                285     Reset_Handler:  
                        286     
                        287     
                        288     
                        289     IF (PLL_SETUP != 0)
                                                LDR     R0, =MMR_BASE
                                                MOV     R1, #0x01         
                                                STR     R1, [R0,#POWKEY1_OFFSET]          
                                                MOV     R1, #PLLCFG_Val      
                                                STR     R1, [R0,#POWCON_OFFSET]    
                                                MOV     R1, #0xF4
                                                STR     R1, [R0,#POWKEY2_OFFSET]
                                ENDIF   ; PLL_SETUP
                        298     
                        299     
                        300     
                        301     IF (GPIO_SETUP != 0)
                                
                                                ADR     R10, GPIO_CFG           
                                                LDMIA   R10, {R0-R5}            
                                                STMIA   R0, {R1-R5}             
                                                B       GPIO_END
                                
                                GPIO_CFG:       DD      GPIOBASE
                                                DD      GP0CON_Val
                                                DD      GP1CON_Val
                                                DD      GP2CON_Val
                                                DD      GP3CON_Val
                                                DD      GP4CON_Val
                                GPIO_END:
                                
                                ENDIF   ; GPIO_SETUP
                        317     
                        318     
                        319     
                        320     IF (XM_SETUP != 0)
                                
                                                ADR     R10, XM_CFG             
AA MACRO ASSEMBLER RSTARTUP                                                                 16/05/06 14:55:44 PAGE     6

                                                LDMIA   R10, {R0-R9}            
                                                STR     R1, [R0],#0x10          
                                                STMIA   R0, {R2-R9}             
                                                B       XM_END
                                
                                XM_CFG:         DD      XMBASE
                                                DD      XMCFG_Val
                                                DD      XM0CON_Val
                                                DD      XM1CON_Val
                                                DD      XM2CON_Val
                                                DD      XM3CON_Val
                                                DD      XM0PAR_Val
                                                DD      XM1PAR_Val
                                                DD      XM2PAR_Val
                                                DD      XM3PAR_Val
                                XM_END:
                                
                                ENDIF   ; XM_SETUP
                        341     
                        342     
                        343     
                        344     
                        345     
                        346     $if  (RAM_INTVEC)
                                                ADR     R8, Vectors         ; Source
                                                LDR     R9, =0x00010000     ; Destination
                                                LDMIA   R8!, {R0-R7}        ; Load Vectors 
                                                STMIA   R9!, {R0-R7}        ; Store Vectors 
                                                LDMIA   R8!, {R0-R7}        ; Load Handler Addresses 
                                                STMIA   R9!, {R0-R7}        ; Store Handler Addresses 
                                                LDR     R0, =MMR_BASE
                                                MOV     R1, #1     
                                                STR     R1, [R0,#PREMAP_OFFSET]          
                                                STR     R1, [R0,#REMAP_OFFSET]          
                                $endif 
                        358     
                        359     
                        360     
00080040 E59F0034       361                     LDR     R0, =Top_Stack
                        362     
                        363     
00080044 E321F0DB       364                     MSR     CPSR_c, #Mode_UND|I_Bit|F_Bit
00080048 E1A0D000       365                     MOV     SP, R0
0008004C E2400004       366                     SUB     R0, R0, #UND_Stack_Size
                        367     
                        368     
00080050 E321F0D7       369                     MSR     CPSR_c, #Mode_ABT|I_Bit|F_Bit
00080054 E1A0D000       370                     MOV     SP, R0
00080058 E2400004       371                     SUB     R0, R0, #ABT_Stack_Size
                        372     
                        373     
0008005C E321F0D1       374                     MSR     CPSR_c, #Mode_FIQ|I_Bit|F_Bit
00080060 E1A0D000       375                     MOV     SP, R0
00080064 E2400080       376                     SUB     R0, R0, #FIQ_Stack_Size
                        377     
                        378     
00080068 E321F0D2       379                     MSR     CPSR_c, #Mode_IRQ|I_Bit|F_Bit
0008006C E1A0D000       380                     MOV     SP, R0
00080070 E2400080       381                     SUB     R0, R0, #IRQ_Stack_Size
                        382     
                        383     
00080074 E321F0D3       384                     MSR     CPSR_c, #Mode_SVC|I_Bit|F_Bit
00080078 E1A0D000       385                     MOV     SP, R0
0008007C E2400040       386                     SUB     R0, R0, #SVC_Stack_Size
                        387     
                        388     
AA MACRO ASSEMBLER RSTARTUP                                                                 16/05/06 14:55:44 PAGE     7

00080080 E321F010       389                     MSR     CPSR_c, #Mode_USR
00080084 E1A0D000       390                     MOV     SP, R0
                        391     
                        392     
00080088 E59F0034       393                     LDR     R0,=?C?INIT
0008008C E3100001       394                     TST     R0,#1       ; Bit-0 set: main is Thumb
00080090 E3AFE034       395                     LDREQ   LR,=exit?A  ; ARM Mode
00080094 E3AFE034       396                     LDRNE   LR,=exit?T  ; Thumb Mode
00080098 E12FFF10       397                     BX      R0
                        398                     ENDP
                        399     
                        400     PUBLIC exit?A
                        401     exit?A          PROC    CODE32
0008009C EAFFFFFE       402                     B       exit?A
                        403                     ENDP
                        404     
                        405     PUBLIC exit?T
                        406     exit?T          PROC    CODE16
000800A0 E7FE           407                     B       exit?T
                        408                     ENDP
                        409     
                        410                     END
AA MACRO ASSEMBLER RSTARTUP                                                                 16/05/06 14:55:44 PAGE     8

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E     ATTRIBUTES

?C?INIT. . . . . .  C  ADDR  -------       EXT
ABT_Stack_Size . .  -- ----  0004H     A   
DAbt_Addr. . . . .  C  ADDR  080030H   R   SEG=STARTUPCODE
DAbt_Handler?A . .  C  ADDR  -------       EXT
FIQ_Addr . . . . .  C  ADDR  08003CH   R   SEG=STARTUPCODE
FIQ_Handler?A. . .  C  ADDR  -------       EXT
FIQ_Stack_Size . .  -- ----  0080H     A   
F_Bit. . . . . . .  -- ----  0040H     A   
GP0CON_Val . . . .  -- ----  0000H     A   
GP1CON_Val . . . .  -- ----  0000H     A   
GP2CON_Val . . . .  -- ----  0000H     A   
GP3CON_Val . . . .  -- ----  0000H     A   
GP4CON_Val . . . .  -- ----  0000H     A   
GPIOBASE . . . . .  -- ----  FFFFF400H A   
GPIO_SETUP . . . .  -- ----  0000H     A   
IRQ_Addr . . . . .  C  ADDR  080038H   R   SEG=STARTUPCODE
IRQ_Handler?A. . .  C  ADDR  -------       EXT
IRQ_Stack_Size . .  -- ----  0080H     A   
I_Bit. . . . . . .  -- ----  0080H     A   
MMR_BASE . . . . .  -- ----  FFFF0000H A   
Mode_ABT . . . . .  -- ----  0017H     A   
Mode_FIQ . . . . .  -- ----  0011H     A   
Mode_IRQ . . . . .  -- ----  0012H     A   
Mode_SVC . . . . .  -- ----  0013H     A   
Mode_SYS . . . . .  -- ----  001FH     A   
Mode_UND . . . . .  -- ----  001BH     A   
Mode_USR . . . . .  -- ----  0010H     A   
PAbt_Addr. . . . .  C  ADDR  08002CH   R   SEG=STARTUPCODE
PAbt_Handler?A . .  C  ADDR  -------       EXT
PLLCFG_Val . . . .  -- ----  0001H     A   
PLL_SETUP. . . . .  -- ----  0000H     A   
POWCON_OFFSET. . .  -- ----  0408H     A   
POWKEY1_OFFSET . .  -- ----  0404H     A   
POWKEY2_OFFSET . .  -- ----  040CH     A   
PREMAP_OFFSET. . .  -- ----  0224H     A   
REMAP_OFFSET . . .  -- ----  0220H     A   
Reset_Addr . . . .  C  ADDR  080020H   R   SEG=STARTUPCODE
Reset_Handler. . .  C  ADDR  080040H   R   SEG=STARTUPCODE
STACK. . . . . . .  D  SEG   0248H         REL=UNIT, ALN=BYTE
STARTUPCODE. . . .  C  SEG   0800A2H       REL=ABS, ALN=BYTE
SVC_Stack_Size . .  -- ----  0040H     A   
SWI_Addr . . . . .  C  ADDR  080028H   R   SEG=STARTUPCODE
SWI_Handler?A. . .  C  ADDR  -------       EXT
Top_Stack. . . . .  D  ADDR  0248H     R   SEG=STACK
UND_Stack_Size . .  -- ----  0004H     A   
USR_Stack_Size . .  -- ----  0100H     A   
Undef_Addr . . . .  C  ADDR  080024H   R   SEG=STARTUPCODE
Undef_Handler?A. .  C  ADDR  -------       EXT
Vectors. . . . . .  C  ADDR  080000H   R   SEG=STARTUPCODE
XM0CON_Val . . . .  -- ----  0000H     A   
XM0PAR_Val . . . .  -- ----  70FFH     A   
XM1CON_Val . . . .  -- ----  0000H     A   
XM1PAR_Val . . . .  -- ----  70FFH     A   
XM2CON_Val . . . .  -- ----  0000H     A   
XM2PAR_Val . . . .  -- ----  70FFH     A   
XM3CON_Val . . . .  -- ----  0000H     A   
XM3PAR_Val . . . .  -- ----  70FFH     A   
XMBASE . . . . . .  -- ----  FFFFF000H A   
XMCFG_Val. . . . .  -- ----  0001H     A   
XM_SETUP . . . . .  -- ----  0000H     A   
AA MACRO ASSEMBLER RSTARTUP                                                                 16/05/06 14:55:44 PAGE     9

__startup. . . . .  C  ADDR  080000H   R   SEG=STARTUPCODE
exit?A . . . . . .  C  ADDR  08009CH   R   SEG=STARTUPCODE
exit?T . . . . . .  C  ADDR  0800A0H   R   SEG=STARTUPCODE

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S).

⌨️ 快捷键说明

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