📄 eint2.lst
字号:
00000000 ASCII:
00000000 BEGIN_INIT
00000000 30 DB 0x30
00000001 31 DB 0x31
00000002 32 DB 0x32
00000003 33 DB 0x33
00000004 34 DB 0x34
00000005 35 DB 0x35
00000006 36 DB 0x36
00000007 37 DB 0x37
00000008 38 DB 0x38
00000009 39 DB 0x39
0000000A END_INIT
*** CODE SEGMENT '?PR?IRQ_Eint2?A?EINT2':
44: void IRQ_Eint2 (void) __irq
00000000 E92D5F0F STMDB R13!,{R0-R3,R8-R12,LR}
48: if ((EXTINT & 0x04) != 0)
00000004 E5100000 LDR R0,=0xE01FC140
00000008 E5D00000 LDRB R0,[R0,#0x0]
0000000C E3100004 TST R0,#0x0004
00000010 0A00005A BEQ L_1 ; Targ=0x180
50: EXTINT = 0x04; // 清除EINT0中断标志
00000014 E3A01004 MOV R1,#0x4
00000018 E5100000 LDR R0,=0xE01FC140
0000001C E5C01000 STRB R1,[R0,#0x0]
51: T1TCR = 0x00; // 定时器计数器禁止计数
00000020 E3A02000 MOV R2,#0x0
00000024 E5100000 LDR R0,=0xE0008004
00000028 E5802000 STR R2,[R0,#0x0]
52: RedTime = T1TC; // 保存两次下降沿这间的时间
0000002C E5100000 LDR R0,=0xE0008008
00000030 E5902000 LDR R2,[R0,#0x0]
00000034 E1A02802 MOV R2,R2,LSL #16
00000038 E1A02822 MOV R2,R2,LSR #16
0000003C E5100000 LDR R0,=RedTime ; RedTime
00000040 E1C020B0 STRH R2,[R0,#0x0] ; RedTime
53: if((EXTPOLAR & 0x04) == 0x00) // 这次为下降沿中断
00000044 E5100000 LDR R0,=0xE01FC14C
00000048 E5D00000 LDRB R0,[R0,#0x0]
0000004C E3100004 TST R0,#0x0004
00000050 1A000002 BNE L_2 ; Targ=0x60
55: EXTPOLAR = 0x04; // EINT2改为上升沿中断
ARM COMPILER V2.50a, EINT2 16/06/07 08:25:44 PAGE 5
00000054 E5100000 LDR R0,=0xE01FC14C
00000058 E5C01000 STRB R1,[R0,#0x0]
56: } else {
0000005C EA000002 B L_3 ; Targ=0x6C
00000060 L_2:
57: EXTPOLAR = 0x00; // EINT2改为下降沿中断
00000060 E3A01000 MOV R1,#0x0
00000064 E5100000 LDR R0,=0xE01FC14C
00000068 E5C01000 STRB R1,[R0,#0x0]
58: }
0000006C L_3:
59: T1TCR = 0x03; // 复位
0000006C E3A01003 MOV R1,#0x3
00000070 E5100000 LDR R0,=0xE0008004
00000074 E5801000 STR R1,[R0,#0x0]
60: T1TCR = 0x01; // 定时器计数器开始计数
00000078 E3A01001 MOV R1,#0x1
0000007C E5100000 LDR R0,=0xE0008004
00000080 E5801000 STR R1,[R0,#0x0]
61: if((EXTPOLAR & 0x04) == 0x00) // 这次为下降沿中断
00000084 E5100000 LDR R0,=0xE01FC14C
00000088 E5D00000 LDRB R0,[R0,#0x0]
0000008C E3100004 TST R0,#0x0004
00000090 1A000008 BNE L_4 ; Targ=0xB8
63: UART0_SendByte(13);
00000094 E3A0000D MOV R0,#0xD
00000098 EBFFFFD8 BL UART0_SendByte?A ; Targ=0x0
64: UART0_SendByte(10);
0000009C E3A0000A MOV R0,#0xA
000000A0 EBFFFFD6 BL UART0_SendByte?A ; Targ=0x0
65: UART0_SendByte(0xb5);
000000A4 E3A000B5 MOV R0,#0xB5
000000A8 EBFFFFD4 BL UART0_SendByte?A ; Targ=0x0
66: UART0_SendByte(0xcd);
000000AC E3A000CD MOV R0,#0xCD
000000B0 EBFFFFD2 BL UART0_SendByte?A ; Targ=0x0
67: } else {
000000B4 EA000003 B L_5 ; Targ=0xC8
000000B8 L_4:
68: UART0_SendByte(0xb8);
000000B8 E3A000B8 MOV R0,#0xB8
000000BC EBFFFFCF BL UART0_SendByte?A ; Targ=0x0
69: UART0_SendByte(0xdf);
000000C0 E3A000DF MOV R0,#0xDF
000000C4 EBFFFFCD BL UART0_SendByte?A ; Targ=0x0
70: }
000000C8 L_5:
72: RedCnt = RedTime;
000000C8 E5100000 LDR R0,=RedTime ; RedTime
000000CC E1D010B0 LDRH R1,[R0,#0x0] ; RedTime
000000D0 E5100000 LDR R0,=RedCnt ; RedCnt
000000D4 E1C010B0 STRH R1,[R0,#0x0] ; RedCnt
73: if((RedCnt/1000) != 0)
000000D8 E5100000 LDR R0,=RedCnt ; RedCnt
000000DC E1D000B0 LDRH R0,[R0,#0x0] ; RedCnt
000000E0 E3A01FFA MOV R1,#0x3E8
000000E4 EBFFFFC5 BL ?C?SDIV?A ; Targ=0x0 ; ?C?SDIV?A
000000E8 E1A00001 MOV R0,R1
000000EC E3500000 CMP R0,#0x0000
000000F0 0A000002 BEQ L_6 ; Targ=0x100
75: UART0_SendByte(ASCII[RedCnt/1000]);
000000F4 E5101000 LDR R1,=ASCII ; ASCII
000000F8 E7D10000 LDRB R0,[R1,+R0]
000000FC EBFFFFBF BL UART0_SendByte?A ; Targ=0x0
76: }
00000100 L_6:
ARM COMPILER V2.50a, EINT2 16/06/07 08:25:44 PAGE 6
77: if((RedCnt%1000/100) != 0)
00000100 E5100000 LDR R0,=RedCnt ; RedCnt
00000104 E1D000B0 LDRH R0,[R0,#0x0] ; RedCnt
00000108 E3A01FFA MOV R1,#0x3E8
0000010C EBFFFFBB BL ?C?SDIV?A ; Targ=0x0 ; ?C?SDIV?A
00000110 E3A01064 MOV R1,#0x64
00000114 EBFFFFB9 BL ?C?SDIV?A ; Targ=0x0 ; ?C?SDIV?A
00000118 E1A00001 MOV R0,R1
0000011C E3500000 CMP R0,#0x0000
00000120 0A000002 BEQ L_7 ; Targ=0x130
79: UART0_SendByte(ASCII[(RedCnt%1000/100)]);
00000124 E5101000 LDR R1,=ASCII ; ASCII
00000128 E7D10000 LDRB R0,[R1,+R0]
0000012C EBFFFFB3 BL UART0_SendByte?A ; Targ=0x0
80: }
00000130 L_7:
81: UART0_SendByte('.');
00000130 E3A0002E MOV R0,#0x2E
00000134 EBFFFFB1 BL UART0_SendByte?A ; Targ=0x0
82: UART0_SendByte(ASCII[(RedCnt%100)/10]);
00000138 E5100000 LDR R0,=RedCnt ; RedCnt
0000013C E1D000B0 LDRH R0,[R0,#0x0] ; RedCnt
00000140 E3A01064 MOV R1,#0x64
00000144 EBFFFFAD BL ?C?SDIV?A ; Targ=0x0 ; ?C?SDIV?A
00000148 E3A0100A MOV R1,#0xA
0000014C EBFFFFAB BL ?C?SDIV?A ; Targ=0x0 ; ?C?SDIV?A
00000150 E1A00001 MOV R0,R1
00000154 E5101000 LDR R1,=ASCII ; ASCII
00000158 E7D10000 LDRB R0,[R1,+R0]
0000015C EBFFFFA7 BL UART0_SendByte?A ; Targ=0x0
84: UART0_SendByte(ASCII[RedCnt%10]);
00000160 E5100000 LDR R0,=RedCnt ; RedCnt
00000164 E1D000B0 LDRH R0,[R0,#0x0] ; RedCnt
00000168 E3A0100A MOV R1,#0xA
0000016C EBFFFFA3 BL ?C?SDIV?A ; Targ=0x0 ; ?C?SDIV?A
00000170 E1A01000 MOV R1,R0
00000174 E5100000 LDR R0,=ASCII ; ASCII
00000178 E7D00001 LDRB R0,[R0,+R1]
0000017C EBFFFF9F BL UART0_SendByte?A ; Targ=0x0
86: }
00000180 L_1:
88: VICVectAddr = 0; // 向量中断结束
00000180 E3A01000 MOV R1,#0x0
00000184 E5100000 LDR R0,=0xFFFFF030
00000188 E5801000 STR R1,[R0,#0x0]
89: }
0000018C E8BD5F0F LDMIA R13!,{R0-R3,R8-R12,LR}
00000190 E25EF004 SUBS R15,R14,#0x0004
00000194 ENDP ; 'IRQ_Eint2?A'
Module Information Static
----------------------------------
code size = ------
data size = 9
const size = 10
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -