📄 7455.lss
字号:
7455.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000516 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000002e 00800060 00000516 0000058a 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000000f 0080008e 00000544 000005b8 2**0
ALLOC
3 .debug_aranges 00000020 00000000 00000000 000005b8 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 0000011a 00000000 00000000 000005d8 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 000006ad 00000000 00000000 000006f2 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 0000020a 00000000 00000000 00000d9f 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 000007ca 00000000 00000000 00000fa9 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000130 00000000 00000000 00001774 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000001af 00000000 00000000 000018a4 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 0000010f 00000000 00000000 00001a53 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 ; 0x54 <__ctors_end>
4: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
8: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
10: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
14: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
18: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
1c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
20: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
24: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
28: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
2c: 0c 94 5b 01 jmp 0x2b6 ; 0x2b6 <__vector_11>
30: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
34: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
38: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
3c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
40: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
44: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
48: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
4c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
50: 0c 94 47 00 jmp 0x8e ; 0x8e <__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: e6 e1 ldi r30, 0x16 ; 22
68: f5 e0 ldi r31, 0x05 ; 5
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 38 cpi r26, 0x8E ; 142
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 e8 ldi r26, 0x8E ; 142
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: ad 39 cpi r26, 0x9D ; 157
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0e 94 78 02 call 0x4f0 ; 0x4f0 <main>
8a: 0c 94 89 02 jmp 0x512 ; 0x512 <_exit>
0000008e <__bad_interrupt>:
8e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
00000092 <usart_init>:
extern void twi_read_8(uchar adress);
extern void init_mma7455(void);
//串口通信初始化
void usart_init(void)
{
92: 1a b8 out 0x0a, r1 ; 10
UCSRB = 0x00;//禁止中断
UCSRA = 0x00;
94: 1b b8 out 0x0b, r1 ; 11
UCSRC = BIT(URSEL) | 0x06;
96: 86 e8 ldi r24, 0x86 ; 134
98: 80 bd out 0x20, r24 ; 32
UBRRL = 0x0C;
9a: 8c e0 ldi r24, 0x0C ; 12
9c: 89 b9 out 0x09, r24 ; 9
UBRRH = 0x00;
9e: 10 bc out 0x20, r1 ; 32
UCSRB = 0x98;
a0: 88 e9 ldi r24, 0x98 ; 152
a2: 8a b9 out 0x0a, r24 ; 10
}
a4: 08 95 ret
000000a6 <twi_init>:
extern uchar reg;
//TWI初始化函数
void twi_init(void)
{
a6: 16 be out 0x36, r1 ; 54
TWCR = 0x00; //禁止TWI
TWBR = 0x00; //设置比特率
a8: 10 b8 out 0x00, r1 ; 0
TWAR = 0x3A; //设置从机地址
aa: 8a e3 ldi r24, 0x3A ; 58
ac: 82 b9 out 0x02, r24 ; 2
TWSR|= 0x00; //设置分频因子
ae: 81 b1 in r24, 0x01 ; 1
b0: 81 b9 out 0x01, r24 ; 1
TWCR = 0x44; //启动TWI
b2: 84 e4 ldi r24, 0x44 ; 68
b4: 86 bf out 0x36, r24 ; 54
}
b6: 08 95 ret
000000b8 <twi_start>:
uchar twi_start(void)
{
b8: 84 ea ldi r24, 0xA4 ; 164
ba: 86 bf out 0x36, r24 ; 54
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
bc: 06 b6 in r0, 0x36 ; 54
be: 07 fe sbrs r0, 7
c0: fd cf rjmp .-6 ; 0xbc <twi_start+0x4>
if((TWSR & 0xf8)==TW_START)
c2: 81 b1 in r24, 0x01 ; 1
c4: 88 7f andi r24, 0xF8 ; 248
c6: 88 30 cpi r24, 0x08 ; 8
c8: 11 f4 brne .+4 ; 0xce <twi_start+0x16>
ca: 81 e0 ldi r24, 0x01 ; 1
cc: 08 95 ret
{
return 1;
}
else if((TWSR & 0xf8)==TW_REP_START)
ce: 81 b1 in r24, 0x01 ; 1
d0: 88 7f andi r24, 0xF8 ; 248
d2: 80 31 cpi r24, 0x10 ; 16
d4: 11 f0 breq .+4 ; 0xda <twi_start+0x22>
d6: 80 e0 ldi r24, 0x00 ; 0
d8: 08 95 ret
da: 82 e0 ldi r24, 0x02 ; 2
}
else
{
return 0;
}
}
dc: 08 95 ret
000000de <twi_stop>:
//停止通信,发送STOP信号
void twi_stop(void)
{
de: 84 e9 ldi r24, 0x94 ; 148
e0: 86 bf out 0x36, r24 ; 54
TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN);
}
e2: 08 95 ret
000000e4 <twi_to_write>:
//返回值: 1表示成功,0表示失败
uchar twi_to_write(void)
{
e4: 82 b1 in r24, 0x02 ; 2
e6: 83 b9 out 0x03, r24 ; 3
TWDR=TWAR;
TWCR = (1<<TWINT) | (1<<TWEN);
e8: 84 e8 ldi r24, 0x84 ; 132
ea: 86 bf out 0x36, r24 ; 54
while (!(TWCR & (1<<TWINT)));
ec: 06 b6 in r0, 0x36 ; 54
ee: 07 fe sbrs r0, 7
f0: fd cf rjmp .-6 ; 0xec <twi_to_write+0x8>
if((TWSR & 0xf8)==TW_MT_SLA_ACK)
f2: 81 b1 in r24, 0x01 ; 1
f4: 90 e0 ldi r25, 0x00 ; 0
f6: 88 7f andi r24, 0xF8 ; 248
f8: 88 31 cpi r24, 0x18 ; 24
fa: 09 f4 brne .+2 ; 0xfe <twi_to_write+0x1a>
fc: 91 e0 ldi r25, 0x01 ; 1
}
else
{
return 0;
}
}
fe: 89 2f mov r24, r25
100: 08 95 ret
00000102 <twi_to_read>:
//返回值: 1表示成功,0表示失败
uchar twi_to_read(void)
{
102: 82 b1 in r24, 0x02 ; 2
104: 8f 5f subi r24, 0xFF ; 255
106: 83 b9 out 0x03, r24 ; 3
TWDR=TWAR+1;
TWCR = (1<<TWINT) | (1<<TWEN);
108: 84 e8 ldi r24, 0x84 ; 132
10a: 86 bf out 0x36, r24 ; 54
while (!(TWCR & (1<<TWINT)));
10c: 06 b6 in r0, 0x36 ; 54
10e: 07 fe sbrs r0, 7
110: fd cf rjmp .-6 ; 0x10c <twi_to_read+0xa>
if((TWSR & 0xf8)==TW_MR_SLA_ACK )
112: 81 b1 in r24, 0x01 ; 1
114: 90 e0 ldi r25, 0x00 ; 0
116: 88 7f andi r24, 0xF8 ; 248
118: 80 34 cpi r24, 0x40 ; 64
11a: 09 f4 brne .+2 ; 0x11e <twi_to_read+0x1c>
11c: 91 e0 ldi r25, 0x01 ; 1
}
else
{
return 0;
}
}
11e: 89 2f mov r24, r25
120: 08 95 ret
00000122 <twi_send>:
//返回值: 0表示失败,1表示接到ACK,2表示接NOT ACK
uchar twi_send(uchar data)
{
122: 83 b9 out 0x03, r24 ; 3
TWDR=data;
TWCR = (1<<TWINT) | (1<<TWEN);
124: 84 e8 ldi r24, 0x84 ; 132
126: 86 bf out 0x36, r24 ; 54
while (!(TWCR & (1<<TWINT)));
128: 06 b6 in r0, 0x36 ; 54
12a: 07 fe sbrs r0, 7
12c: fd cf rjmp .-6 ; 0x128 <twi_send+0x6>
if ((TWSR & 0xF8) ==TW_MT_DATA_ACK)
12e: 81 b1 in r24, 0x01 ; 1
130: 88 7f andi r24, 0xF8 ; 248
132: 88 32 cpi r24, 0x28 ; 40
134: 11 f4 brne .+4 ; 0x13a <twi_send+0x18>
136: 81 e0 ldi r24, 0x01 ; 1
138: 08 95 ret
{
return 1;
}
else if ((TWSR & 0xF8) ==TW_MT_DATA_NACK)
13a: 81 b1 in r24, 0x01 ; 1
13c: 88 7f andi r24, 0xF8 ; 248
13e: 80 33 cpi r24, 0x30 ; 48
140: 11 f0 breq .+4 ; 0x146 <twi_send+0x24>
142: 80 e0 ldi r24, 0x00 ; 0
144: 08 95 ret
146: 82 e0 ldi r24, 0x02 ; 2
}
else
{
return 0;
}
}
148: 08 95 ret
0000014a <twi_receive>:
//返回值: 0表示失败,1表示接到ACK,2表示接NOT ACK
uchar twi_receive(void)
{
14a: 84 e8 ldi r24, 0x84 ; 132
14c: 86 bf out 0x36, r24 ; 54
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
14e: 06 b6 in r0, 0x36 ; 54
150: 07 fe sbrs r0, 7
152: fd cf rjmp .-6 ; 0x14e <twi_receive+0x4>
a=TWDR;
154: 83 b1 in r24, 0x03 ; 3
156: 80 93 8e 00 sts 0x008E, r24
if ((TWSR & 0xF8) ==TW_MR_DATA_ACK)
15a: 81 b1 in r24, 0x01 ; 1
15c: 88 7f andi r24, 0xF8 ; 248
15e: 80 35 cpi r24, 0x50 ; 80
160: 11 f4 brne .+4 ; 0x166 <twi_receive+0x1c>
162: 81 e0 ldi r24, 0x01 ; 1
164: 08 95 ret
{
return 1;
}
else if ((TWSR & 0xF8) ==TW_MR_DATA_NACK)
166: 81 b1 in r24, 0x01 ; 1
168: 88 7f andi r24, 0xF8 ; 248
16a: 88 35 cpi r24, 0x58 ; 88
16c: 11 f0 breq .+4 ; 0x172 <twi_receive+0x28>
16e: 80 e0 ldi r24, 0x00 ; 0
170: 08 95 ret
172: 82 e0 ldi r24, 0x02 ; 2
}
else
{
return 0;
}
}
174: 08 95 ret
00000176 <twi_write_8>:
void twi_write_8(uchar adress,uchar com)
{
176: 28 2f mov r18, r24
TWCR = 0x44; //启动TWI
}
uchar twi_start(void)
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
178: 94 ea ldi r25, 0xA4 ; 164
17a: 96 bf out 0x36, r25 ; 54
while (!(TWCR & (1<<TWINT)));
17c: 06 b6 in r0, 0x36 ; 54
17e: 07 fe sbrs r0, 7
180: fd cf rjmp .-6 ; 0x17c <twi_write_8+0x6>
if((TWSR & 0xf8)==TW_START)
182: 81 b1 in r24, 0x01 ; 1
184: 88 7f andi r24, 0xF8 ; 248
186: 88 30 cpi r24, 0x08 ; 8
188: 21 f0 breq .+8 ; 0x192 <twi_write_8+0x1c>
{
return 1;
}
else if((TWSR & 0xf8)==TW_REP_START)
18a: 81 b1 in r24, 0x01 ; 1
18c: 88 7f andi r24, 0xF8 ; 248
18e: 80 31 cpi r24, 0x10 ; 16
190: a1 f7 brne .-24 ; 0x17a <twi_write_8+0x4>
//返回值: 1表示成功,0表示失败
uchar twi_to_write(void)
{
TWDR=TWAR;
TWCR = (1<<TWINT) | (1<<TWEN);
192: 94 e8 ldi r25, 0x84 ; 132
}
//返回值: 1表示成功,0表示失败
uchar twi_to_write(void)
{
TWDR=TWAR;
194: 82 b1 in r24, 0x02 ; 2
196: 83 b9 out 0x03, r24 ; 3
TWCR = (1<<TWINT) | (1<<TWEN);
198: 96 bf out 0x36, r25 ; 54
while (!(TWCR & (1<<TWINT)));
19a: 06 b6 in r0, 0x36 ; 54
19c: 07 fe sbrs r0, 7
19e: fd cf rjmp .-6 ; 0x19a <twi_write_8+0x24>
if((TWSR & 0xf8)==TW_MT_SLA_ACK)
1a0: 81 b1 in r24, 0x01 ; 1
1a2: 88 7f andi r24, 0xF8 ; 248
1a4: 88 31 cpi r24, 0x18 ; 24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -