?? swixxxx.lst
字號:
ARM Macro Assembler Page 1
1 00000000 ;/******************************************************
***********************/
2 00000000 ;/* SWI.S: SWI Handler
*/
3 00000000 ;/******************************************************
***********************/
4 00000000 ;/* This file is part of the uVision/ARM development too
ls. */
5 00000000 ;/* Copyright (c) 2005-2006 Keil Software. All rights re
served. */
6 00000000 ;/* This software may only be used under the terms of a
valid, current, */
7 00000000 ;/* end user licence from KEIL for a compatible version
of KEIL software */
8 00000000 ;/* development tools. Nothing else gives you the right
to use this software. */
9 00000000 ;/******************************************************
***********************/
10 00000000 00000020
T_Bit EQU 0x20
11 00000000 PRESERVE8 ; 8-Byte aligned St
ack
12 00000000 AREA SWI_Area, CODE, READONLY
13 00000000 ARM
14 00000000
15 00000000 EXPORT SWI_Handler
16 00000000 SWI_Handler
17 00000000 E14FC000 MRS R12, SPSR ; Get SPSR
18 00000004 E31C0020 TST R12, #T_Bit ; Check Thumb Bit
19 00000008 115EC0B2 LDRNEH R12, [LR,#-2] ; Thumb: Load Hal
fword
20 0000000C 13CCCCFF BICNE R12, R12, #0xFF00 ; Extr
act SWI Number
21 00000010 051EC004 LDREQ R12, [LR,#-4]
; ARM: Load Word
22 00000014 03CCC4FF BICEQ R12, R12, #0xFF000000 ;
Extract SWI Number
23 00000018 E35C0000 CMP R12, #0 ;//SWI號判斷,R12=0-
-os_switch_tasks,R1
2=1~7---SWI1~SWI7
24 0000001C 1A00001F BNE User_swi
25 00000020 ;/*------------------- os_switch_tasks -----------------
-------*/
26 00000020 E94D2000 STMDB SP,{SP}^ ;ARTX專用SWI0
27 00000024 E1A00000 NOP
28 00000028 E91D0002 LDMDB SP,{R1}
29 0000002C E14FC000 MRS R12,SPSR
30 00000030 E92150F0 STMDB R1!,{R4-R7,R12,LR}
31 00000034 E59F40B4 LDR R4,=os_runtask ; os_runtask->ts
k_stack
32 00000038 E5944000 LDR R4,[R4,#0x0]
33 0000003C E5841024 STR R1,[R4,#0x0024] ;#TCB_TSTACK]
34 00000040 E1A04000 MOV R4,R0
35 00000044 E28FC080 ADR R12, SWI_Table ;?SWI?Table+4
36 00000048 E59CC000 LDR R12,[R12,#0x0] ; SWI function a
ddress
37 0000004C E1A0E00F MOV LR, PC ; Return Address
38 00000050 E12FFF1C BX R12 ; Call SWI Function
ARM Macro Assembler Page 2
39 00000054 E594E024 LDR LR,[R4,#0x0024] ;#TCB_TSTACK];
p_new->tsk_stack
40 00000058 E5D40021 LDRB R0,[R4,#0x0021] ;#TCB_FCTX] ;
p_new->full_ctx
41 0000005C E3500000 CMP R0,#0x0
42 00000060 1A000005 BNE Full_ctx
43 00000064
44 00000064 E8BE11F0 LDMIA R14!,{R4-R8,R12}
45 00000068 E16FF008 MSR SPSR_cxsf,R8
46 0000006C E90D4000 STMDB SP,{LR}
47 00000070 E95D2000 LDMDB SP,{SP}^ ; Set User SP
48 00000074 E1A00000 NOP
49 00000078 E1B0F00C MOVS PC,R12 ; RETI
50 0000007C
51 0000007C Full_ctx
52 0000007C E28E0040 ADD R0,LR,#64
53 00000080 E910000E LDMDB R0,{R1-R3} ; LR, CPSR (R3=dumm
y)
54 00000084 E16FF002 MSR SPSR_cxsf,R2 ; Set User CPSR
55 00000088 E90D0003 STMDB SP,{R0-R1}
56 0000008C E95D6000 LDMDB SP,{SP,LR}^ ; Set User SP,LR
57 00000090 E1A00000 NOP ; required for gene
ric ARM7TDMI suppor
t
58 00000094 E89E1FFF LDMIA LR,{R0-R12} ; Restore R12-R0
59 00000098 E59EE03C LDR LR,[LR,#60] ; PC
60 0000009C E1B0F00E MOVS PC,LR ; RETI
61 000000A0
62 000000A0 ; /*------------------- User SWI ----------------
---------------*/
63 000000A0
64 000000A0 E92D4100
User_swi
STMDB SP!,{R8,LR} ;SWI1~SWI7
65 000000A4 E59F801C LDR R8,SWI_Count
66 000000A8 E15C0008 CMP R12,R8
67 000000AC 2A000004 BCS SWI_Dead
68 000000B0 E28F8014 ADR R8,SWI_Table
69 000000B4 E798C10C LDR R12, [R8,R12,LSL #2] ; Load SWI
Function Address
70 000000B8 E1A0E00F MOV LR,PC
71 000000BC E12FFF1C BX R12 ; Call SWI function
72 000000C0 E8FD8100 LDMIA SP!,{R8,PC}^ ;執行SWI命令入口
73 000000C4 ;擴展SWI命令
74 000000C4 EAFFFFFE
SWI_Dead
B SWI_Dead ; None Existing SWI
75 000000C8
76 000000C8 00000008
SWI_Cnt EQU (SWI_End-SWI_Table)/4
77 000000C8 00000008
SWI_Count
DCD SWI_Cnt
78 000000CC
79 000000CC IMPORT __SWI_0 ;ARTX
80 000000CC IMPORT __SWI_1
81 000000CC IMPORT __SWI_2
ARM Macro Assembler Page 3
82 000000CC IMPORT __SWI_3
83 000000CC IMPORT __SWI_4
84 000000CC IMPORT __SWI_5
85 000000CC IMPORT __SWI_6 ;ARTX
86 000000CC IMPORT __SWI_7 ;ARTX
87 000000CC ; IMPORT __SWI_8
88 000000CC ; EXPORT __SWI_8
89 000000CC SWI_Table
90 000000CC 00000000 DCD __SWI_0 ; SWI 0 Function En
try
91 000000D0 00000000 DCD __SWI_1 ; SWI 1 Function En
try
92 000000D4 00000000 DCD __SWI_2 ; SWI 2 Function En
try
93 000000D8 00000000 DCD __SWI_3 ; SWI 3 Function En
try
94 000000DC 00000000 DCD __SWI_4 ; SWI 4 Function En
try
95 000000E0 00000000 DCD __SWI_5 ; SWI 5 Function En
try
96 000000E4 00000000 DCD __SWI_6 ; SWI 6 Function En
try
97 000000E8 00000000 DCD __SWI_7 ; SWI 7 Function En
try
98 000000EC ; DCD __SWI_8
99 000000EC SWI_End
100 000000EC IMPORT os_runtask
101 000000EC 00000000 DCD os_runtask
102 000000F0 END
00000000
Command Line: --debug --xref --device=DARMP -o.\Obj\SWIxxxx.o --apcs=interwork
-ID:\Keil\ARM\INC\Philips --list=.\Lst\SWIxxxx.lst SWIxxxx.s
ARM Macro Assembler Page 1 Alphabetic symbol ordering
Relocatable symbols
Full_ctx 0000007C
Symbol: Full_ctx
Definitions
At line 51 in file SWIxxxx.s
Uses
At line 42 in file SWIxxxx.s
Comment: Full_ctx used once
SWI_Area 00000000
Symbol: SWI_Area
Definitions
At line 12 in file SWIxxxx.s
Uses
None
Comment: SWI_Area unused
SWI_Count 000000C8
Symbol: SWI_Count
Definitions
At line 77 in file SWIxxxx.s
Uses
At line 65 in file SWIxxxx.s
Comment: SWI_Count used once
SWI_Dead 000000C4
Symbol: SWI_Dead
Definitions
At line 74 in file SWIxxxx.s
Uses
At line 67 in file SWIxxxx.s
At line 74 in file SWIxxxx.s
SWI_End 000000EC
Symbol: SWI_End
Definitions
At line 99 in file SWIxxxx.s
Uses
At line 76 in file SWIxxxx.s
Comment: SWI_End used once
SWI_Handler 00000000
Symbol: SWI_Handler
Definitions
At line 16 in file SWIxxxx.s
Uses
At line 15 in file SWIxxxx.s
Comment: SWI_Handler used once
SWI_Table 000000CC
Symbol: SWI_Table
Definitions
At line 89 in file SWIxxxx.s
Uses
At line 35 in file SWIxxxx.s
At line 68 in file SWIxxxx.s
At line 76 in file SWIxxxx.s
ARM Macro Assembler Page 2 Alphabetic symbol ordering
Relocatable symbols
User_swi 000000A0
Symbol: User_swi
Definitions
At line 64 in file SWIxxxx.s
Uses
At line 24 in file SWIxxxx.s
Comment: User_swi used once
8 symbols
ARM Macro Assembler Page 1 Alphabetic symbol ordering
Absolute symbols
SWI_Cnt 00000008
Symbol: SWI_Cnt
Definitions
At line 76 in file SWIxxxx.s
Uses
At line 77 in file SWIxxxx.s
Comment: SWI_Cnt used once
T_Bit 00000020
Symbol: T_Bit
Definitions
At line 10 in file SWIxxxx.s
Uses
At line 18 in file SWIxxxx.s
Comment: T_Bit used once
2 symbols
ARM Macro Assembler Page 1 Alphabetic symbol ordering
External symbols
__SWI_0 00000000
Symbol: __SWI_0
Definitions
At line 79 in file SWIxxxx.s
Uses
At line 90 in file SWIxxxx.s
Comment: __SWI_0 used once
__SWI_1 00000000
Symbol: __SWI_1
Definitions
At line 80 in file SWIxxxx.s
Uses
At line 91 in file SWIxxxx.s
Comment: __SWI_1 used once
__SWI_2 00000000
Symbol: __SWI_2
Definitions
At line 81 in file SWIxxxx.s
Uses
At line 92 in file SWIxxxx.s
Comment: __SWI_2 used once
__SWI_3 00000000
Symbol: __SWI_3
Definitions
At line 82 in file SWIxxxx.s
Uses
At line 93 in file SWIxxxx.s
Comment: __SWI_3 used once
__SWI_4 00000000
Symbol: __SWI_4
Definitions
At line 83 in file SWIxxxx.s
Uses
At line 94 in file SWIxxxx.s
Comment: __SWI_4 used once
__SWI_5 00000000
Symbol: __SWI_5
Definitions
At line 84 in file SWIxxxx.s
Uses
At line 95 in file SWIxxxx.s
Comment: __SWI_5 used once
__SWI_6 00000000
Symbol: __SWI_6
Definitions
At line 85 in file SWIxxxx.s
Uses
At line 96 in file SWIxxxx.s
Comment: __SWI_6 used once
__SWI_7 00000000
Symbol: __SWI_7
ARM Macro Assembler Page 2 Alphabetic symbol ordering
External symbols
Definitions
At line 86 in file SWIxxxx.s
Uses
At line 97 in file SWIxxxx.s
Comment: __SWI_7 used once
os_runtask 00000000
Symbol: os_runtask
Definitions
At line 100 in file SWIxxxx.s
Uses
At line 31 in file SWIxxxx.s
At line 101 in file SWIxxxx.s
9 symbols
336 symbols in table
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -