📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000065a 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000288 00800060 0000065a 000006ee 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000000c 008002e8 008002e8 00000976 2**0
ALLOC
3 .noinit 00000000 008002f4 008002f4 00000976 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000976 2**0
CONTENTS
5 .stab 00000e04 00000000 00000000 00000978 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 000008e5 00000000 00000000 0000177c 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26
2: 2b c0 rjmp .+86 ; 0x5a
4: 2a c0 rjmp .+84 ; 0x5a
6: 29 c0 rjmp .+82 ; 0x5a
8: 28 c0 rjmp .+80 ; 0x5a
a: 27 c0 rjmp .+78 ; 0x5a
c: 26 c0 rjmp .+76 ; 0x5a
e: 25 c0 rjmp .+74 ; 0x5a
10: 24 c0 rjmp .+72 ; 0x5a
12: 23 c0 rjmp .+70 ; 0x5a
14: 22 c0 rjmp .+68 ; 0x5a
16: 21 c0 rjmp .+66 ; 0x5a
18: 20 c0 rjmp .+64 ; 0x5a
1a: 1f c0 rjmp .+62 ; 0x5a
1c: 1e c0 rjmp .+60 ; 0x5a
1e: 1d c0 rjmp .+58 ; 0x5a
20: 1c c0 rjmp .+56 ; 0x5a
22: 1b c0 rjmp .+54 ; 0x5a
24: 1a c0 rjmp .+52 ; 0x5a
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf e5 ldi r28, 0x5F ; 95
2c: d4 e0 ldi r29, 0x04 ; 4
2e: de bf out 0x3e, r29 ; 62
30: cd bf out 0x3d, r28 ; 61
00000032 <__do_copy_data>:
32: 12 e0 ldi r17, 0x02 ; 2
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: ea e5 ldi r30, 0x5A ; 90
3a: f6 e0 ldi r31, 0x06 ; 6
3c: 02 c0 rjmp .+4 ; 0x42
0000003e <.do_copy_data_loop>:
3e: 05 90 lpm r0, Z+
40: 0d 92 st X+, r0
00000042 <.do_copy_data_start>:
42: a8 3e cpi r26, 0xE8 ; 232
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e
00000048 <__do_clear_bss>:
48: 12 e0 ldi r17, 0x02 ; 2
4a: a8 ee ldi r26, 0xE8 ; 232
4c: b2 e0 ldi r27, 0x02 ; 2
4e: 01 c0 rjmp .+2 ; 0x52
00000050 <.do_clear_bss_loop>:
50: 1d 92 st X+, r1
00000052 <.do_clear_bss_start>:
52: a4 3f cpi r26, 0xF4 ; 244
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50
58: 1d c2 rjmp .+1082 ; 0x494
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0
0000005c <delay_1us>:
系统时钟:8M
-----------------------------------------------------------------------*/
void delay_1us(void) //1us延时函数
{
asm("nop");
5c: 00 00 nop
5e: 08 95 ret
00000060 <delay_nus>:
}
void delay_nus(unsigned int n) //N us延时函数
{
60: cf 93 push r28
62: df 93 push r29
unsigned int i=0;
for (i=0;i<n;i++)
64: 00 97 sbiw r24, 0x00 ; 0
66: 21 f0 breq .+8 ; 0x70
68: ec 01 movw r28, r24
delay_1us();
6a: f8 df rcall .-16 ; 0x5c
6c: 21 97 sbiw r28, 0x01 ; 1
6e: e9 f7 brne .-6 ; 0x6a
70: df 91 pop r29
72: cf 91 pop r28
74: 08 95 ret
00000076 <delay_1ms>:
}
void delay_1ms(void) //1ms延时函数
{
76: 83 e7 ldi r24, 0x73 ; 115
78: 94 e0 ldi r25, 0x04 ; 4
unsigned int i;
for (i=0;i<1140;i++);
7a: cc 97 sbiw r24, 0x3c ; 60
7c: 97 ff sbrs r25, 7
7e: fd cf rjmp .-6 ; 0x7a
80: 08 95 ret
00000082 <delay_nms>:
}
void delay_nms(unsigned int n) //N ms延时函数
{
82: cf 93 push r28
84: df 93 push r29
unsigned int i=0;
for (i=0;i<n;i++)
86: 00 97 sbiw r24, 0x00 ; 0
88: 21 f0 breq .+8 ; 0x92
8a: ec 01 movw r28, r24
delay_1ms();
8c: f4 df rcall .-24 ; 0x76
8e: 21 97 sbiw r28, 0x01 ; 1
90: e9 f7 brne .-6 ; 0x8c
92: df 91 pop r29
94: cf 91 pop r28
96: 08 95 ret
00000098 <LCD_write_byte>:
编写日期 :2004-8-10
最后修改日期 :2004-8-13
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
{
98: 98 2f mov r25, r24
PORTB &= ~LCD_CE ; // 使能LCD
9a: c2 98 cbi 0x18, 2 ; 24
if (command == 0)
9c: 66 23 and r22, r22
9e: 11 f4 brne .+4 ; 0xa4
PORTB &= ~LCD_DC ; // 传送命令
a0: c0 98 cbi 0x18, 0 ; 24
a2: 01 c0 rjmp .+2 ; 0xa6
else
PORTB |= LCD_DC ; // 传送数据
a4: c0 9a sbi 0x18, 0 ; 24
SPDR = data; // 传送数据到SPI寄存器
a6: 9f b9 out 0x0f, r25 ; 15
while ((SPSR & 0x80) == 0); // 等待数据传送完毕
a8: 77 9b sbis 0x0e, 7 ; 14
aa: fe cf rjmp .-4 ; 0xa8
PORTB |= LCD_CE ; // 关闭LCD
ac: c2 9a sbi 0x18, 2 ; 24
ae: 08 95 ret
000000b0 <LCD_clear>:
b0: cf 93 push r28
b2: df 93 push r29
b4: 60 e0 ldi r22, 0x00 ; 0
b6: 8c e0 ldi r24, 0x0C ; 12
b8: ef df rcall .-34 ; 0x98
ba: 60 e0 ldi r22, 0x00 ; 0
bc: 80 e8 ldi r24, 0x80 ; 128
be: ec df rcall .-40 ; 0x98
c0: c7 ef ldi r28, 0xF7 ; 247
c2: d1 e0 ldi r29, 0x01 ; 1
c4: 61 e0 ldi r22, 0x01 ; 1
c6: 80 e0 ldi r24, 0x00 ; 0
c8: e7 df rcall .-50 ; 0x98
ca: 21 97 sbiw r28, 0x01 ; 1
cc: d7 ff sbrs r29, 7
ce: fa cf rjmp .-12 ; 0xc4
d0: df 91 pop r29
d2: cf 91 pop r28
d4: 08 95 ret
000000d6 <LCD_init>:
d6: c4 98 cbi 0x18, 4 ; 24
d8: c1 df rcall .-126 ; 0x5c
da: c4 9a sbi 0x18, 4 ; 24
dc: c2 98 cbi 0x18, 2 ; 24
de: be df rcall .-132 ; 0x5c
e0: c2 9a sbi 0x18, 2 ; 24
e2: bc df rcall .-136 ; 0x5c
e4: 60 e0 ldi r22, 0x00 ; 0
e6: 81 e2 ldi r24, 0x21 ; 33
e8: d7 df rcall .-82 ; 0x98
ea: 60 e0 ldi r22, 0x00 ; 0
ec: 88 ec ldi r24, 0xC8 ; 200
ee: d4 df rcall .-88 ; 0x98
f0: 60 e0 ldi r22, 0x00 ; 0
f2: 86 e0 ldi r24, 0x06 ; 6
f4: d1 df rcall .-94 ; 0x98
f6: 60 e0 ldi r22, 0x00 ; 0
f8: 83 e1 ldi r24, 0x13 ; 19
fa: ce df rcall .-100 ; 0x98
fc: 60 e0 ldi r22, 0x00 ; 0
fe: 80 e2 ldi r24, 0x20 ; 32
100: cb df rcall .-106 ; 0x98
102: d6 df rcall .-84 ; 0xb0
104: 60 e0 ldi r22, 0x00 ; 0
106: 8c e0 ldi r24, 0x0C ; 12
108: c7 df rcall .-114 ; 0x98
10a: c2 98 cbi 0x18, 2 ; 24
10c: 08 95 ret
0000010e <LCD_set_XY>:
10e: 1f 93 push r17
110: 18 2f mov r17, r24
112: 86 2f mov r24, r22
114: 60 e0 ldi r22, 0x00 ; 0
116: 80 64 ori r24, 0x40 ; 64
118: bf df rcall .-130 ; 0x98
11a: 60 e0 ldi r22, 0x00 ; 0
11c: 81 2f mov r24, r17
11e: 80 68 ori r24, 0x80 ; 128
120: bb df rcall .-138 ; 0x98
122: 1f 91 pop r17
124: 08 95 ret
00000126 <LCD_write_char>:
126: 1f 93 push r17
128: cf 93 push r28
12a: df 93 push r29
12c: 18 2f mov r17, r24
12e: 10 52 subi r17, 0x20 ; 32
130: c0 e0 ldi r28, 0x00 ; 0
132: d0 e0 ldi r29, 0x00 ; 0
134: 81 2f mov r24, r17
136: 99 27 eor r25, r25
138: fc 01 movw r30, r24
13a: ee 0f add r30, r30
13c: ff 1f adc r31, r31
13e: ee 0f add r30, r30
140: ff 1f adc r31, r31
142: e8 0f add r30, r24
144: f9 1f adc r31, r25
146: e8 0f add r30, r24
148: f9 1f adc r31, r25
14a: ec 0f add r30, r28
14c: fd 1f adc r31, r29
14e: e0 5a subi r30, 0xA0 ; 160
150: ff 4f sbci r31, 0xFF ; 255
152: 61 e0 ldi r22, 0x01 ; 1
154: 80 81 ld r24, Z
156: a0 df rcall .-192 ; 0x98
158: 21 96 adiw r28, 0x01 ; 1
15a: c6 30 cpi r28, 0x06 ; 6
15c: d1 05 cpc r29, r1
15e: 50 f3 brcs .-44 ; 0x134
160: df 91 pop r29
162: cf 91 pop r28
164: 1f 91 pop r17
166: 08 95 ret
00000168 <LCD_write_inverse_char>:
168: 1f 93 push r17
16a: cf 93 push r28
16c: df 93 push r29
16e: 18 2f mov r17, r24
170: 10 52 subi r17, 0x20 ; 32
172: c0 e0 ldi r28, 0x00 ; 0
174: d0 e0 ldi r29, 0x00 ; 0
176: 81 2f mov r24, r17
178: 99 27 eor r25, r25
17a: fc 01 movw r30, r24
17c: ee 0f add r30, r30
17e: ff 1f adc r31, r31
180: ee 0f add r30, r30
182: ff 1f adc r31, r31
184: e8 0f add r30, r24
186: f9 1f adc r31, r25
188: e8 0f add r30, r24
18a: f9 1f adc r31, r25
18c: ec 0f add r30, r28
18e: fd 1f adc r31, r29
190: e0 5a subi r30, 0xA0 ; 160
192: ff 4f sbci r31, 0xFF ; 255
194: 80 81 ld r24, Z
196: 61 e0 ldi r22, 0x01 ; 1
198: 80 95 com r24
19a: 7e df rcall .-260 ; 0x98
19c: 21 96 adiw r28, 0x01 ; 1
19e: c6 30 cpi r28, 0x06 ; 6
1a0: d1 05 cpc r29, r1
1a2: 48 f3 brcs .-46 ; 0x176
1a4: df 91 pop r29
1a6: cf 91 pop r28
1a8: 1f 91 pop r17
1aa: 08 95 ret
000001ac <LCD_write_english_string>:
1ac: cf 93 push r28
1ae: df 93 push r29
1b0: ea 01 movw r28, r20
1b2: ad df rcall .-166 ; 0x10e
1b4: 88 81 ld r24, Y
1b6: 88 23 and r24, r24
1b8: 29 f0 breq .+10 ; 0x1c4
1ba: 89 91 ld r24, Y+
1bc: b4 df rcall .-152 ; 0x126
1be: 88 81 ld r24, Y
1c0: 88 23 and r24, r24
1c2: d9 f7 brne .-10 ; 0x1ba
1c4: df 91 pop r29
1c6: cf 91 pop r28
1c8: 08 95 ret
000001ca <LCD_write_inverse_string>:
1ca: cf 93 push r28
1cc: df 93 push r29
1ce: ea 01 movw r28, r20
1d0: 9e df rcall .-196 ; 0x10e
1d2: 88 81 ld r24, Y
1d4: 88 23 and r24, r24
1d6: 29 f0 breq .+10 ; 0x1e2
1d8: 89 91 ld r24, Y+
1da: c6 df rcall .-116 ; 0x168
1dc: 88 81 ld r24, Y
1de: 88 23 and r24, r24
1e0: d9 f7 brne .-10 ; 0x1d8
1e2: df 91 pop r29
1e4: cf 91 pop r28
1e6: 08 95 ret
000001e8 <lcd_inverse>:
}
void lcd_inverse(void)
{
LCD_write_byte(0b00001101,0);
1e8: 60 e0 ldi r22, 0x00 ; 0
1ea: 8d e0 ldi r24, 0x0D ; 13
1ec: 55 df rcall .-342 ; 0x98
1ee: 08 95 ret
000001f0 <lcd_no_inverse>:
}
void lcd_no_inverse(void)
{
LCD_write_byte(0b00001100,0);
1f0: 60 e0 ldi r22, 0x00 ; 0
1f2: 8c e0 ldi r24, 0x0C ; 12
1f4: 51 df rcall .-350 ; 0x98
1f6: 08 95 ret
000001f8 <delay_ms>:
// 延时
void delay_ms(uint ms)
{
uint i;
for(i=0;i<ms;i++)
1f8: 00 97 sbiw r24, 0x00 ; 0
1fa: 41 f0 breq .+16 ; 0x20c
1fc: 9c 01 movw r18, r24
/* 16-bit count, 4 cycles/loop */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
1fe: 8a ef ldi r24, 0xFA ; 250
200: 90 e0 ldi r25, 0x00 ; 0
asm volatile (
202: 01 97 sbiw r24, 0x01 ; 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -