📄 pwm32.lss
字号:
Pwm32.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000a 00800100 000033d0 00003464 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000033d0 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000001aa 0080010a 0080010a 0000346e 2**0
ALLOC
3 .noinit 00000000 008002b4 008002b4 0000346e 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000346e 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00003470 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 000037dc 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 0000012c 00000000 00000000 00003860 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 0000066a 00000000 00000000 0000398c 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00002a3b 00000000 00000000 00003ff6 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000a3f 00000000 00000000 00006a31 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000019ac 00000000 00000000 00007470 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 0000008f 00000000 00000000 00008e1c 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2e 00 jmp 0x5c <__ctors_end>
4: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
8: 0c 94 b9 05 jmp 0xb72 <__vector_2>
c: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
10: 0c 94 83 05 jmp 0xb06 <__vector_4>
14: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
18: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
1c: 0c 94 c4 04 jmp 0x988 <__vector_7>
20: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
24: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
28: 0c 94 33 04 jmp 0x866 <__vector_10>
2c: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
30: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
34: 0c 94 9a 01 jmp 0x334 <__vector_13>
38: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
3c: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
40: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
44: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
48: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
4c: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
50: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
54: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
58: 0c 94 49 00 jmp 0x92 <__bad_interrupt>
0000005c <__ctors_end>:
5c: 11 24 eor r1, r1
5e: 1f be out 0x3f, r1 ; 63
60: cf ef ldi r28, 0xFF ; 255
62: d4 e0 ldi r29, 0x04 ; 4
64: de bf out 0x3e, r29 ; 62
66: cd bf out 0x3d, r28 ; 61
00000068 <__do_copy_data>:
68: 11 e0 ldi r17, 0x01 ; 1
6a: a0 e0 ldi r26, 0x00 ; 0
6c: b1 e0 ldi r27, 0x01 ; 1
6e: e0 ed ldi r30, 0xD0 ; 208
70: f3 e3 ldi r31, 0x33 ; 51
72: 02 c0 rjmp .+4 ; 0x78 <.do_copy_data_start>
00000074 <.do_copy_data_loop>:
74: 05 90 lpm r0, Z+
76: 0d 92 st X+, r0
00000078 <.do_copy_data_start>:
78: aa 30 cpi r26, 0x0A ; 10
7a: b1 07 cpc r27, r17
7c: d9 f7 brne .-10 ; 0x74 <.do_copy_data_loop>
0000007e <__do_clear_bss>:
7e: 12 e0 ldi r17, 0x02 ; 2
80: aa e0 ldi r26, 0x0A ; 10
82: b1 e0 ldi r27, 0x01 ; 1
84: 01 c0 rjmp .+2 ; 0x88 <.do_clear_bss_start>
00000086 <.do_clear_bss_loop>:
86: 1d 92 st X+, r1
00000088 <.do_clear_bss_start>:
88: a4 3b cpi r26, 0xB4 ; 180
8a: b1 07 cpc r27, r17
8c: e1 f7 brne .-8 ; 0x86 <.do_clear_bss_loop>
8e: 0c 94 4b 00 jmp 0x96 <main>
00000092 <__bad_interrupt>:
92: 0c 94 00 00 jmp 0x0 <__vectors>
00000096 <main>:
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void main(void)
{
96: c1 ef ldi r28, 0xF1 ; 241
98: d4 e0 ldi r29, 0x04 ; 4
9a: de bf out 0x3e, r29 ; 62
9c: cd bf out 0x3d, r28 ; 61
SP =0x04FF;
9e: 8f ef ldi r24, 0xFF ; 255
a0: 94 e0 ldi r25, 0x04 ; 4
a2: 90 93 5e 00 sts 0x005E, r25
a6: 80 93 5d 00 sts 0x005D, r24
SET_Y_LED;
aa: 80 91 34 00 lds r24, 0x0034
ae: 84 60 ori r24, 0x04 ; 4
b0: 80 93 34 00 sts 0x0034, r24
SystemInitial( );
b4: 0e 94 a2 03 call 0x744 <SystemInitial>
DownLoadDispose( );
b8: 0e 94 7e 0c call 0x18fc <DownLoadDispose>
The maximal possible delay is 768 us / F_CPU in MHz.
*/
void
_delay_us(double __us)
{
bc: 80 e0 ldi r24, 0x00 ; 0
be: 90 e0 ldi r25, 0x00 ; 0
c0: a0 e2 ldi r26, 0x20 ; 32
c2: b1 e4 ldi r27, 0x41 ; 65
c4: 89 83 std Y+1, r24 ; 0x01
c6: 9a 83 std Y+2, r25 ; 0x02
c8: ab 83 std Y+3, r26 ; 0x03
ca: bc 83 std Y+4, r27 ; 0x04
uint8_t __ticks;
double __tmp = ((F_CPU) / 3e6) * __us;
cc: 2b ea ldi r18, 0xAB ; 171
ce: 3a ea ldi r19, 0xAA ; 170
d0: 4a e2 ldi r20, 0x2A ; 42
d2: 50 e4 ldi r21, 0x40 ; 64
d4: 69 81 ldd r22, Y+1 ; 0x01
d6: 7a 81 ldd r23, Y+2 ; 0x02
d8: 8b 81 ldd r24, Y+3 ; 0x03
da: 9c 81 ldd r25, Y+4 ; 0x04
dc: 0e 94 c1 15 call 0x2b82 <__mulsf3>
e0: dc 01 movw r26, r24
e2: cb 01 movw r24, r22
e4: 8e 83 std Y+6, r24 ; 0x06
e6: 9f 83 std Y+7, r25 ; 0x07
e8: a8 87 std Y+8, r26 ; 0x08
ea: b9 87 std Y+9, r27 ; 0x09
if (__tmp < 1.0)
ec: 20 e0 ldi r18, 0x00 ; 0
ee: 30 e0 ldi r19, 0x00 ; 0
f0: 40 e8 ldi r20, 0x80 ; 128
f2: 5f e3 ldi r21, 0x3F ; 63
f4: 6e 81 ldd r22, Y+6 ; 0x06
f6: 7f 81 ldd r23, Y+7 ; 0x07
f8: 88 85 ldd r24, Y+8 ; 0x08
fa: 99 85 ldd r25, Y+9 ; 0x09
fc: 0e 94 48 17 call 0x2e90 <__ltsf2>
100: 88 23 and r24, r24
102: 0c f0 brlt .+2 ; 0x106 <main+0x70>
104: 03 c0 rjmp .+6 ; 0x10c <main+0x76>
__ticks = 1;
106: 81 e0 ldi r24, 0x01 ; 1
108: 8d 83 std Y+5, r24 ; 0x05
10a: 18 c0 rjmp .+48 ; 0x13c <main+0xa6>
else if (__tmp > 255)
10c: 20 e0 ldi r18, 0x00 ; 0
10e: 30 e0 ldi r19, 0x00 ; 0
110: 4f e7 ldi r20, 0x7F ; 127
112: 53 e4 ldi r21, 0x43 ; 67
114: 6e 81 ldd r22, Y+6 ; 0x06
116: 7f 81 ldd r23, Y+7 ; 0x07
118: 88 85 ldd r24, Y+8 ; 0x08
11a: 99 85 ldd r25, Y+9 ; 0x09
11c: 0e 94 dc 16 call 0x2db8 <__gtsf2>
120: 18 16 cp r1, r24
122: 0c f0 brlt .+2 ; 0x126 <main+0x90>
124: 02 c0 rjmp .+4 ; 0x12a <main+0x94>
__ticks = 0; /* i.e. 256 */
126: 1d 82 std Y+5, r1 ; 0x05
128: 09 c0 rjmp .+18 ; 0x13c <main+0xa6>
else
__ticks = (uint8_t)__tmp;
12a: 6e 81 ldd r22, Y+6 ; 0x06
12c: 7f 81 ldd r23, Y+7 ; 0x07
12e: 88 85 ldd r24, Y+8 ; 0x08
130: 99 85 ldd r25, Y+9 ; 0x09
132: 0e 94 0d 14 call 0x281a <__fixunssfsi>
136: dc 01 movw r26, r24
138: cb 01 movw r24, r22
13a: 8d 83 std Y+5, r24 ; 0x05
13c: 8d 81 ldd r24, Y+5 ; 0x05
13e: 8a 87 std Y+10, r24 ; 0x0a
140: 8a 85 ldd r24, Y+10 ; 0x0a
142: 8a 95 dec r24
144: f1 f7 brne .-4 ; 0x142 <main+0xac>
146: 8a 87 std Y+10, r24 ; 0x0a
_delay_us(10);
//HStartTime=EEPROM_read(HSTIME_AD);
//LStartTime=EEPROM_read(LSTIME_AD);
GentleStartTime = 30; //(HStartTime*256+LStartTime)/8; //31
148: 8e e1 ldi r24, 0x1E ; 30
14a: 90 e0 ldi r25, 0x00 ; 0
14c: 90 93 5a 01 sts 0x015A, r25
150: 80 93 59 01 sts 0x0159, r24
T1Start( ); //启动
154: 0e 94 a7 04 call 0x94e <T1Start>
The maximal possible delay is 262.14 ms / F_CPU in MHz.
*/
void
_delay_ms(double __ms)
{
158: 80 e0 ldi r24, 0x00 ; 0
15a: 90 e0 ldi r25, 0x00 ; 0
15c: a0 ef ldi r26, 0xF0 ; 240
15e: b1 e4 ldi r27, 0x41 ; 65
160: 8e 83 std Y+6, r24 ; 0x06
162: 9f 83 std Y+7, r25 ; 0x07
164: a8 87 std Y+8, r26 ; 0x08
166: b9 87 std Y+9, r27 ; 0x09
uint16_t __ticks;
double __tmp = ((F_CPU) / 4e3) * __ms;
168: 20 e0 ldi r18, 0x00 ; 0
16a: 30 e0 ldi r19, 0x00 ; 0
16c: 4a ef ldi r20, 0xFA ; 250
16e: 54 e4 ldi r21, 0x44 ; 68
170: 6e 81 ldd r22, Y+6 ; 0x06
172: 7f 81 ldd r23, Y+7 ; 0x07
174: 88 85 ldd r24, Y+8 ; 0x08
176: 99 85 ldd r25, Y+9 ; 0x09
178: 0e 94 c1 15 call 0x2b82 <__mulsf3>
17c: dc 01 movw r26, r24
17e: cb 01 movw r24, r22
180: 89 83 std Y+1, r24 ; 0x01
182: 9a 83 std Y+2, r25 ; 0x02
184: ab 83 std Y+3, r26 ; 0x03
186: bc 83 std Y+4, r27 ; 0x04
if (__tmp < 1.0)
188: 20 e0 ldi r18, 0x00 ; 0
18a: 30 e0 ldi r19, 0x00 ; 0
18c: 40 e8 ldi r20, 0x80 ; 128
18e: 5f e3 ldi r21, 0x3F ; 63
190: 69 81 ldd r22, Y+1 ; 0x01
192: 7a 81 ldd r23, Y+2 ; 0x02
194: 8b 81 ldd r24, Y+3 ; 0x03
196: 9c 81 ldd r25, Y+4 ; 0x04
198: 0e 94 48 17 call 0x2e90 <__ltsf2>
19c: 88 23 and r24, r24
19e: 0c f0 brlt .+2 ; 0x1a2 <main+0x10c>
1a0: 05 c0 rjmp .+10 ; 0x1ac <main+0x116>
__ticks = 1;
1a2: 81 e0 ldi r24, 0x01 ; 1
1a4: 90 e0 ldi r25, 0x00 ; 0
1a6: 9c 87 std Y+12, r25 ; 0x0c
1a8: 8b 87 std Y+11, r24 ; 0x0b
1aa: 1a c0 rjmp .+52 ; 0x1e0 <main+0x14a>
else if (__tmp > 65535)
1ac: 20 e0 ldi r18, 0x00 ; 0
1ae: 3f ef ldi r19, 0xFF ; 255
1b0: 4f e7 ldi r20, 0x7F ; 127
1b2: 57 e4 ldi r21, 0x47 ; 71
1b4: 69 81 ldd r22, Y+1 ; 0x01
1b6: 7a 81 ldd r23, Y+2 ; 0x02
1b8: 8b 81 ldd r24, Y+3 ; 0x03
1ba: 9c 81 ldd r25, Y+4 ; 0x04
1bc: 0e 94 dc 16 call 0x2db8 <__gtsf2>
1c0: 18 16 cp r1, r24
1c2: 0c f0 brlt .+2 ; 0x1c6 <main+0x130>
1c4: 03 c0 rjmp .+6 ; 0x1cc <main+0x136>
__ticks = 0; /* i.e. 65536 */
1c6: 1c 86 std Y+12, r1 ; 0x0c
1c8: 1b 86 std Y+11, r1 ; 0x0b
1ca: 0a c0 rjmp .+20 ; 0x1e0 <main+0x14a>
else
__ticks = (uint16_t)__tmp;
1cc: 69 81 ldd r22, Y+1 ; 0x01
1ce: 7a 81 ldd r23, Y+2 ; 0x02
1d0: 8b 81 ldd r24, Y+3 ; 0x03
1d2: 9c 81 ldd r25, Y+4 ; 0x04
1d4: 0e 94 0d 14 call 0x281a <__fixunssfsi>
1d8: dc 01 movw r26, r24
1da: cb 01 movw r24, r22
1dc: 9c 87 std Y+12, r25 ; 0x0c
1de: 8b 87 std Y+11, r24 ; 0x0b
1e0: 8b 85 ldd r24, Y+11 ; 0x0b
1e2: 9c 85 ldd r25, Y+12 ; 0x0c
1e4: 9e 87 std Y+14, r25 ; 0x0e
1e6: 8d 87 std Y+13, r24 ; 0x0d
1e8: 8d 85 ldd r24, Y+13 ; 0x0d
1ea: 9e 85 ldd r25, Y+14 ; 0x0e
1ec: 01 97 sbiw r24, 0x01 ; 1
1ee: f1 f7 brne .-4 ; 0x1ec <main+0x156>
1f0: 9e 87 std Y+14, r25 ; 0x0e
1f2: 8d 87 std Y+13, r24 ; 0x0d
_delay_ms(30);
START_FLAG=0;
1f4: 80 91 c0 01 lds r24, 0x01C0
1f8: 8f 7e andi r24, 0xEF ; 239
1fa: 80 93 c0 01 sts 0x01C0, r24
while(!START_FLAG)
1fe: 80 91 c0 01 lds r24, 0x01C0
202: 80 71 andi r24, 0x10 ; 16
204: 88 23 and r24, r24
206: 09 f0 breq .+2 ; 0x20a <main+0x174>
208: 41 c0 rjmp .+130 ; 0x28c <main+0x1f6>
{
if(PwmStepCounter>PwmPulse[TrueStepCount]) //最开始时应该设为0
20a: 80 91 88 02 lds r24, 0x0288
20e: 99 27 eor r25, r25
210: fc 01 movw r30, r24
212: e3 57 subi r30, 0x73 ; 115
214: fd 4f sbci r31, 0xFD ; 253
216: 90 81 ld r25, Z
218: 80 91 b0 02 lds r24, 0x02B0
21c: 98 17 cp r25, r24
21e: 78 f7 brcc .-34 ; 0x1fe <main+0x168>
{
PORTA=PwmStepBuffer0[TrueStepCount] & DDRA;
220: 80 91 88 02 lds r24, 0x0288
224: 99 27 eor r25, r25
226: fc 01 movw r30, r24
228: e8 5c subi r30, 0xC8 ; 200
22a: fe 4f sbci r31, 0xFE ; 254
22c: 90 81 ld r25, Z
22e: 80 91 21 00 lds r24, 0x0021
232: 89 23 and r24, r25
234: 80 93 22 00 sts 0x0022, r24
PORTC=PwmStepBuffer7[TrueStepCount] & DDRC;
238: 80 91 88 02 lds r24, 0x0288
23c: 99 27 eor r25, r25
23e: fc 01 movw r30, r24
240: e5 59 subi r30, 0x95 ; 149
242: fe 4f sbci r31, 0xFE ; 254
244: 90 81 ld r25, Z
246: 80 91 27 00 lds r24, 0x0027
24a: 89 23 and r24, r25
24c: 80 93 28 00 sts 0x0028, r24
PORTD=PwmStepBuffer15[TrueStepCount] & DDRD;
250: 80 91 88 02 lds r24, 0x0288
254: 99 27 eor r25, r25
256: fc 01 movw r30, r24
258: e9 59 subi r30, 0x99 ; 153
25a: fd 4f sbci r31, 0xFD ; 253
25c: 90 81 ld r25, Z
25e: 80 91 2a 00 lds r24, 0x002A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -