📄 3510lcd.lst
字号:
205: SetLcdCs();
00000150 4800 LDR R1,=0x40000
00000152 4800 LDR R0,=0xFFFFF444
00000154 6001 STR R1,[R0,#0x0]
207: LcdSendCommand(0x29); //display ON
00000156 2029 MOV R0,#0x29
00000158 F7FF BL LcdSendCommand?T ; T=0x0001 (1)
0000015A FF52 BL LcdSendCommand?T ; T=0x0001 (2)
208: SetLcdCs();
0000015C 4800 LDR R1,=0x40000
0000015E 4800 LDR R0,=0xFFFFF444
00000160 6001 STR R1,[R0,#0x0]
210: LcdSendCommand(0x03); //booster voltage ON
00000162 2003 MOV R0,#0x3
00000164 F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000166 FF4C BL LcdSendCommand?T ; T=0x0001 (2)
211: SetLcdCs();
00000168 4800 LDR R1,=0x40000
0000016A 4800 LDR R0,=0xFFFFF444
0000016C 6001 STR R1,[R0,#0x0]
212: DelayXms(5);
0000016E 2005 MOV R0,#0x5
00000170 F7FF BL DelayXms?T ; T=0x0001 (1)
00000172 FF46 BL DelayXms?T ; T=0x0001 (2)
214: LcdSendCommand(0x20); //display inversion OFF
00000174 2020 MOV R0,#0x20
00000176 F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000178 FF43 BL LcdSendCommand?T ; T=0x0001 (2)
215: SetLcdCs();
0000017A 4800 LDR R1,=0x40000
0000017C 4800 LDR R0,=0xFFFFF444
0000017E 6001 STR R1,[R0,#0x0]
217: LcdSendCommand(0x25); //write contrast
00000180 2025 MOV R0,#0x25
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 15
00000182 F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000184 FF3D BL LcdSendCommand?T ; T=0x0001 (2)
218: LcdSendData(62);
00000186 203E MOV R0,#0x3E
00000188 F7FF BL LcdSendData?T ; T=0x0001 (1)
0000018A FF3A BL LcdSendData?T ; T=0x0001 (2)
219: SetLcdCs();
0000018C 4800 LDR R1,=0x40000
0000018E 4800 LDR R0,=0xFFFFF444
00000190 6001 STR R1,[R0,#0x0]
00000192 ; SCOPE-END
220: }
00000192 BC10 POP {R4}
00000194 BC08 POP {R3}
00000196 4718 BX R3
00000198 ENDP ; 'LcdInit?T'
*** CODE SEGMENT '?PR?LcdClr?T?3510LCD':
222: void LcdClr(void)
00000000 B530 PUSH {R4-R5,LR}
223: {
00000002 ; SCOPE-START
225: LcdSendCommand(0x2a); //column address set
00000002 202A MOV R0,#0x2A
00000004 F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000006 FFFC BL LcdSendCommand?T ; T=0x0001 (2)
226: LcdSendData(0);
00000008 2000 MOV R0,#0x0
0000000A F7FF BL LcdSendData?T ; T=0x0001 (1)
0000000C FFF9 BL LcdSendData?T ; T=0x0001 (2)
227: LcdSendData(97);
0000000E 2061 MOV R0,#0x61
00000010 F7FF BL LcdSendData?T ; T=0x0001 (1)
00000012 FFF6 BL LcdSendData?T ; T=0x0001 (2)
228: SetLcdCs();
00000014 4800 LDR R1,=0x40000
00000016 4800 LDR R0,=0xFFFFF444
00000018 6001 STR R1,[R0,#0x0]
230: LcdSendCommand(0x2b); //page address set
0000001A 202B MOV R0,#0x2B
0000001C F7FF BL LcdSendCommand?T ; T=0x0001 (1)
0000001E FFF0 BL LcdSendCommand?T ; T=0x0001 (2)
231: LcdSendData(0);
00000020 2000 MOV R0,#0x0
00000022 F7FF BL LcdSendData?T ; T=0x0001 (1)
00000024 FFED BL LcdSendData?T ; T=0x0001 (2)
232: LcdSendData(66);
00000026 2042 MOV R0,#0x42
00000028 F7FF BL LcdSendData?T ; T=0x0001 (1)
0000002A FFEA BL LcdSendData?T ; T=0x0001 (2)
233: SetLcdCs();
0000002C 4800 LDR R1,=0x40000
0000002E 4800 LDR R0,=0xFFFFF444
00000030 6001 STR R1,[R0,#0x0]
235: LcdSendCommand(0x2c); //memory write
00000032 202C MOV R0,#0x2C
00000034 F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000036 FFE4 BL LcdSendCommand?T ; T=0x0001 (2)
236: for(y=0;y<67;y++)
00000038 2400 MOV R4,#0x0
0000003A ---- Variable 'y' assigned to Register 'R4' ----
0000003A E015 B L_29 ; T=0x00000068
238: for(x=0;x<98;x+=2)
0000003C L_36:
0000003C 2500 MOV R5,#0x0
0000003E ---- Variable 'x' assigned to Register 'R5' ----
0000003E E00B B L_34 ; T=0x00000058
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 16
00000040 L_35:
240: LcdSendData(0);
00000040 2000 MOV R0,#0x0
00000042 F7FF BL LcdSendData?T ; T=0x0001 (1)
00000044 FFDD BL LcdSendData?T ; T=0x0001 (2)
241: LcdSendData(0);
00000046 2000 MOV R0,#0x0
00000048 F7FF BL LcdSendData?T ; T=0x0001 (1)
0000004A FFDA BL LcdSendData?T ; T=0x0001 (2)
242: LcdSendData(0);
0000004C 2000 MOV R0,#0x0
0000004E F7FF BL LcdSendData?T ; T=0x0001 (1)
00000050 FFD7 BL LcdSendData?T ; T=0x0001 (2)
243: }
00000052 3502 ADD R5,#0x2
00000054 062D LSL R5,R5,#0x18
00000056 0E2D LSR R5,R5,#0x18
00000058 L_34:
00000058 1C28 MOV R0,R5 ; x
0000005A 0600 LSL R0,R0,#0x18 ; x
0000005C 0E00 LSR R0,R0,#0x18
0000005E 2862 CMP R0,#0x62
00000060 DBEE BLT L_35 ; T=0x00000040
244: }
00000062 3401 ADD R4,#0x1
00000064 0624 LSL R4,R4,#0x18
00000066 0E24 LSR R4,R4,#0x18
00000068 L_29:
00000068 1C20 MOV R0,R4 ; y
0000006A 0600 LSL R0,R0,#0x18 ; y
0000006C 0E00 LSR R0,R0,#0x18
0000006E 2843 CMP R0,#0x43
00000070 DBE4 BLT L_36 ; T=0x0000003C
245: SetLcdCs();
00000072 4800 LDR R1,=0x40000
00000074 4800 LDR R0,=0xFFFFF444
00000076 6001 STR R1,[R0,#0x0]
00000078 ; SCOPE-END
246: }
00000078 BC30 POP {R4-R5}
0000007A BC08 POP {R3}
0000007C 4718 BX R3
0000007E ENDP ; 'LcdClr?T'
*** CODE SEGMENT '?PR?LcdBlockWrite?T?3510LCD':
251: void LcdBlockWrite(uint8 x1, uint8 y1, uint8 x2, uint8 y2, uint8 *b)
00000000 B5F0 PUSH {R4-R7,LR}
00000002 1C1E MOV R6,R3 ; y2
00000004 ---- Variable 'y2' assigned to Register 'R6' ----
00000004 1C15 MOV R5,R2 ; x2
00000006 ---- Variable 'x2' assigned to Register 'R5' ----
00000006 1C0F MOV R7,R1 ; y1
00000008 ---- Variable 'y1' assigned to Register 'R7' ----
00000008 1C04 MOV R4,R0 ; x1
0000000A ---- Variable 'x1' assigned to Register 'R4' ----
0000000A B081 SUB R13,#0x4
252: {
0000000C ; SCOPE-START
254: LcdSendCommand(0x2a); //column address set
0000000C 202A MOV R0,#0x2A
0000000E F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000010 FFF7 BL LcdSendCommand?T ; T=0x0001 (2)
255: LcdSendData(x1);
00000012 1C20 MOV R0,R4 ; x1
00000014 0600 LSL R0,R0,#0x18 ; x1
00000016 0E00 LSR R0,R0,#0x18
00000018 F7FF BL LcdSendData?T ; T=0x0001 (1)
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 17
0000001A FFF2 BL LcdSendData?T ; T=0x0001 (2)
256: LcdSendData(x2);
0000001C 1C28 MOV R0,R5 ; x2
0000001E 0600 LSL R0,R0,#0x18 ; x2
00000020 0E00 LSR R0,R0,#0x18
00000022 F7FF BL LcdSendData?T ; T=0x0001 (1)
00000024 FFED BL LcdSendData?T ; T=0x0001 (2)
257: SetLcdCs();
00000026 4800 LDR R1,=0x40000
00000028 4800 LDR R0,=0xFFFFF444
0000002A 6001 STR R1,[R0,#0x0]
259: LcdSendCommand(0x2b); //page address set
0000002C 202B MOV R0,#0x2B
0000002E F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000030 FFE7 BL LcdSendCommand?T ; T=0x0001 (2)
260: LcdSendData(y1);
00000032 1C38 MOV R0,R7 ; y1
00000034 0600 LSL R0,R0,#0x18 ; y1
00000036 0E00 LSR R0,R0,#0x18
00000038 F7FF BL LcdSendData?T ; T=0x0001 (1)
0000003A FFE2 BL LcdSendData?T ; T=0x0001 (2)
261: LcdSendData(y2);
0000003C 1C30 MOV R0,R6 ; y2
0000003E 0600 LSL R0,R0,#0x18 ; y2
00000040 0E00 LSR R0,R0,#0x18
00000042 F7FF BL LcdSendData?T ; T=0x0001 (1)
00000044 FFDD BL LcdSendData?T ; T=0x0001 (2)
262: SetLcdCs();
00000046 4800 LDR R1,=0x40000
00000048 4800 LDR R0,=0xFFFFF444
0000004A 6001 STR R1,[R0,#0x0]
264: LcdSendCommand(0x2c); //memory write
0000004C 202C MOV R0,#0x2C
0000004E F7FF BL LcdSendCommand?T ; T=0x0001 (1)
00000050 FFD7 BL LcdSendCommand?T ; T=0x0001 (2)
265: for(y=y1;y<=y2;y++)
00000052 1C38 MOV R0,R7 ; y1
00000054 0600 LSL R0,R0,#0x18 ; y1
00000056 0E00 LSR R0,R0,#0x18
00000058 9000 STR R0,[R13,#0x0] ; y
0000005A E022 B L_39 ; T=0x000000A2
267: for(x=x1;x<=x2;x+=2)
0000005C L_46:
0000005C 1C20 MOV R0,R4 ; x1
0000005E 0607 LSL R7,R0,#0x18 ; x1
00000060 0E3F LSR R7,R7,#0x18
00000062 ---- Variable 'x' assigned to Register 'R7' ----
00000062 E015 B L_44 ; T=0x00000090
00000064 L_45:
269: LcdSendData(*(b++));
00000064 9801 LDR R0,[R13,#0x4] ; b
00000066 1C01 MOV R1,R0
00000068 3101 ADD R1,#0x1
0000006A 9101 STR R1,[R13,#0x4] ; b
0000006C 7800 LDRB R0,[R0,#0x0]
0000006E F7FF BL LcdSendData?T ; T=0x0001 (1)
00000070 FFC7 BL LcdSendData?T ; T=0x0001 (2)
270: LcdSendData(*(b++));
00000072 9801 LDR R0,[R13,#0x4] ; b
00000074 1C01 MOV R1,R0
00000076 3101 ADD R1,#0x1
00000078 9101 STR R1,[R13,#0x4] ; b
0000007A 7800 LDRB R0,[R0,#0x0]
0000007C F7FF BL LcdSendData?T ; T=0x0001 (1)
0000007E FFC0 BL LcdSendData?T ; T=0x0001 (2)
271: LcdSendData(*(b++));
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 18
00000080 9801 LDR R0,[R13,#0x4] ; b
00000082 1C01 MOV R1,R0
00000084 3101 ADD R1,#0x1
00000086 9101 STR R1,[R13,#0x4] ; b
00000088 7800 LDRB R0,[R0,#0x0]
0000008A F7FF BL LcdSendData?T ; T=0x0001 (1)
0000008C FFB9 BL LcdSendData?T ; T=0x0001 (2)
272: }
0000008E 3702 ADD R7,#0x2
00000090 L_44:
00000090 1C28 MOV R0,R5 ; x2
00000092 0601 LSL R1,R0,#0x18 ; x2
00000094 0E09 LSR R1,R1,#0x18
00000096 1C38 MOV R0,R7 ; x
00000098 4288 CMP R0,R1 ; x
0000009A D9E3 BLS L_45 ; T=0x00000064
273: }
0000009C 9800 LDR R0,[R13,#0x0] ; y
0000009E 3001 ADD R0,#0x1
000000A0 9000 STR R0,[R13,#0x0] ; y
000000A2 L_39:
000000A2 1C30 MOV R0,R6 ; y2
000000A4 0601 LSL R1,R0,#0x18 ; y2
000000A6 0E09 LSR R1,R1,#0x18
000000A8 9800 LDR R0,[R13,#0x0] ; y
000000AA 4288 CMP R0,R1
000000AC D9D6 BLS L_46 ; T=0x0000005C
274: SetLcdCs();
000000AE 4800 LDR R1,=0x40000
000000B0 4800 LDR R0,=0xFFFFF444
000000B2 6001 STR R1,[R0,#0x0]
000000B4 ; SCOPE-END
275: }
000000B4 B001 ADD R13,#0x4
000000B6 BCF0 POP {R4-R7}
000000B8 BC08 POP {R3}
000000BA 4718 BX R3
000000BC ENDP ; 'LcdBlockWrite?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -