📄 swi.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\swi.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Isr_SwiTest PROC
;;;25 void __irq Isr_SwiTest(void)
;;;26 {
|L1.0|
000000 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;27 rINTMSK = rINTMSK | BIT_UART0;
000004 e3a0044a MOV r0,#0x4a000000
000008 e5900008 LDR r0,[r0,#8]
00000c e3800540 ORR r0,r0,#0x10000000
000010 e3a0144a MOV r1,#0x4a000000
000014 e5810008 STR r0,[r1,#8]
;;;28 ClearPending(BIT_UART0);
000018 e3a00540 MOV r0,#0x10000000
00001c e3a0144a MOV r1,#0x4a000000
000020 e5810000 STR r0,[r1,#0]
000024 e3a00540 MOV r0,#0x10000000
000028 e3a0144a MOV r1,#0x4a000000
00002c e5810010 STR r0,[r1,#0x10]
000030 e3a0044a MOV r0,#0x4a000000
000034 e5900010 LDR r0,[r0,#0x10]
;;;29 SwiTest();
000038 ef000087 SWI 0x87
;;;30 swiVar++;
00003c e59f00c0 LDR r0,|L1.260|
000040 e5900000 LDR r0,[r0,#0] ; swiVar
000044 e2800001 ADD r0,r0,#1
000048 e59f10b4 LDR r1,|L1.260|
00004c e5810000 STR r0,[r1,#0] ; swiVar
;;;31
;;;32 }
000050 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000054 e25ef004 SUBS pc,lr,#4
ENDP
Test_SwiIrq PROC
;;;35 void Test_SwiIrq(void)
;;;36 {
000058 e92d4010 STMFD sp!,{r4,lr}
;;;37 int i;
;;;38 swiVar = 1;
00005c e3a00001 MOV r0,#1
000060 e59f109c LDR r1,|L1.260|
000064 e5810000 STR r0,[r1,#0] ; swiVar
;;;39
;;;40 Uart_Printf("rUCON0 = %x\n",rUCON0);
000068 e3a00450 MOV r0,#0x50000000
00006c e5900004 LDR r0,[r0,#4]
000070 e1a01000 MOV r1,r0
000074 e28f008c ADR r0,|L1.264|
000078 ebfffffe BL Uart_Printf
;;;41 Uart_Printf("[ SWI Test ]\n");
00007c e28f0094 ADR r0,|L1.280|
000080 ebfffffe BL Uart_Printf
;;;42 Uart_Printf("swiVar = %d\n",swiVar);
000084 e59f0078 LDR r0,|L1.260|
000088 e5901000 LDR r1,[r0,#0] ; swiVar
00008c e28f0094 ADR r0,|L1.296|
000090 ebfffffe BL Uart_Printf
;;;43 Uart_TxEmpty(1);
000094 e3a00001 MOV r0,#1
000098 ebfffffe BL Uart_TxEmpty
;;;44 //UART0 Tx interrupt bit in rINTPND will be set.
;;;45 pISR_UART0 = (U32)Isr_SwiTest;
00009c e59f0094 LDR r0,|L1.312|
0000a0 e59f1094 LDR r1,|L1.316|
0000a4 e5810f90 STR r0,[r1,#0xf90]
;;;46 pISR_SWI = (U32)SWI_ISR;
0000a8 e59f0090 LDR r0,|L1.320|
0000ac e5810f08 STR r0,[r1,#0xf08]
;;;47 rINTMSK = rINTMSK & ~(BIT_UART0);
0000b0 e3a0044a MOV r0,#0x4a000000
0000b4 e5900008 LDR r0,[r0,#8]
0000b8 e3c00540 BIC r0,r0,#0x10000000
0000bc e3a0144a MOV r1,#0x4a000000
0000c0 e5810008 STR r0,[r1,#8]
;;;48 for(i=0;i<10000;i++);
0000c4 e3a04000 MOV r4,#0
|L1.200|
0000c8 e254cd80 SUBS r12,r4,#0x2000
0000cc a25cce71 SUBGES r12,r12,#0x710
0000d0 aa000001 BGE |L1.220|
0000d4 e2844001 ADD r4,r4,#1
0000d8 eafffffa B |L1.200|
;;;49 rINTMSK = rINTMSK | BIT_UART0;
|L1.220|
0000dc e3a0044a MOV r0,#0x4a000000
0000e0 e5900008 LDR r0,[r0,#8]
0000e4 e3800540 ORR r0,r0,#0x10000000
0000e8 e3a0144a MOV r1,#0x4a000000
0000ec e5810008 STR r0,[r1,#8]
;;;50 Uart_Printf("swiVar = %d\n",swiVar);
0000f0 e59f000c LDR r0,|L1.260|
0000f4 e5901000 LDR r1,[r0,#0] ; swiVar
0000f8 e28f0028 ADR r0,|L1.296|
0000fc ebfffffe BL Uart_Printf
;;;51 }000100 e8bd8010 LDMFD sp!,{r4,pc}
|L1.260|
000104 00000000 DCD ||.bss$2||
|L1.264|
000108 4f435572 DCB "rUCO"
00010c 3d20304e DCB "N0 ="
000110 0a782520 DCB " %x\n"
000114 00000000 DCB "\0\0\0\0"
|L1.280|
000118 5753205b DCB "[ SW"
00011c 65542049 DCB "I Te"
000120 5d207473 DCB "st ]"
000124 0000000a DCB "\n\0\0\0"
|L1.296|
000128 56697773 DCB "swiV"
00012c 3d207261 DCB "ar ="
000130 0a642520 DCB " %d\n"
000134 00000000 DCB "\0\0\0\0"
|L1.312|
000138 00000000 DCD Isr_SwiTest
|L1.316|
00013c 31fff000 DCD 0x31fff000
|L1.320|
000140 00000000 DCD SWI_ISR
ENDP
AREA ||.bss||, NOINIT, ALIGN=2
swiVar
||.bss$2||
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -