📄 master.lss
字号:
master.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000128 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000128 000001bc 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00800060 00000128 000001bc 2**0
ALLOC
3 .noinit 00000000 00800060 00800060 000001bc 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000001bc 2**0
CONTENTS
5 .stab 00000528 00000000 00000000 000001bc 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 000005d8 00000000 00000000 000006e4 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: 10 e0 ldi r17, 0x00 ; 0
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: e8 e2 ldi r30, 0x28 ; 40
3a: f1 e0 ldi r31, 0x01 ; 1
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: a0 36 cpi r26, 0x60 ; 96
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e
00000048 <__do_clear_bss>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: a0 e6 ldi r26, 0x60 ; 96
4c: b0 e0 ldi r27, 0x00 ; 0
4e: 01 c0 rjmp .+2 ; 0x52
00000050 <.do_clear_bss_loop>:
50: 1d 92 st X+, r1
00000052 <.do_clear_bss_start>:
52: a0 36 cpi r26, 0x60 ; 96
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50
58: 47 c0 rjmp .+142 ; 0xe8
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0
0000005c <DelayMs>:
void DelayMs(uint ms)
{
uint i;
for(i=0;i<ms;i++)
5c: 00 97 sbiw r24, 0x00 ; 0
5e: 41 f0 breq .+16 ; 0x70
60: 9c 01 movw r18, r24
/* 16-bit count, 4 cycles/loop */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
62: 88 ee ldi r24, 0xE8 ; 232
64: 93 e0 ldi r25, 0x03 ; 3
asm volatile (
66: 01 97 sbiw r24, 0x01 ; 1
68: f1 f7 brne .-4 ; 0x66
6a: 21 50 subi r18, 0x01 ; 1
6c: 30 40 sbci r19, 0x00 ; 0
6e: c9 f7 brne .-14 ; 0x62
70: 08 95 ret
00000072 <twi_stop>:
_delay_loop_2(FREQ *250);
}
/*************主模式TWI操作部分*************开始**************/
//总线上起动停止条件
void twi_stop(void)
{
TWCR = _BV(TWINT) | _BV(TWSTO) | _BV(TWEN);
72: 84 e9 ldi r24, 0x94 ; 148
74: 86 bf out 0x36, r24 ; 54
76: 08 95 ret
00000078 <twi_start>:
}
//总线上起动开始条件
void twi_start(void)
{
uchar trycount=0;
TWCR = _BV(TWINT) | _BV(TWSTA) | _BV(TWEN);
78: 84 ea ldi r24, 0xA4 ; 164
7a: 86 bf out 0x36, r24 ; 54
while ((TWCR & _BV(TWINT)) == 0) ;
7c: 06 b6 in r0, 0x36 ; 54
7e: 07 fe sbrs r0, 7
80: fd cf rjmp .-6 ; 0x7c
return TW_STATUS;
82: 81 b1 in r24, 0x01 ; 1
84: 08 95 ret
00000086 <twi_writebyte>:
}
//写一字节
void twi_writebyte(uchar c)
{
TWDR = c;
86: 83 b9 out 0x03, r24 ; 3
TWCR = _BV(TWINT) | _BV(TWEN);
88: 84 e8 ldi r24, 0x84 ; 132
8a: 86 bf out 0x36, r24 ; 54
while ((TWCR & _BV(TWINT)) == 0);
8c: 06 b6 in r0, 0x36 ; 54
8e: 07 fe sbrs r0, 7
90: fd cf rjmp .-6 ; 0x8c
return TW_STATUS;
92: 81 b1 in r24, 0x01 ; 1
94: 08 95 ret
00000096 <twi_readbyte>:
}
//读一字节 ack: true时发ACK,false时发NACK
uchar twi_readbyte(uchar *c ,uchar ack)
{
96: fc 01 movw r30, r24
uchar tmp=_BV(TWINT)|_BV(TWEN);
98: 94 e8 ldi r25, 0x84 ; 132
if(ack)
9a: 61 11 cpse r22, r1
tmp|=_BV(TWEA);
9c: 94 ec ldi r25, 0xC4 ; 196
TWCR=tmp;
9e: 96 bf out 0x36, r25 ; 54
while ((TWCR & _BV(TWINT)) == 0) ;
a0: 06 b6 in r0, 0x36 ; 54
a2: 07 fe sbrs r0, 7
a4: fd cf rjmp .-6 ; 0xa0
*c=TWDR;
a6: 83 b1 in r24, 0x03 ; 3
a8: 80 83 st Z, r24
return TW_STATUS;
aa: 81 b1 in r24, 0x01 ; 1
ac: 99 27 eor r25, r25
}
ae: 88 7f andi r24, 0xF8 ; 248
b0: 90 70 andi r25, 0x00 ; 0
b2: 08 95 ret
000000b4 <WaitKeyDown>:
/*************主模式IIC操作部分*************结束**************/
//检测按键
uchar WaitKeyDown(void)
{
b4: cf 93 push r28
uchar key;
while(1)
{
key=PIND & KEY;
if( key!=KEY)
b6: 82 99 sbic 0x10, 2 ; 16
b8: 08 c0 rjmp .+16 ; 0xca
{
DelayMs(30);
ba: 8e e1 ldi r24, 0x1E ; 30
bc: 90 e0 ldi r25, 0x00 ; 0
be: ce df rcall .-100 ; 0x5c
key=PIND & KEY;
c0: 80 b3 in r24, 0x10 ; 16
if(key!=KEY)
c2: c8 2f mov r28, r24
c4: c4 70 andi r28, 0x04 ; 4
c6: 82 ff sbrs r24, 2
c8: 04 c0 rjmp .+8 ; 0xd2
break;
}
DelayMs(1);
ca: 81 e0 ldi r24, 0x01 ; 1
cc: 90 e0 ldi r25, 0x00 ; 0
ce: c6 df rcall .-116 ; 0x5c
d0: f2 cf rjmp .-28 ; 0xb6
}
while((PIND & KEY)!=KEY)
DelayMs(10);
d2: 82 99 sbic 0x10, 2 ; 16
d4: 05 c0 rjmp .+10 ; 0xe0
d6: 8a e0 ldi r24, 0x0A ; 10
d8: 90 e0 ldi r25, 0x00 ; 0
da: c0 df rcall .-128 ; 0x5c
dc: 82 9b sbis 0x10, 2 ; 16
de: fb cf rjmp .-10 ; 0xd6
return key;
}
e0: 8c 2f mov r24, r28
e2: 99 27 eor r25, r25
e4: cf 91 pop r28
e6: 08 95 ret
000000e8 <main>:
int main(void)
{
e8: cf e5 ldi r28, 0x5F ; 95
ea: d4 e0 ldi r29, 0x04 ; 4
ec: de bf out 0x3e, r29 ; 62
ee: cd bf out 0x3d, r28 ; 61
uchar i;
//便能SCL、SDA引脚内部上拉电阻
DDRC=0;
f0: 14 ba out 0x14, r1 ; 20
PORTC=0X30;
f2: 80 e3 ldi r24, 0x30 ; 48
f4: 85 bb out 0x15, r24 ; 21
//
DDRD=0;
f6: 11 ba out 0x11, r1 ; 17
PORTD=0;
f8: 12 ba out 0x12, r1 ; 18
TWBR=73;
fa: 89 e4 ldi r24, 0x49 ; 73
fc: 80 b9 out 0x00, r24 ; 0
while(1)
{
WaitKeyDown();
fe: da df rcall .-76 ; 0xb4
twi_start();
100: bb df rcall .-138 ; 0x78
WAITPRINTDEBUG;
102: 84 e6 ldi r24, 0x64 ; 100
104: 90 e0 ldi r25, 0x00 ; 0
106: aa df rcall .-172 ; 0x5c
twi_writebyte(TWI_ADDRESS|TW_WRITE);
108: 82 e3 ldi r24, 0x32 ; 50
10a: bd df rcall .-134 ; 0x86
WAITPRINTDEBUG;
10c: 84 e6 ldi r24, 0x64 ; 100
10e: 90 e0 ldi r25, 0x00 ; 0
110: a5 df rcall .-182 ; 0x5c
for(i=0;i<10;i++)
112: c0 e0 ldi r28, 0x00 ; 0
{
twi_writebyte(i);
114: 8c 2f mov r24, r28
116: b7 df rcall .-146 ; 0x86
WAITPRINTDEBUG;
118: 84 e6 ldi r24, 0x64 ; 100
11a: 90 e0 ldi r25, 0x00 ; 0
11c: 9f df rcall .-194 ; 0x5c
11e: cf 5f subi r28, 0xFF ; 255
120: ca 30 cpi r28, 0x0A ; 10
122: c0 f3 brcs .-16 ; 0x114
}
twi_stop();
124: a6 df rcall .-180 ; 0x72
126: eb cf rjmp .-42 ; 0xfe
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -