📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000002aa 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000003c 00800060 000002aa 0000033e 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 0080009c 000002e6 0000037a 2**0
ALLOC
3 .noinit 00000000 0080009c 0080009c 0000037a 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000037a 2**0
CONTENTS
5 .stab 00000cc0 00000000 00000000 0000037c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000a3b 00000000 00000000 0000103c 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: ea ea ldi r30, 0xAA ; 170
68: f2 e0 ldi r31, 0x02 ; 2
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: ac 39 cpi r26, 0x9C ; 156
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: ac e9 ldi r26, 0x9C ; 156
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: ac 39 cpi r26, 0x9C ; 156
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 47 00 jmp 0x8e <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__heap_end>
0000008e <main>:
#include "stdlib.h"
#include <avr\io.h>
int main(void)
{
8e: cf e5 ldi r28, 0x5F ; 95
90: d4 e0 ldi r29, 0x04 ; 4
92: de bf out 0x3e, r29 ; 62
94: cd bf out 0x3d, r28 ; 61
unsigned int i;
delay(20);
96: 84 e1 ldi r24, 0x14 ; 20
98: 90 e0 ldi r25, 0x00 ; 0
9a: 0e 94 87 00 call 0x10e <delay>
LCD_Initialize();
9e: 0e 94 ad 00 call 0x15a <LCD_Initialize>
a2: cf eb ldi r28, 0xBF ; 191
a4: da e5 ldi r29, 0x5A ; 90
/*for(i=0;i<23232;i++)
{
LCD_Send16(0xF800+i,1);
}
delay(300000);
for(;;)
LCD_Send(0xFF,1);*/
for(i=0;i<10000;i++)
{
for(i=0;i<23232;i++)
{
LCD_Send16(0xF800,1);
a6: 61 e0 ldi r22, 0x01 ; 1
a8: 70 e0 ldi r23, 0x00 ; 0
aa: 80 e0 ldi r24, 0x00 ; 0
ac: 98 ef ldi r25, 0xF8 ; 248
ae: 0e 94 41 01 call 0x282 <LCD_Send16>
b2: 21 97 sbiw r28, 0x01 ; 1
b4: d7 ff sbrs r29, 7
b6: f7 cf rjmp .-18 ; 0xa6 <main+0x18>
b8: cf eb ldi r28, 0xBF ; 191
ba: da e5 ldi r29, 0x5A ; 90
}
for(i=0;i<23232;i++)
{
LCD_Send16(0X07E0,1);
bc: 61 e0 ldi r22, 0x01 ; 1
be: 70 e0 ldi r23, 0x00 ; 0
c0: 80 ee ldi r24, 0xE0 ; 224
c2: 97 e0 ldi r25, 0x07 ; 7
c4: 0e 94 41 01 call 0x282 <LCD_Send16>
c8: 21 97 sbiw r28, 0x01 ; 1
ca: d7 ff sbrs r29, 7
cc: f7 cf rjmp .-18 ; 0xbc <main+0x2e>
ce: cf eb ldi r28, 0xBF ; 191
d0: da e5 ldi r29, 0x5A ; 90
}
for(i=0;i<23232;i++)
{
LCD_Send16(0X001F,1);
d2: 61 e0 ldi r22, 0x01 ; 1
d4: 70 e0 ldi r23, 0x00 ; 0
d6: 8f e1 ldi r24, 0x1F ; 31
d8: 90 e0 ldi r25, 0x00 ; 0
da: 0e 94 41 01 call 0x282 <LCD_Send16>
de: 21 97 sbiw r28, 0x01 ; 1
e0: d7 ff sbrs r29, 7
e2: f7 cf rjmp .-18 ; 0xd2 <main+0x44>
e4: cf eb ldi r28, 0xBF ; 191
e6: da e5 ldi r29, 0x5A ; 90
}
for(i=0;i<23232;i++)
{
LCD_Send16(0XFFFF,1);
e8: 61 e0 ldi r22, 0x01 ; 1
ea: 70 e0 ldi r23, 0x00 ; 0
ec: 8f ef ldi r24, 0xFF ; 255
ee: 9f ef ldi r25, 0xFF ; 255
f0: 0e 94 41 01 call 0x282 <LCD_Send16>
f4: 21 97 sbiw r28, 0x01 ; 1
f6: d7 ff sbrs r29, 7
f8: f7 cf rjmp .-18 ; 0xe8 <main+0x5a>
}
}
} fa: 80 e0 ldi r24, 0x00 ; 0
fc: 90 e0 ldi r25, 0x00 ; 0
fe: 0c 94 54 01 jmp 0x2a8 <_exit>
00000102 <delay_1ms>:
void delay_1ms(void)
{
unsigned int i;
for (i=1;i<1580;i++)
102: 87 e2 ldi r24, 0x27 ; 39
104: 96 e0 ldi r25, 0x06 ; 6
106: 04 97 sbiw r24, 0x04 ; 4
108: 97 ff sbrs r25, 7
10a: fd cf rjmp .-6 ; 0x106 <delay_1ms+0x4>
10c: 08 95 ret
0000010e <delay>:
;
}
void delay(unsigned int n)
{
10e: 0f 93 push r16
110: 1f 93 push r17
112: cf 93 push r28
114: df 93 push r29
116: 8c 01 movw r16, r24
unsigned int i=0;
118: c0 e0 ldi r28, 0x00 ; 0
11a: d0 e0 ldi r29, 0x00 ; 0
for(i=0;i<n;i++)
11c: c8 17 cp r28, r24
11e: d9 07 cpc r29, r25
120: 30 f4 brcc .+12 ; 0x12e <delay+0x20>
delay_1ms();
122: 0e 94 81 00 call 0x102 <delay_1ms>
126: 21 96 adiw r28, 0x01 ; 1
128: c0 17 cp r28, r16
12a: d1 07 cpc r29, r17
12c: d0 f3 brcs .-12 ; 0x122 <delay+0x14>
12e: df 91 pop r29
130: cf 91 pop r28
132: 1f 91 pop r17
134: 0f 91 pop r16
136: 08 95 ret
00000138 <LCD_Send>:
}
void LCD_Initialize(void)
{
prog_char a[] = {0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE, 0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04,
0x7F, 0x3F, 0xEE, 0x04, 0x43, 0x06 };
prog_char b[] = {0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF, 0x0A, 0x00, 0x05, 0x00, 0x06, 0x00,
0x07, 0x00, 0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80, 0xEF, 0xB0, 0x49, 0x02 ,
0xEF, 0x00, 0x7F, 0x01, 0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83};
unsigned int i;
DDRB=0XFF;
PORTB|= (1<<LCD_CS );
PORTB&=~(1<<LCD_RESET );
PORTB|= (1<<LCD_CS );
PORTB|= (1<<LCD_DATA );
PORTB&=~(1<<LCD_SCK );
PORTB|= (1<<LCD_RS );
PORTB|= (1<<LCD_RESET);
for(i=0;i<4;i++)
LCD_Send(0xFD,0);
delay(50);
for(i=0;i<20;i++)
LCD_Send(a[i],0);
delay(7);
for(i=0;i<40;i++)
LCD_Send(b[i],0);
delay(50);
LCD_Send(0x80,0);
LCD_Send(0x01,0);
LCD_Send(0xEF,0);
LCD_Send(0x90,0);
LCD_Send(0x00,0);
LCD_Send(0x00,0);
}
void LCD_Send(uint8_t data,unsigned int n)
{
138: 98 2f mov r25, r24
DDRB=0XBF;
13a: 8f eb ldi r24, 0xBF ; 191
13c: 87 bb out 0x17, r24 ; 23
SPCR=0X50;
13e: 80 e5 ldi r24, 0x50 ; 80
140: 8d b9 out 0x0d, r24 ; 13
SPSR=0X01;
142: 81 e0 ldi r24, 0x01 ; 1
144: 8e b9 out 0x0e, r24 ; 14
if(!n) //n=0;命令;n=1;数据
146: 67 2b or r22, r23
148: 11 f4 brne .+4 ; 0x14e <LCD_Send+0x16>
PORTB|= (1<<LCD_RS); //RS=1;
14a: c2 9a sbi 0x18, 2 ; 24
14c: 01 c0 rjmp .+2 ; 0x150 <LCD_Send+0x18>
else
PORTB&=~(1<<LCD_RS ); //RS=0;
14e: c2 98 cbi 0x18, 2 ; 24
PORTB&=~(1<<LCD_CS ); //CS=0;
150: c4 98 cbi 0x18, 4 ; 24
SPDR = data; // 传送数据到SPI寄存器
152: 9f b9 out 0x0f, r25 ; 15
while ((SPSR & (1 << SPIF)) == 0); // 等待数据传送完?
154: 77 9b sbis 0x0e, 7 ; 14
156: fe cf rjmp .-4 ; 0x154 <LCD_Send+0x1c>
158: 08 95 ret
0000015a <LCD_Initialize>:
15a: cf 92 push r12
15c: df 92 push r13
15e: ef 92 push r14
160: ff 92 push r15
162: 0f 93 push r16
164: 1f 93 push r17
166: cf 93 push r28
168: df 93 push r29
16a: cd b7 in r28, 0x3d ; 61
16c: de b7 in r29, 0x3e ; 62
16e: ec 97 sbiw r28, 0x3c ; 60
170: 0f b6 in r0, 0x3f ; 63
172: f8 94 cli
174: de bf out 0x3e, r29 ; 62
176: 0f be out 0x3f, r0 ; 63
178: cd bf out 0x3d, r28 ; 61
17a: 6e 01 movw r12, r28
17c: 08 94 sec
17e: c1 1c adc r12, r1
180: d1 1c adc r13, r1
182: 84 e1 ldi r24, 0x14 ; 20
184: e0 e6 ldi r30, 0x60 ; 96
186: f0 e0 ldi r31, 0x00 ; 0
188: d6 01 movw r26, r12
18a: 01 90 ld r0, Z+
18c: 0d 92 st X+, r0
18e: 8a 95 dec r24
190: e1 f7 brne .-8 ; 0x18a <LCD_Initialize+0x30>
192: 88 e2 ldi r24, 0x28 ; 40
194: a4 e7 ldi r26, 0x74 ; 116
196: b0 e0 ldi r27, 0x00 ; 0
198: fe 01 movw r30, r28
19a: 75 96 adiw r30, 0x15 ; 21
19c: 0d 90 ld r0, X+
19e: 01 92 st Z+, r0
1a0: 8a 95 dec r24
1a2: e1 f7 brne .-8 ; 0x19c <LCD_Initialize+0x42>
1a4: 8f ef ldi r24, 0xFF ; 255
1a6: 87 bb out 0x17, r24 ; 23
1a8: c4 9a sbi 0x18, 4 ; 24
1aa: c3 98 cbi 0x18, 3 ; 24
1ac: c4 9a sbi 0x18, 4 ; 24
1ae: c5 9a sbi 0x18, 5 ; 24
1b0: c7 98 cbi 0x18, 7 ; 24
1b2: c2 9a sbi 0x18, 2 ; 24
1b4: c3 9a sbi 0x18, 3 ; 24
1b6: 03 e0 ldi r16, 0x03 ; 3
1b8: 10 e0 ldi r17, 0x00 ; 0
1ba: 60 e0 ldi r22, 0x00 ; 0
1bc: 70 e0 ldi r23, 0x00 ; 0
1be: 8d ef ldi r24, 0xFD ; 253
1c0: 0e 94 9c 00 call 0x138 <LCD_Send>
1c4: 01 50 subi r16, 0x01 ; 1
1c6: 10 40 sbci r17, 0x00 ; 0
1c8: 17 ff sbrs r17, 7
1ca: f7 cf rjmp .-18 ; 0x1ba <LCD_Initialize+0x60>
1cc: 82 e3 ldi r24, 0x32 ; 50
1ce: 90 e0 ldi r25, 0x00 ; 0
1d0: 0e 94 87 00 call 0x10e <delay>
1d4: 86 01 movw r16, r12
1d6: 93 e1 ldi r25, 0x13 ; 19
1d8: e9 2e mov r14, r25
1da: f1 2c mov r15, r1
1dc: ec 0c add r14, r12
1de: fd 1c adc r15, r13
1e0: 60 e0 ldi r22, 0x00 ; 0
1e2: 70 e0 ldi r23, 0x00 ; 0
1e4: f8 01 movw r30, r16
1e6: 81 91 ld r24, Z+
1e8: 8f 01 movw r16, r30
1ea: 0e 94 9c 00 call 0x138 <LCD_Send>
1ee: e0 16 cp r14, r16
1f0: f1 06 cpc r15, r17
1f2: b0 f7 brcc .-20 ; 0x1e0 <LCD_Initialize+0x86>
1f4: 87 e0 ldi r24, 0x07 ; 7
1f6: 90 e0 ldi r25, 0x00 ; 0
1f8: 0e 94 87 00 call 0x10e <delay>
1fc: 84 e1 ldi r24, 0x14 ; 20
1fe: e8 2e mov r14, r24
200: f1 2c mov r15, r1
202: ec 0c add r14, r12
204: fd 1c adc r15, r13
206: 07 e2 ldi r16, 0x27 ; 39
208: 10 e0 ldi r17, 0x00 ; 0
20a: 60 e0 ldi r22, 0x00 ; 0
20c: 70 e0 ldi r23, 0x00 ; 0
20e: d7 01 movw r26, r14
210: 8d 91 ld r24, X+
212: 7d 01 movw r14, r26
214: 0e 94 9c 00 call 0x138 <LCD_Send>
218: 01 50 subi r16, 0x01 ; 1
21a: 10 40 sbci r17, 0x00 ; 0
21c: 17 ff sbrs r17, 7
21e: f5 cf rjmp .-22 ; 0x20a <LCD_Initialize+0xb0>
220: 82 e3 ldi r24, 0x32 ; 50
222: 90 e0 ldi r25, 0x00 ; 0
224: 0e 94 87 00 call 0x10e <delay>
228: 60 e0 ldi r22, 0x00 ; 0
22a: 70 e0 ldi r23, 0x00 ; 0
22c: 80 e8 ldi r24, 0x80 ; 128
22e: 0e 94 9c 00 call 0x138 <LCD_Send>
232: 60 e0 ldi r22, 0x00 ; 0
234: 70 e0 ldi r23, 0x00 ; 0
236: 81 e0 ldi r24, 0x01 ; 1
238: 0e 94 9c 00 call 0x138 <LCD_Send>
23c: 60 e0 ldi r22, 0x00 ; 0
23e: 70 e0 ldi r23, 0x00 ; 0
240: 8f ee ldi r24, 0xEF ; 239
242: 0e 94 9c 00 call 0x138 <LCD_Send>
246: 60 e0 ldi r22, 0x00 ; 0
248: 70 e0 ldi r23, 0x00 ; 0
24a: 80 e9 ldi r24, 0x90 ; 144
24c: 0e 94 9c 00 call 0x138 <LCD_Send>
250: 60 e0 ldi r22, 0x00 ; 0
252: 70 e0 ldi r23, 0x00 ; 0
254: 80 e0 ldi r24, 0x00 ; 0
256: 0e 94 9c 00 call 0x138 <LCD_Send>
25a: 60 e0 ldi r22, 0x00 ; 0
25c: 70 e0 ldi r23, 0x00 ; 0
25e: 80 e0 ldi r24, 0x00 ; 0
260: 0e 94 9c 00 call 0x138 <LCD_Send>
264: ec 96 adiw r28, 0x3c ; 60
266: 0f b6 in r0, 0x3f ; 63
268: f8 94 cli
26a: de bf out 0x3e, r29 ; 62
26c: 0f be out 0x3f, r0 ; 63
26e: cd bf out 0x3d, r28 ; 61
270: df 91 pop r29
272: cf 91 pop r28
274: 1f 91 pop r17
276: 0f 91 pop r16
278: ff 90 pop r15
27a: ef 90 pop r14
27c: df 90 pop r13
27e: cf 90 pop r12
280: 08 95 ret
00000282 <LCD_Send16>:
//PORTB |= (1<<LCD_CS) ; // 关断LCD SPI通讯
}
void LCD_Send16(uint16_t dat,unsigned int n)
{
282: ef 92 push r14
284: ff 92 push r15
286: 0f 93 push r16
288: 1f 93 push r17
28a: 7c 01 movw r14, r24
28c: 8b 01 movw r16, r22
LCD_Send(dat>>8,n);
28e: 89 2f mov r24, r25
290: 99 27 eor r25, r25
292: 0e 94 9c 00 call 0x138 <LCD_Send>
LCD_Send(dat,n);
296: b8 01 movw r22, r16
298: 8e 2d mov r24, r14
29a: 0e 94 9c 00 call 0x138 <LCD_Send>
29e: 1f 91 pop r17
2a0: 0f 91 pop r16
2a2: ff 90 pop r15
2a4: ef 90 pop r14
2a6: 08 95 ret
000002a8 <_exit>:
2a8: ff cf rjmp .-2 ; 0x2a8 <_exit>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -