📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000390 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000000e 00800060 00000390 00000424 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 0080006e 0000039e 00000432 2**0
ALLOC
3 .noinit 00000000 0080006e 0080006e 00000432 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000432 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00000434 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 000007a0 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 0000003c 00000000 00000000 00000824 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 0000011e 00000000 00000000 00000860 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00000454 00000000 00000000 0000097e 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 000001d0 00000000 00000000 00000dd2 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000004cc 00000000 00000000 00000fa2 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 00000129 00000000 00000000 0000146e 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
8: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
10: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
14: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
18: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
1c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
20: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
24: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
28: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
2c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
30: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
34: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
38: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
3c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
40: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
44: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
48: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
4c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
50: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e0 e9 ldi r30, 0x90 ; 144
68: f3 e0 ldi r31, 0x03 ; 3
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: ae 36 cpi r26, 0x6E ; 110
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: ae e6 ldi r26, 0x6E ; 110
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: ae 36 cpi r26, 0x6E ; 110
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 a7 01 jmp 0x34e <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <ClearLcd>:
#define EN_1 PORTD |= (1<<EN)
void ClearLcd(void)
{
8e: 1f 93 push r17
EN_0;
90: 1f e7 ldi r17, 0x7F ; 127
92: 82 b3 in r24, 0x12 ; 18
94: 81 23 and r24, r17
96: 82 bb out 0x12, r24 ; 18
RS_0;
98: 94 98 cbi 0x12, 4 ; 18
RW_0;
9a: 95 98 cbi 0x12, 5 ; 18
DataOut;
9c: 8f ef ldi r24, 0xFF ; 255
9e: 8a bb out 0x1a, r24 ; 26
DataLcd = 1;
a0: 81 e0 ldi r24, 0x01 ; 1
a2: 8b bb out 0x1b, r24 ; 27
delay_us(200);
a4: 88 ec ldi r24, 0xC8 ; 200
a6: 90 e0 ldi r25, 0x00 ; 0
a8: 0e 94 70 01 call 0x2e0 <delay_us>
EN_1;
ac: 97 9a sbi 0x12, 7 ; 18
delay_us(300);
ae: 8c e2 ldi r24, 0x2C ; 44
b0: 91 e0 ldi r25, 0x01 ; 1
b2: 0e 94 70 01 call 0x2e0 <delay_us>
EN_0;
b6: 82 b3 in r24, 0x12 ; 18
b8: 81 23 and r24, r17
ba: 82 bb out 0x12, r24 ; 18
delay_us(300);
bc: 8c e2 ldi r24, 0x2C ; 44
be: 91 e0 ldi r25, 0x01 ; 1
c0: 0e 94 70 01 call 0x2e0 <delay_us>
RS_1;
c4: 94 9a sbi 0x12, 4 ; 18
RW_1;
c6: 95 9a sbi 0x12, 5 ; 18
c8: 1f 91 pop r17
ca: 08 95 ret
000000cc <home>:
}
/**/
void home(void)
{
RS_0;
cc: 94 98 cbi 0x12, 4 ; 18
RW_0;
ce: 95 98 cbi 0x12, 5 ; 18
DataLcd = 2;
d0: 82 e0 ldi r24, 0x02 ; 2
d2: 8b bb out 0x1b, r24 ; 27
delay_us(100);
d4: 84 e6 ldi r24, 0x64 ; 100
d6: 90 e0 ldi r25, 0x00 ; 0
d8: 0e 94 70 01 call 0x2e0 <delay_us>
EN_1;
dc: 97 9a sbi 0x12, 7 ; 18
delay_us(100);
de: 84 e6 ldi r24, 0x64 ; 100
e0: 90 e0 ldi r25, 0x00 ; 0
e2: 0e 94 70 01 call 0x2e0 <delay_us>
EN_0;
e6: 97 98 cbi 0x12, 7 ; 18
delay_us(100);
e8: 84 e6 ldi r24, 0x64 ; 100
ea: 90 e0 ldi r25, 0x00 ; 0
ec: 0e 94 70 01 call 0x2e0 <delay_us>
RS_1;
f0: 94 9a sbi 0x12, 4 ; 18
RW_1;
f2: 95 9a sbi 0x12, 5 ; 18
f4: 08 95 ret
000000f6 <InputSet>:
}
void InputSet(void)
{
RS_0;
f6: 94 98 cbi 0x12, 4 ; 18
RW_0;
f8: 95 98 cbi 0x12, 5 ; 18
DataLcd = 6; //
fa: 86 e0 ldi r24, 0x06 ; 6
fc: 8b bb out 0x1b, r24 ; 27
delay_us(100);
fe: 84 e6 ldi r24, 0x64 ; 100
100: 90 e0 ldi r25, 0x00 ; 0
102: 0e 94 70 01 call 0x2e0 <delay_us>
EN_1;
106: 97 9a sbi 0x12, 7 ; 18
delay_us(100);
108: 84 e6 ldi r24, 0x64 ; 100
10a: 90 e0 ldi r25, 0x00 ; 0
10c: 0e 94 70 01 call 0x2e0 <delay_us>
EN_0;
110: 97 98 cbi 0x12, 7 ; 18
delay_us(100);
112: 84 e6 ldi r24, 0x64 ; 100
114: 90 e0 ldi r25, 0x00 ; 0
116: 0e 94 70 01 call 0x2e0 <delay_us>
RS_1;
11a: 94 9a sbi 0x12, 4 ; 18
RW_1;
11c: 95 9a sbi 0x12, 5 ; 18
11e: 08 95 ret
00000120 <VisionSet>:
}
void VisionSet(void)
{
120: 1f 93 push r17
EN_0;
122: 1f e7 ldi r17, 0x7F ; 127
124: 82 b3 in r24, 0x12 ; 18
126: 81 23 and r24, r17
128: 82 bb out 0x12, r24 ; 18
RS_0;
12a: 94 98 cbi 0x12, 4 ; 18
RW_0;
12c: 95 98 cbi 0x12, 5 ; 18
DataLcd = 0x0f; //设置D=1,C=1,B=1
12e: 8f e0 ldi r24, 0x0F ; 15
130: 8b bb out 0x1b, r24 ; 27
delay_us(100);
132: 84 e6 ldi r24, 0x64 ; 100
134: 90 e0 ldi r25, 0x00 ; 0
136: 0e 94 70 01 call 0x2e0 <delay_us>
EN_1;
13a: 97 9a sbi 0x12, 7 ; 18
delay_us(100);
13c: 84 e6 ldi r24, 0x64 ; 100
13e: 90 e0 ldi r25, 0x00 ; 0
140: 0e 94 70 01 call 0x2e0 <delay_us>
EN_0;
144: 82 b3 in r24, 0x12 ; 18
146: 81 23 and r24, r17
148: 82 bb out 0x12, r24 ; 18
delay_us(100);
14a: 84 e6 ldi r24, 0x64 ; 100
14c: 90 e0 ldi r25, 0x00 ; 0
14e: 0e 94 70 01 call 0x2e0 <delay_us>
RS_1;
152: 94 9a sbi 0x12, 4 ; 18
RW_1;
154: 95 9a sbi 0x12, 5 ; 18
156: 1f 91 pop r17
158: 08 95 ret
0000015a <FunctionSet>:
}
void FunctionSet(void)
{
15a: 1f 93 push r17
DataOut;
15c: 8f ef ldi r24, 0xFF ; 255
15e: 8a bb out 0x1a, r24 ; 26
EN_0;
160: 1f e7 ldi r17, 0x7F ; 127
162: 82 b3 in r24, 0x12 ; 18
164: 81 23 and r24, r17
166: 82 bb out 0x12, r24 ; 18
RS_0;
168: 94 98 cbi 0x12, 4 ; 18
RW_0;
16a: 95 98 cbi 0x12, 5 ; 18
DataLcd = 0x38; //设置DL=1,N=1,F=0
16c: 88 e3 ldi r24, 0x38 ; 56
16e: 8b bb out 0x1b, r24 ; 27
delay_us(100); //地址建立时间,最小140ns
170: 84 e6 ldi r24, 0x64 ; 100
172: 90 e0 ldi r25, 0x00 ; 0
174: 0e 94 70 01 call 0x2e0 <delay_us>
EN_1;
178: 97 9a sbi 0x12, 7 ; 18
delay_us(100); //脉冲宽度,最小450ns
17a: 84 e6 ldi r24, 0x64 ; 100
17c: 90 e0 ldi r25, 0x00 ; 0
17e: 0e 94 70 01 call 0x2e0 <delay_us>
EN_0;
182: 82 b3 in r24, 0x12 ; 18
184: 81 23 and r24, r17
186: 82 bb out 0x12, r24 ; 18
delay_us(100); //地址保持时间,最小10ns
188: 84 e6 ldi r24, 0x64 ; 100
18a: 90 e0 ldi r25, 0x00 ; 0
18c: 0e 94 70 01 call 0x2e0 <delay_us>
RS_1;
190: 94 9a sbi 0x12, 4 ; 18
RW_1;
192: 95 9a sbi 0x12, 5 ; 18
194: 1f 91 pop r17
196: 08 95 ret
00000198 <CgramSet>:
}
void CgramSet(void)
{
198: 08 95 ret
0000019a <DdramSet>:
}
void DdramSet(unsigned char addr)
{
19a: 1f 93 push r17
EN_0;
19c: 1f e7 ldi r17, 0x7F ; 127
19e: 92 b3 in r25, 0x12 ; 18
1a0: 91 23 and r25, r17
1a2: 92 bb out 0x12, r25 ; 18
RS_0;
1a4: 94 98 cbi 0x12, 4 ; 18
RW_0;
1a6: 95 98 cbi 0x12, 5 ; 18
DataLcd = (0x80+addr); //
1a8: 80 58 subi r24, 0x80 ; 128
1aa: 8b bb out 0x1b, r24 ; 27
delay_us(100);
1ac: 84 e6 ldi r24, 0x64 ; 100
1ae: 90 e0 ldi r25, 0x00 ; 0
1b0: 0e 94 70 01 call 0x2e0 <delay_us>
EN_1;
1b4: 97 9a sbi 0x12, 7 ; 18
delay_us(100);
1b6: 84 e6 ldi r24, 0x64 ; 100
1b8: 90 e0 ldi r25, 0x00 ; 0
1ba: 0e 94 70 01 call 0x2e0 <delay_us>
EN_0;
1be: 82 b3 in r24, 0x12 ; 18
1c0: 81 23 and r24, r17
1c2: 82 bb out 0x12, r24 ; 18
delay_us(100);
1c4: 84 e6 ldi r24, 0x64 ; 100
1c6: 90 e0 ldi r25, 0x00 ; 0
1c8: 0e 94 70 01 call 0x2e0 <delay_us>
RS_1;
1cc: 94 9a sbi 0x12, 4 ; 18
RW_1;
1ce: 95 9a sbi 0x12, 5 ; 18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -