📄 winctrler.lss
字号:
WinCtrler.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000000 00800100 0000056a 000005fe 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000056a 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000018 00800100 00800100 000005fe 2**0
ALLOC
3 .noinit 00000000 00800118 00800118 000005fe 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000005fe 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00000600 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 0000096c 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000028 00000000 00000000 000009f0 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000202 00000000 00000000 00000a18 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00000733 00000000 00000000 00000c1a 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000292 00000000 00000000 0000134d 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 00000712 00000000 00000000 000015df 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000002cc 00000000 00000000 00001cf1 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
2: cf c1 rjmp .+926 ; 0x3a2 <__vector_1>
4: 31 c0 rjmp .+98 ; 0x68 <__bad_interrupt>
6: 30 c0 rjmp .+96 ; 0x68 <__bad_interrupt>
8: 2f c0 rjmp .+94 ; 0x68 <__bad_interrupt>
a: 2e c0 rjmp .+92 ; 0x68 <__bad_interrupt>
c: 2d c0 rjmp .+90 ; 0x68 <__bad_interrupt>
e: 2c c0 rjmp .+88 ; 0x68 <__bad_interrupt>
10: 2b c0 rjmp .+86 ; 0x68 <__bad_interrupt>
12: 2a c0 rjmp .+84 ; 0x68 <__bad_interrupt>
14: e1 c1 rjmp .+962 ; 0x3d8 <__vector_10>
16: 28 c0 rjmp .+80 ; 0x68 <__bad_interrupt>
18: 27 c0 rjmp .+78 ; 0x68 <__bad_interrupt>
1a: 26 c0 rjmp .+76 ; 0x68 <__bad_interrupt>
1c: 25 c0 rjmp .+74 ; 0x68 <__bad_interrupt>
1e: 24 c0 rjmp .+72 ; 0x68 <__bad_interrupt>
20: a2 c1 rjmp .+836 ; 0x366 <__vector_16>
22: 22 c0 rjmp .+68 ; 0x68 <__bad_interrupt>
24: 21 c0 rjmp .+66 ; 0x68 <__bad_interrupt>
26: 20 c0 rjmp .+64 ; 0x68 <__bad_interrupt>
28: 1f c0 rjmp .+62 ; 0x68 <__bad_interrupt>
2a: 1e c0 rjmp .+60 ; 0x68 <__bad_interrupt>
2c: 1d c0 rjmp .+58 ; 0x68 <__bad_interrupt>
2e: 1c c0 rjmp .+56 ; 0x68 <__bad_interrupt>
30: 1b c0 rjmp .+54 ; 0x68 <__bad_interrupt>
32: 1a c0 rjmp .+52 ; 0x68 <__bad_interrupt>
00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d2 e0 ldi r29, 0x02 ; 2
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61
00000040 <__do_copy_data>:
40: 11 e0 ldi r17, 0x01 ; 1
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: ea e6 ldi r30, 0x6A ; 106
48: f5 e0 ldi r31, 0x05 ; 5
4a: 02 c0 rjmp .+4 ; 0x50 <.do_copy_data_start>
0000004c <.do_copy_data_loop>:
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
00000050 <.do_copy_data_start>:
50: a0 30 cpi r26, 0x00 ; 0
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c <.do_copy_data_loop>
00000056 <__do_clear_bss>:
56: 11 e0 ldi r17, 0x01 ; 1
58: a0 e0 ldi r26, 0x00 ; 0
5a: b1 e0 ldi r27, 0x01 ; 1
5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start>
0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1
00000060 <.do_clear_bss_start>:
60: a8 31 cpi r26, 0x18 ; 24
62: b1 07 cpc r27, r17
64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop>
66: c0 c0 rjmp .+384 ; 0x1e8 <main>
00000068 <__bad_interrupt>:
68: cb cf rjmp .-106 ; 0x0 <__vectors>
0000006a <portInit>:
void portInit(void)
{
// pull-up resistors are turned on
cbi(MCUCR, PUD);
6a: 85 b7 in r24, 0x35 ; 53
6c: 8f 7e andi r24, 0xEF ; 239
6e: 85 bf out 0x35, r24 ; 53
SetPortBSta();
70: 84 b1 in r24, 0x04 ; 4
72: 86 62 ori r24, 0x26 ; 38
74: 84 b9 out 0x04, r24 ; 4
76: 85 b1 in r24, 0x05 ; 5
78: 86 62 ori r24, 0x26 ; 38
7a: 85 b9 out 0x05, r24 ; 5
SetPortCSta();
7c: 87 b1 in r24, 0x07 ; 7
7e: 80 7c andi r24, 0xC0 ; 192
80: 82 60 ori r24, 0x02 ; 2
82: 87 b9 out 0x07, r24 ; 7
84: 88 b1 in r24, 0x08 ; 8
86: 8e 61 ori r24, 0x1E ; 30
88: 88 b9 out 0x08, r24 ; 8
SetPortDSta();
8a: 55 9a sbi 0x0a, 5 ; 10
8c: 5d 9a sbi 0x0b, 5 ; 11
MotoOff(); // 关闭电机
8e: 29 98 cbi 0x05, 1 ; 5
90: 00 00 nop
92: 00 00 nop
94: 2a 98 cbi 0x05, 2 ; 5
96: 00 00 nop
98: 00 00 nop
9a: 08 95 ret
0000009c <ExtInt0Config>:
}
void ExtInt0Config(void)
{
EICRA = EXTINT_LEVEL_LOW;
9c: 10 92 69 00 sts 0x0069, r1
DIS_EI0();
a0: 1d ba out 0x1d, r1 ; 29
a2: 08 95 ret
000000a4 <UARTSendByte>:
a4: 98 2f mov r25, r24
a6: 80 91 c0 00 lds r24, 0x00C0
aa: 85 ff sbrs r24, 5
ac: fc cf rjmp .-8 ; 0xa6 <UARTSendByte+0x2>
ae: 90 93 c6 00 sts 0x00C6, r25
b2: 08 95 ret
000000b4 <MotoDriver>:
b4: 99 27 eor r25, r25
b6: 82 30 cpi r24, 0x02 ; 2
b8: 91 05 cpc r25, r1
ba: a9 f0 breq .+42 ; 0xe6 <MotoDriver+0x32>
bc: 83 30 cpi r24, 0x03 ; 3
be: 91 05 cpc r25, r1
c0: 1c f4 brge .+6 ; 0xc8 <MotoDriver+0x14>
c2: 01 97 sbiw r24, 0x01 ; 1
c4: 21 f0 breq .+8 ; 0xce <MotoDriver+0x1a>
c6: 29 c0 rjmp .+82 ; 0x11a <MotoDriver+0x66>
c8: 04 97 sbiw r24, 0x04 ; 4
ca: c9 f0 breq .+50 ; 0xfe <MotoDriver+0x4a>
cc: 26 c0 rjmp .+76 ; 0x11a <MotoDriver+0x66>
ce: 80 91 04 01 lds r24, 0x0104
d2: 81 30 cpi r24, 0x01 ; 1
d4: 71 f1 breq .+92 ; 0x132 <MotoDriver+0x7e>
d6: 2a 98 cbi 0x05, 2 ; 5
d8: 00 00 nop
da: 00 00 nop
dc: 29 9a sbi 0x05, 1 ; 5
de: 00 00 nop
e0: 00 00 nop
e2: 81 e0 ldi r24, 0x01 ; 1
e4: 17 c0 rjmp .+46 ; 0x114 <MotoDriver+0x60>
e6: 80 91 04 01 lds r24, 0x0104
ea: 82 30 cpi r24, 0x02 ; 2
ec: 11 f1 breq .+68 ; 0x132 <MotoDriver+0x7e>
ee: 29 98 cbi 0x05, 1 ; 5
f0: 00 00 nop
f2: 00 00 nop
f4: 2a 9a sbi 0x05, 2 ; 5
f6: 00 00 nop
f8: 00 00 nop
fa: 82 e0 ldi r24, 0x02 ; 2
fc: 0b c0 rjmp .+22 ; 0x114 <MotoDriver+0x60>
fe: 80 91 04 01 lds r24, 0x0104
102: 84 30 cpi r24, 0x04 ; 4
104: b1 f0 breq .+44 ; 0x132 <MotoDriver+0x7e>
106: 29 98 cbi 0x05, 1 ; 5
108: 00 00 nop
10a: 00 00 nop
10c: 2a 98 cbi 0x05, 2 ; 5
10e: 00 00 nop
110: 00 00 nop
112: 84 e0 ldi r24, 0x04 ; 4
114: 80 93 04 01 sts 0x0104, r24
118: 0c c0 rjmp .+24 ; 0x132 <MotoDriver+0x7e>
11a: 80 91 04 01 lds r24, 0x0104
11e: 88 23 and r24, r24
120: 41 f0 breq .+16 ; 0x132 <MotoDriver+0x7e>
122: 29 98 cbi 0x05, 1 ; 5
124: 00 00 nop
126: 00 00 nop
128: 2a 98 cbi 0x05, 2 ; 5
12a: 00 00 nop
12c: 00 00 nop
12e: 10 92 04 01 sts 0x0104, r1
132: 80 e0 ldi r24, 0x00 ; 0
134: 90 e0 ldi r25, 0x00 ; 0
136: 08 95 ret
00000138 <EnPowerDownMode>:
}
EXTINT_INTERRUPT_HANDLER(SIG_INTERRUPT0)
{
/* asm volatile("nop");
DIS_EI0();
DisableSosc();
SMCR &= ~SLEEP_SE;
OpenIRPower();
EnSleepFlag = 0;*/
//WakeForSleepTimer = 2;
}
void EnPowerDownMode(void)
{
EnSleepFlag = 0;
138: 80 91 08 01 lds r24, 0x0108
13c: 8b 7f andi r24, 0xFB ; 251
13e: 80 93 08 01 sts 0x0108, r24
CloseIRPower();
142: 5d 9a sbi 0x0b, 5 ; 11
EnableSosc();
144: 41 9a sbi 0x08, 1 ; 8
EN_EI0();
146: 81 e0 ldi r24, 0x01 ; 1
148: 8d bb out 0x1d, r24 ; 29
SMCR = (SLEEP_MODE_SET | SLEEP_SE);
14a: 85 e0 ldi r24, 0x05 ; 5
14c: 83 bf out 0x33, r24 ; 51
asm volatile("sleep");
14e: 88 95 sleep
DIS_EI0();
150: 1d ba out 0x1d, r1 ; 29
DisableSosc();
152: 41 98 cbi 0x08, 1 ; 8
SMCR &= ~SLEEP_SE;
154: 83 b7 in r24, 0x33 ; 51
156: 8e 7f andi r24, 0xFE ; 254
158: 83 bf out 0x33, r24 ; 51
OpenIRPower();
15a: 5d 98 cbi 0x0b, 5 ; 11
EnSleepFlag = 0;
15c: 80 91 08 01 lds r24, 0x0108
160: 8b 7f andi r24, 0xFB ; 251
162: 80 93 08 01 sts 0x0108, r24
WakeForSleepTimer = 2;
166: 82 e0 ldi r24, 0x02 ; 2
168: 80 93 05 01 sts 0x0105, r24
UARTSendByte(0x44);
16c: 84 e4 ldi r24, 0x44 ; 68
16e: 9a df rcall .-204 ; 0xa4 <UARTSendByte>
170: 08 95 ret
00000172 <uartSetBaudRate>:
172: dc 01 movw r26, r24
174: cb 01 movw r24, r22
176: 73 e0 ldi r23, 0x03 ; 3
178: 88 0f add r24, r24
17a: 99 1f adc r25, r25
17c: aa 1f adc r26, r26
17e: bb 1f adc r27, r27
180: 7a 95 dec r23
182: d1 f7 brne .-12 ; 0x178 <uartSetBaudRate+0x6>
184: 9c 01 movw r18, r24
186: ad 01 movw r20, r26
188: 22 0f add r18, r18
18a: 33 1f adc r19, r19
18c: 44 1f adc r20, r20
18e: 55 1f adc r21, r21
190: 80 5c subi r24, 0xC0 ; 192
192: 9d 4b sbci r25, 0xBD ; 189
194: a0 4f sbci r26, 0xF0 ; 240
196: bf 4f sbci r27, 0xFF ; 255
198: bc 01 movw r22, r24
19a: cd 01 movw r24, r26
19c: c4 d1 rcall .+904 ; 0x526 <__udivmodsi4>
19e: da 01 movw r26, r20
1a0: c9 01 movw r24, r18
1a2: 01 97 sbiw r24, 0x01 ; 1
1a4: 80 93 c4 00 sts 0x00C4, r24
1a8: 89 2f mov r24, r25
1aa: 99 27 eor r25, r25
1ac: 80 93 c5 00 sts 0x00C5, r24
1b0: 08 95 ret
000001b2 <UARTInit>:
1b2: 60 ec ldi r22, 0xC0 ; 192
1b4: 72 e1 ldi r23, 0x12 ; 18
1b6: 80 e0 ldi r24, 0x00 ; 0
1b8: 90 e0 ldi r25, 0x00 ; 0
1ba: db df rcall .-74 ; 0x172 <uartSetBaudRate>
1bc: 88 e1 ldi r24, 0x18 ; 24
1be: 80 93 c1 00 sts 0x00C1, r24
1c2: 86 e0 ldi r24, 0x06 ; 6
1c4: 80 93 c2 00 sts 0x00C2, r24
1c8: 08 95 ret
000001ca <timer0SetPrescaler>:
1ca: 95 b5 in r25, 0x25 ; 37
1cc: 98 7f andi r25, 0xF8 ; 248
1ce: 98 2b or r25, r24
1d0: 95 bd out 0x25, r25 ; 37
1d2: 08 95 ret
000001d4 <timer0Init>:
1d4: 85 e0 ldi r24, 0x05 ; 5
1d6: f9 df rcall .-14 ; 0x1ca <timer0SetPrescaler>
1d8: 8f ef ldi r24, 0xFF ; 255
1da: 86 bd out 0x26, r24 ; 38
1dc: 80 91 6e 00 lds r24, 0x006E
1e0: 81 60 ori r24, 0x01 ; 1
1e2: 80 93 6e 00 sts 0x006E, r24
1e6: 08 95 ret
000001e8 <main>:
1e8: cf ef ldi r28, 0xFF ; 255
1ea: d2 e0 ldi r29, 0x02 ; 2
1ec: de bf out 0x3e, r29 ; 62
1ee: cd bf out 0x3d, r28 ; 61
1f0: 3c df rcall .-392 ; 0x6a <portInit>
1f2: e9 d0 rcall .+466 ; 0x3c6 <ICEInit>
1f4: ef df rcall .-34 ; 0x1d4 <timer0Init>
1f6: dd df rcall .-70 ; 0x1b2 <UARTInit>
1f8: 51 df rcall .-350 ; 0x9c <ExtInt0Config>
1fa: 80 91 08 01 lds r24, 0x0108
1fe: 8e 7f andi r24, 0xFE ; 254
200: 80 93 08 01 sts 0x0108, r24
204: 10 92 07 01 sts 0x0107, r1
208: 80 91 08 01 lds r24, 0x0108
20c: 8d 7f andi r24, 0xFD ; 253
20e: 80 93 08 01 sts 0x0108, r24
212: 10 92 09 01 sts 0x0109, r1
216: 10 92 04 01 sts 0x0104, r1
21a: 80 91 08 01 lds r24, 0x0108
21e: 8b 7f andi r24, 0xFB ; 251
220: 80 93 08 01 sts 0x0108, r24
224: 83 e0 ldi r24, 0x03 ; 3
226: 80 93 05 01 sts 0x0105, r24
22a: 35 9b sbis 0x06, 5 ; 6
22c: 03 c0 rjmp .+6 ; 0x234 <main+0x4c>
22e: 10 92 03 01 sts 0x0103, r1
232: 03 c0 rjmp .+6 ; 0x23a <main+0x52>
234: 82 e0 ldi r24, 0x02 ; 2
236: 80 93 03 01 sts 0x0103, r24
23a: 5d 98 cbi 0x0b, 5 ; 11
23c: 41 98 cbi 0x08, 1 ; 8
23e: 78 94 sei
240: 8a ea ldi r24, 0xAA ; 170
242: 30 df rcall .-416 ; 0xa4 <UARTSendByte>
244: 85 e5 ldi r24, 0x55 ; 85
246: 2e df rcall .-420 ; 0xa4 <UARTSendByte>
248: 51 d1 rcall .+674 ; 0x4ec <GetIRKey>
24a: c8 2f mov r28, r24
24c: 8f 3f cpi r24, 0xFF ; 255
24e: d1 f0 breq .+52 ; 0x284 <main+0x9c>
250: 29 df rcall .-430 ; 0xa4 <UARTSendByte>
252: cf 5f subi r28, 0xFF ; 255
254: 4c 2f mov r20, r28
256: 55 27 eor r21, r21
258: 9a 01 movw r18, r20
25a: 22 70 andi r18, 0x02 ; 2
25c: 30 70 andi r19, 0x00 ; 0
25e: 80 91 03 01 lds r24, 0x0103
262: 99 27 eor r25, r25
264: 28 17 cp r18, r24
266: 39 07 cpc r19, r25
268: 11 f5 brne .+68 ; 0x2ae <main+0xc6>
26a: 40 fd sbrc r20, 0
26c: 02 c0 rjmp .+4 ; 0x272 <main+0x8a>
26e: 81 e0 ldi r24, 0x01 ; 1
270: 03 c0 rjmp .+6 ; 0x278 <main+0x90>
272: 40 ff sbrs r20, 0
274: 03 c0 rjmp .+6 ; 0x27c <main+0x94>
276: 82 e0 ldi r24, 0x02 ; 2
278: 80 93 09 01 sts 0x0109, r24
27c: 80 91 08 01 lds r24, 0x0108
280: 82 60 ori r24, 0x02 ; 2
282: 13 c0 rjmp .+38 ; 0x2aa <main+0xc2>
284: 80 91 08 01 lds r24, 0x0108
288: 81 ff sbrs r24, 1
28a: 11 c0 rjmp .+34 ; 0x2ae <main+0xc6>
28c: 80 91 06 01 lds r24, 0x0106
290: 88 23 and r24, r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -