📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000016e 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 0000016e 00000202 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000001 00800060 00800060 00000202 2**0
ALLOC
3 .noinit 00000000 00800061 00800061 00000202 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000202 2**0
CONTENTS
5 .stab 00000540 00000000 00000000 00000204 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000690 00000000 00000000 00000744 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0b c0 rjmp .+22 ; 0x18
2: 2e c0 rjmp .+92 ; 0x60
4: 2d c0 rjmp .+90 ; 0x60
6: 2c c0 rjmp .+88 ; 0x60
8: 2b c0 rjmp .+86 ; 0x60
a: 2a c0 rjmp .+84 ; 0x60
c: 29 c0 rjmp .+82 ; 0x60
e: 28 c0 rjmp .+80 ; 0x60
10: 27 c0 rjmp .+78 ; 0x60
12: 26 c0 rjmp .+76 ; 0x60
14: 25 c0 rjmp .+74 ; 0x60
00000016 <__ctors_start>:
16: ab 00 .word 0x00ab ; ????
00000018 <__ctors_end>:
18: 11 24 eor r1, r1
1a: 1f be out 0x3f, r1 ; 63
1c: cf ed ldi r28, 0xDF ; 223
1e: cd bf out 0x3d, r28 ; 61
00000020 <__do_copy_data>:
20: 10 e0 ldi r17, 0x00 ; 0
22: a0 e6 ldi r26, 0x60 ; 96
24: b0 e0 ldi r27, 0x00 ; 0
26: ee e6 ldi r30, 0x6E ; 110
28: f1 e0 ldi r31, 0x01 ; 1
2a: 03 c0 rjmp .+6 ; 0x32
0000002c <.do_copy_data_loop>:
2c: c8 95 lpm
2e: 31 96 adiw r30, 0x01 ; 1
30: 0d 92 st X+, r0
00000032 <.do_copy_data_start>:
32: a0 36 cpi r26, 0x60 ; 96
34: b1 07 cpc r27, r17
36: d1 f7 brne .-12 ; 0x2c
00000038 <__do_clear_bss>:
38: 10 e0 ldi r17, 0x00 ; 0
3a: a0 e6 ldi r26, 0x60 ; 96
3c: b0 e0 ldi r27, 0x00 ; 0
3e: 01 c0 rjmp .+2 ; 0x42
00000040 <.do_clear_bss_loop>:
40: 1d 92 st X+, r1
00000042 <.do_clear_bss_start>:
42: a1 36 cpi r26, 0x61 ; 97
44: b1 07 cpc r27, r17
46: e1 f7 brne .-8 ; 0x40
00000048 <__do_global_ctors>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: c8 e1 ldi r28, 0x18 ; 24
4c: d0 e0 ldi r29, 0x00 ; 0
4e: 04 c0 rjmp .+8 ; 0x58
00000050 <.do_global_ctors_loop>:
50: 22 97 sbiw r28, 0x02 ; 2
52: fd 2f mov r31, r29
54: ec 2f mov r30, r28
56: 85 d0 rcall .+266 ; 0x162
00000058 <.do_global_ctors_start>:
58: c6 31 cpi r28, 0x16 ; 22
5a: d1 07 cpc r29, r17
5c: c9 f7 brne .-14 ; 0x50
5e: 58 c0 rjmp .+176 ; 0x110
00000060 <__bad_interrupt>:
60: cf cf rjmp .-98 ; 0x0
00000062 <_ZN8CControlC2Ev>:
void RunMotor(uchar direction);
};
CControl::CControl()
{
62: f9 2f mov r31, r25
64: e8 2f mov r30, r24
m_bCounter=0;
66: 10 82 st Z, r1
68: 08 95 ret
0000006a <_ZN8CControlC1Ev>:
6a: f9 2f mov r31, r25
6c: e8 2f mov r30, r24
6e: 10 82 st Z, r1
70: 08 95 ret
00000072 <_ZN8CControl7DelayMsEj>:
}
void CControl::RunMotor(uchar direction)
{
if(direction==1)
{
SET_GRN_LED;
CLR_RED_LED;
}
else if(direction==2)
{
CLR_GRN_LED;
SET_RED_LED;
}
else
{
CLR_GRN_LED;
CLR_RED_LED;
}
for(uchar i=0;i<m_bCounter;i++)
{
while((PINB&_BV(0))==1);
while((PINB&_BV(0))==0);
if(direction==1)
{
PORTB|=_BV(PB3);
DelayMs(2);
PORTB&=~_BV(PB3);
}
else if(direction==2)
{
PORTB|=_BV(PB2);
DelayMs(2);
PORTB&=~_BV(PB2);
}
else
PORTB=0;
}
}
void CControl::DelayMs(uint ms)
{
uint k=0;
for(k=0;k<ms;k++)
72: 61 15 cp r22, r1
74: 71 05 cpc r23, r1
76: 39 f0 breq .+14 ; 0x86
78: 88 ee ldi r24, 0xE8 ; 232
7a: 93 e0 ldi r25, 0x03 ; 3
7c: 01 97 sbiw r24, 0x01 ; 1
7e: f1 f7 brne .-4 ; 0x7c
80: 61 50 subi r22, 0x01 ; 1
82: 70 40 sbci r23, 0x00 ; 0
84: f6 cf rjmp .-20 ; 0x72
86: 08 95 ret
00000088 <_ZN8CControl8RunMotorEh>:
88: 0f 93 push r16
8a: 1f 93 push r17
8c: cf 93 push r28
8e: df 93 push r29
90: d9 2f mov r29, r25
92: c8 2f mov r28, r24
94: 16 2f mov r17, r22
96: 61 30 cpi r22, 0x01 ; 1
98: 11 f4 brne .+4 ; 0x9e
9a: 94 9a sbi 0x12, 4 ; 18
9c: 06 c0 rjmp .+12 ; 0xaa
9e: 62 30 cpi r22, 0x02 ; 2
a0: 19 f4 brne .+6 ; 0xa8
a2: 94 98 cbi 0x12, 4 ; 18
a4: 95 9a sbi 0x12, 5 ; 18
a6: 02 c0 rjmp .+4 ; 0xac
a8: 94 98 cbi 0x12, 4 ; 18
aa: 95 98 cbi 0x12, 5 ; 18
ac: 00 e0 ldi r16, 0x00 ; 0
ae: 88 81 ld r24, Y
b0: 08 17 cp r16, r24
b2: 48 f5 brcc .+82 ; 0x106
b4: 86 b3 in r24, 0x16 ; 22
b6: 99 27 eor r25, r25
b8: 81 70 andi r24, 0x01 ; 1
ba: 90 70 andi r25, 0x00 ; 0
bc: 88 23 and r24, r24
be: d1 f7 brne .-12 ; 0xb4
c0: 21 e0 ldi r18, 0x01 ; 1
c2: 30 e0 ldi r19, 0x00 ; 0
c4: 86 b3 in r24, 0x16 ; 22
c6: 99 27 eor r25, r25
c8: 82 27 eor r24, r18
ca: 93 27 eor r25, r19
cc: 81 70 andi r24, 0x01 ; 1
ce: 90 70 andi r25, 0x00 ; 0
d0: 88 23 and r24, r24
d2: c1 f7 brne .-16 ; 0xc4
d4: 11 30 cpi r17, 0x01 ; 1
d6: 41 f4 brne .+16 ; 0xe8
d8: c3 9a sbi 0x18, 3 ; 24
da: 62 e0 ldi r22, 0x02 ; 2
dc: 70 e0 ldi r23, 0x00 ; 0
de: 8c 2f mov r24, r28
e0: 9d 2f mov r25, r29
e2: c7 df rcall .-114 ; 0x72
e4: c3 98 cbi 0x18, 3 ; 24
e6: 0b c0 rjmp .+22 ; 0xfe
e8: 12 30 cpi r17, 0x02 ; 2
ea: 41 f4 brne .+16 ; 0xfc
ec: c2 9a sbi 0x18, 2 ; 24
ee: 62 e0 ldi r22, 0x02 ; 2
f0: 70 e0 ldi r23, 0x00 ; 0
f2: 8c 2f mov r24, r28
f4: 9d 2f mov r25, r29
f6: bd df rcall .-134 ; 0x72
f8: c2 98 cbi 0x18, 2 ; 24
fa: 01 c0 rjmp .+2 ; 0xfe
fc: 88 bb out 0x18, r24 ; 24
fe: 0f 5f subi r16, 0xFF ; 255
100: 88 81 ld r24, Y
102: 08 17 cp r16, r24
104: b8 f2 brcs .-82 ; 0xb4
106: df 91 pop r29
108: cf 91 pop r28
10a: 1f 91 pop r17
10c: 0f 91 pop r16
10e: 08 95 ret
00000110 <main>:
_delay_loop_2(1000);
}
CControl g_oMotorCtl;
int main(void)
{
110: cf ed ldi r28, 0xDF ; 223
112: d0 e0 ldi r29, 0x00 ; 0
114: de bf out 0x3e, r29 ; 62
116: cd bf out 0x3d, r28 ; 61
DDRD=_BV(4)|_BV(5); //发光管I/O初始化
118: 80 e3 ldi r24, 0x30 ; 48
11a: 81 bb out 0x11, r24 ; 17
PORTD=0X00;
11c: 12 ba out 0x12, r1 ; 18
PORTB=0; //控制口I/O初始化
11e: 18 ba out 0x18, r1 ; 24
DDRB=_BV(PB3)|_BV(PB2);
120: 8c e0 ldi r24, 0x0C ; 12
122: 87 bb out 0x17, r24 ; 23
g_oMotorCtl.m_bCounter=200;
124: 88 ec ldi r24, 0xC8 ; 200
126: 80 93 60 00 sts 0x0060, r24
// SET_GRN_LED;
g_oMotorCtl.DelayMs(2000);
12a: 60 ed ldi r22, 0xD0 ; 208
12c: 77 e0 ldi r23, 0x07 ; 7
12e: 80 e6 ldi r24, 0x60 ; 96
130: 90 e0 ldi r25, 0x00 ; 0
132: 9f df rcall .-194 ; 0x72
while(1)
{
g_oMotorCtl.RunMotor(1);
134: 61 e0 ldi r22, 0x01 ; 1
136: 80 e6 ldi r24, 0x60 ; 96
138: 90 e0 ldi r25, 0x00 ; 0
13a: a6 df rcall .-180 ; 0x88
g_oMotorCtl.RunMotor(0);
13c: 60 e0 ldi r22, 0x00 ; 0
13e: 80 e6 ldi r24, 0x60 ; 96
140: 90 e0 ldi r25, 0x00 ; 0
142: a2 df rcall .-188 ; 0x88
g_oMotorCtl.RunMotor(2);
144: 62 e0 ldi r22, 0x02 ; 2
146: 80 e6 ldi r24, 0x60 ; 96
148: 90 e0 ldi r25, 0x00 ; 0
14a: 9e df rcall .-196 ; 0x88
g_oMotorCtl.RunMotor(0);
14c: 60 e0 ldi r22, 0x00 ; 0
14e: 80 e6 ldi r24, 0x60 ; 96
150: 90 e0 ldi r25, 0x00 ; 0
152: 9a df rcall .-204 ; 0x88
154: ef cf rjmp .-34 ; 0x134
00000156 <_GLOBAL__I__ZN8CControlC2Ev>:
156: 80 e6 ldi r24, 0x60 ; 96
158: 90 e0 ldi r25, 0x00 ; 0
15a: 87 df rcall .-242 ; 0x6a
15c: 08 95 ret
0000015e <__tablejump2__>:
15e: ee 0f add r30, r30
160: ff 1f adc r31, r31
00000162 <__tablejump__>:
162: c8 95 lpm
164: 31 96 adiw r30, 0x01 ; 1
166: 0f 92 push r0
168: c8 95 lpm
16a: 0f 92 push r0
16c: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -