📄 int.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\int.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
T0Int PROC
;;;16 static void __irq T0Int(void) //FIQ
;;;17 {
|L1.0|
000000 e92d0003 STMFD sp!,{r0,r1}
;;;18 ClearPending(BIT_TIMER0);
000004 e3a00e40 MOV r0,#0x400
000008 e59f11e8 LDR r1,|L1.504|
00000c e5810000 STR r0,[r1,#0]
000010 e1c10000 BIC r0,r1,r0
000014 e5900010 LDR r0,[r0,#0x10]
000018 e5810010 STR r0,[r1,#0x10]
00001c e1a00001 MOV r0,r1
000020 e5900010 LDR r0,[r0,#0x10]
;;;19 fiqCnt0 += 1;
000024 e59f01d0 LDR r0,|L1.508|
000028 e5900000 LDR r0,[r0,#0] ; fiqCnt0
00002c e2800001 ADD r0,r0,#1
000030 e59f11c4 LDR r1,|L1.508|
000034 e5810000 STR r0,[r1,#0] ; fiqCnt0
;;;20
;;;21 }
000038 e8bd0003 LDMFD sp!,{r0,r1}
00003c e25ef004 SUBS pc,lr,#4
ENDP
T1Int PROC
;;;24 static void __irq T1Int(void) //IRQ
;;;25 {
|L1.64|
000040 e92d1003 STMFD sp!,{r0,r1,r12}
;;;26 ClearPending(BIT_TIMER1);
000044 e3a00e80 MOV r0,#0x800
000048 e59f11a8 LDR r1,|L1.504|
00004c e5810000 STR r0,[r1,#0]
000050 e1c10000 BIC r0,r1,r0
000054 e5900010 LDR r0,[r0,#0x10]
000058 e5810010 STR r0,[r1,#0x10]
00005c e1a00001 MOV r0,r1
000060 e5900010 LDR r0,[r0,#0x10]
;;;27 fiqCnt1 += 1;
000064 e59f0194 LDR r0,|L1.512|
000068 e5900000 LDR r0,[r0,#0] ; fiqCnt1
00006c e2800001 ADD r0,r0,#1
000070 e59f1188 LDR r1,|L1.512|
000074 e5810000 STR r0,[r1,#0] ; fiqCnt1
;;;28
;;;29 if(fiqCnt0!=fiqCnt1)
000078 e59f017c LDR r0,|L1.508|
00007c e5900000 LDR r0,[r0,#0] ; fiqCnt0
000080 e59f1178 LDR r1,|L1.512|
000084 e5911000 LDR r1,[r1,#0] ; fiqCnt1
000088 e1500001 CMP r0,r1
00008c 0a000002 BEQ |L1.156|
;;;30 fiqCnt1 = 0;
000090 e3a00000 MOV r0,#0
000094 e59f1164 LDR r1,|L1.512|
000098 e5810000 STR r0,[r1,#0] ; fiqCnt1
;;;31 if(fiqCnt0==10000)
|L1.156|
00009c e59f0158 LDR r0,|L1.508|
0000a0 e5900000 LDR r0,[r0,#0] ; fiqCnt0
0000a4 e240cd80 SUB r12,r0,#0x2000
0000a8 e25cce71 SUBS r12,r12,#0x710
0000ac 1a000002 BNE |L1.188|
;;;32 rTCON = 0x0;
0000b0 e3a00000 MOV r0,#0
0000b4 e3a01444 MOV r1,#0x44000000
0000b8 e5810008 STR r0,[r1,#8]
;;;33 }
|L1.188|
0000bc e8bd1003 LDMFD sp!,{r0,r1,r12}
0000c0 e25ef004 SUBS pc,lr,#4
ENDP
Test_Fiq PROC
;;;36 void Test_Fiq(void)
;;;37 {
0000c4 e92d4010 STMFD sp!,{r4,lr}
;;;38 int intmod;
;;;39
;;;40 Uart_Printf("[ FIQ Interrupt Test ]\n");
0000c8 e28f0f4d ADR r0,|L1.516|
0000cc ebfffffe BL _printf
;;;41 fiqCnt0 = 0;
0000d0 e3a00000 MOV r0,#0
0000d4 e59f1120 LDR r1,|L1.508|
0000d8 e5810000 STR r0,[r1,#0] ; fiqCnt0
;;;42 fiqCnt1 = 0;
0000dc e3a00000 MOV r0,#0
0000e0 e59f1118 LDR r1,|L1.512|
0000e4 e5810000 STR r0,[r1,#0] ; fiqCnt1
;;;43 pISR_FIQ = (U32)T0Int;
0000e8 e59f012c LDR r0,|L1.540|
0000ec e59f112c LDR r1,|L1.544|
0000f0 e5810f1c STR r0,[r1,#0xf1c]
;;;44 pISR_TIMER1 = (U32)T1Int;
0000f4 e59f0128 LDR r0,|L1.548|
0000f8 e5810f4c STR r0,[r1,#0xf4c]
;;;45 intmod = rINTMOD;
0000fc e59f00f4 LDR r0,|L1.504|
000100 e5900004 LDR r0,[r0,#4]
000104 e1a04000 MOV r4,r0
;;;46 rINTMOD = BIT_TIMER0;
000108 e3a00e40 MOV r0,#0x400
00010c e59f10e4 LDR r1,|L1.504|
000110 e5810004 STR r0,[r1,#4]
;;;47 rSRCPND = BIT_TIMER0 | BIT_TIMER1;
000114 e3a00ec0 MOV r0,#0xc00
000118 e1c11000 BIC r1,r1,r0
00011c e5810000 STR r0,[r1,#0]
;;;48 rINTPND = BIT_TIMER0 | BIT_TIMER1;
000120 e3a00ec0 MOV r0,#0xc00
000124 e1c11000 BIC r1,r1,r0
000128 e5810010 STR r0,[r1,#0x10]
;;;49
;;;50 rTCFG0 = 0x0;
00012c e3a00000 MOV r0,#0
000130 e3a01444 MOV r1,#0x44000000
000134 e5810000 STR r0,[r1,#0]
;;;51 rTCFG1 = 0x0;
000138 e3a00000 MOV r0,#0
00013c e3a01444 MOV r1,#0x44000000
000140 e5810004 STR r0,[r1,#4]
;;;52 rTCNTB0 = 2570;
000144 e59f00dc LDR r0,|L1.552|
000148 e3a01444 MOV r1,#0x44000000
00014c e581000c STR r0,[r1,#0xc]
;;;53 rTCNTB1 = 2570;
000150 e3a01444 MOV r1,#0x44000000
000154 e5810018 STR r0,[r1,#0x18]
;;;54 rTCON = 0xa0a;
000158 e3a01444 MOV r1,#0x44000000
00015c e5810008 STR r0,[r1,#8]
;;;55 rTCON = 0x909;
000160 e59f00c4 LDR r0,|L1.556|
000164 e3a01444 MOV r1,#0x44000000
000168 e5810008 STR r0,[r1,#8]
;;;56
;;;57 rINTMSK = ~(BIT_TIMER0 | BIT_TIMER1);
00016c e3e00ec0 MVN r0,#0xc00
000170 e24117f8 SUB r1,r1,#0x3e00000
000174 e5810008 STR r0,[r1,#8]
;;;58
;;;59 while(fiqCnt1<10000)
000178 e1a00000 NOP
|L1.380|
00017c e59f007c LDR r0,|L1.512|
000180 e5900000 LDR r0,[r0,#0] ; fiqCnt1
000184 e250cd80 SUBS r12,r0,#0x2000
000188 a25cce71 SUBGES r12,r12,#0x710
00018c aa000008 BGE |L1.436|
;;;60 {
;;;61 if((fiqCnt1%100)==0)
000190 e59f0068 LDR r0,|L1.512|
000194 e5901000 LDR r1,[r0,#0] ; fiqCnt1
000198 e3a00064 MOV r0,#0x64
00019c ebfffffe BL __rt_sdiv
0001a0 e3510000 CMP r1,#0
0001a4 1a000001 BNE |L1.432|
;;;62 Uart_Printf(".");
0001a8 e28f0080 ADR r0,|L1.560|
0001ac ebfffffe BL _printf
;;;63 }
|L1.432|
0001b0 eafffff1 B |L1.380|
;;;64 rTCON = 0x0;
|L1.436|
0001b4 e3a00000 MOV r0,#0
0001b8 e3a01444 MOV r1,#0x44000000
0001bc e5810008 STR r0,[r1,#8]
;;;65 Delay(1);
0001c0 e3a00001 MOV r0,#1
0001c4 ebfffffe BL Delay
;;;66 Uart_Printf("\nfiqCnt0 = %d, fiqCnt1 = %d (10000,10000)\n",fiqCnt0,fiqCnt1);
0001c8 e59f0030 LDR r0,|L1.512|
0001cc e5902000 LDR r2,[r0,#0] ; fiqCnt1
0001d0 e59f0024 LDR r0,|L1.508|
0001d4 e5901000 LDR r1,[r0,#0] ; fiqCnt0
0001d8 e28f0054 ADR r0,|L1.564|
0001dc ebfffffe BL _printf
;;;67 rINTMOD = intmod;
0001e0 e59f0010 LDR r0,|L1.504|
0001e4 e5804004 STR r4,[r0,#4]
;;;68 rINTMSK = BIT_ALLMSK;
0001e8 e3e00000 MVN r0,#0
0001ec e59f1004 LDR r1,|L1.504|
0001f0 e5810008 STR r0,[r1,#8]
;;;69 }
0001f4 e8bd8010 LDMFD sp!,{r4,pc}
|L1.504|
0001f8 40200000 DCD 0x40200000
|L1.508|
0001fc 00000000 DCD ||.bss$2||
|L1.512|
000200 00000004 DCD ||.bss$2|| + 4
|L1.516|
000204 4946205b DCB "[ FI"
000208 6e492051 DCB "Q In"
00020c 72726574 DCB "terr"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -