?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000256 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000004a 00800060 00000256 000002ea 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 008000aa 000002a0 00000334 2**0
ALLOC
3 .noinit 00000000 008000aa 008000aa 00000334 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000334 2**0
CONTENTS
5 .stab 00000558 00000000 00000000 00000334 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 000007e1 00000000 00000000 0000088c 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: af c0 rjmp .+350 ; 0x160
2: c8 c0 rjmp .+400 ; 0x194
4: c7 c0 rjmp .+398 ; 0x194
6: c6 c0 rjmp .+396 ; 0x194
8: c5 c0 rjmp .+394 ; 0x194
a: c4 c0 rjmp .+392 ; 0x194
c: c3 c0 rjmp .+390 ; 0x194
e: c2 c0 rjmp .+388 ; 0x194
10: c1 c0 rjmp .+386 ; 0x194
12: c0 c0 rjmp .+384 ; 0x194
14: bf c0 rjmp .+382 ; 0x194
16: be c0 rjmp .+380 ; 0x194
18: bd c0 rjmp .+378 ; 0x194
1a: bc c0 rjmp .+376 ; 0x194
1c: bb c0 rjmp .+374 ; 0x194
1e: ba c0 rjmp .+372 ; 0x194
20: b9 c0 rjmp .+370 ; 0x194
22: b8 c0 rjmp .+368 ; 0x194
24: b7 c0 rjmp .+366 ; 0x194
00000026 <__ctors_end>:
26: 14 02 muls r17, r20
28: 00 01 movw r0, r0
2a: 14 01 movw r2, r8
2c: 16 04 cpc r1, r6
2e: 14 04 cpc r1, r4
30: 19 04 cpc r1, r9
32: 18 04 cpc r1, r8
34: 00 04 cpc r0, r0
36: 14 02 muls r17, r20
38: 00 01 movw r0, r0
3a: 14 01 movw r2, r8
3c: 16 04 cpc r1, r6
3e: 14 04 cpc r1, r4
40: 1b 04 cpc r1, r11
42: 19 04 cpc r1, r9
44: 00 04 cpc r0, r0
46: 14 02 muls r17, r20
48: 00 01 movw r0, r0
4a: 14 01 movw r2, r8
4c: 20 04 cpc r2, r0
4e: 1d 04 cpc r1, r13
50: 19 04 cpc r1, r9
52: 18 04 cpc r1, r8
54: 16 04 cpc r1, r6
56: 1e 02 muls r17, r30
58: 00 01 movw r0, r0
5a: 1e 01 movw r2, r28
5c: 1d 04 cpc r1, r13
5e: 19 04 cpc r1, r9
60: 1b 04 cpc r1, r11
62: 19 04 cpc r1, r9
64: 00 04 cpc r0, r0
66: 14 02 muls r17, r20
68: 00 01 movw r0, r0
6a: 14 01 movw r2, r8
6c: 16 04 cpc r1, r6
6e: 14 04 cpc r1, r4
70: 19 04 cpc r1, r9
72: 18 04 cpc r1, r8
74: 00 04 cpc r0, r0
76: 14 02 muls r17, r20
78: 00 01 movw r0, r0
7a: 14 01 movw r2, r8
7c: 16 04 cpc r1, r6
7e: 14 04 cpc r1, r4
80: 1b 04 cpc r1, r11
82: 19 04 cpc r1, r9
84: 00 04 cpc r0, r0
86: 14 02 muls r17, r20
88: 00 01 movw r0, r0
8a: 14 01 movw r2, r8
8c: 20 04 cpc r2, r0
8e: 1d 04 cpc r1, r13
90: 19 04 cpc r1, r9
92: 18 04 cpc r1, r8
94: 16 04 cpc r1, r6
96: 1e 02 muls r17, r30
98: 00 01 movw r0, r0
9a: 1e 01 movw r2, r28
9c: 1d 04 cpc r1, r13
9e: 19 04 cpc r1, r9
a0: 1b 04 cpc r1, r11
a2: 19 04 cpc r1, r9
a4: 00 04 cpc r0, r0
...
000000a8 <g_aMusic1>:
a8: 11 04 12 04 14 06 14 02 16 04 14 04 11 0c 0f 04 ................
b8: 0d 06 11 02 0f 04 0d 04 0a 0c 0a 04 08 08 0d 04 ................
c8: 0f 04 11 04 14 04 16 04 11 04 0f 0f 0f 04 00 04 ................
d8: 11 04 12 04 14 06 14 02 16 04 14 04 11 0c 0f 04 ................
e8: 0d 06 11 02 0f 04 0d 04 0a 0c 0a 04 08 08 0d 06 ................
f8: 11 02 0f 06 0d 02 0d 04 0a 04 0d 0f 0d 08 11 04 ................
108: 14 04 16 0c 19 0a 16 04 12 04 14 06 16 02 14 0c ................
118: 11 04 14 08 11 04 14 04 16 0c 19 04 19 04 16 04 ................
128: 14 04 11 04 0f 0f 0f 08 11 04 12 04 14 06 14 02 ................
138: 16 04 14 04 11 0c 0f 04 0d 06 11 02 0f 04 0d 04 ................
148: 0a 0c 0a 04 08 08 0d 04 11 04 0f 06 0d 02 0a 04 ................
158: 0c 04 0d 0f 0d 0f 00 00 ........
00000160 <__init>:
160: 11 24 eor r1, r1
162: 1f be out 0x3f, r1 ; 63
164: cf e5 ldi r28, 0x5F ; 95
166: d4 e0 ldi r29, 0x04 ; 4
168: de bf out 0x3e, r29 ; 62
16a: cd bf out 0x3d, r28 ; 61
0000016c <__do_copy_data>:
16c: 10 e0 ldi r17, 0x00 ; 0
16e: a0 e6 ldi r26, 0x60 ; 96
170: b0 e0 ldi r27, 0x00 ; 0
172: e6 e5 ldi r30, 0x56 ; 86
174: f2 e0 ldi r31, 0x02 ; 2
176: 02 c0 rjmp .+4 ; 0x17c
00000178 <.do_copy_data_loop>:
178: 05 90 lpm r0, Z+
17a: 0d 92 st X+, r0
0000017c <.do_copy_data_start>:
17c: aa 3a cpi r26, 0xAA ; 170
17e: b1 07 cpc r27, r17
180: d9 f7 brne .-10 ; 0x178
00000182 <__do_clear_bss>:
182: 10 e0 ldi r17, 0x00 ; 0
184: aa ea ldi r26, 0xAA ; 170
186: b0 e0 ldi r27, 0x00 ; 0
188: 01 c0 rjmp .+2 ; 0x18c
0000018a <.do_clear_bss_loop>:
18a: 1d 92 st X+, r1
0000018c <.do_clear_bss_start>:
18c: aa 3a cpi r26, 0xAA ; 170
18e: b1 07 cpc r27, r17
190: e1 f7 brne .-8 ; 0x18a
192: 53 c0 rjmp .+166 ; 0x23a
00000194 <__bad_interrupt>:
194: 35 cf rjmp .-406 ; 0x0
00000196 <DelayMs>:
00,00};
void DelayMs(uint t)
{
uint i;
for(i=0;i<t;i++)
196: 00 97 sbiw r24, 0x00 ; 0
198: 41 f0 breq .+16 ; 0x1aa
19a: 9c 01 movw r18, r24
/* 16-bit count, 4 cycles/loop */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
19c: 88 ee ldi r24, 0xE8 ; 232
19e: 93 e0 ldi r25, 0x03 ; 3
asm volatile (
1a0: 01 97 sbiw r24, 0x01 ; 1
1a2: f1 f7 brne .-4 ; 0x1a0
1a4: 21 50 subi r18, 0x01 ; 1
1a6: 30 40 sbci r19, 0x00 ; 0
1a8: c9 f7 brne .-14 ; 0x19c
1aa: 08 95 ret
000001ac <PwmInit>:
_delay_loop_2(250*4);
}
void PwmInit(void)
{
PORTB&=~_BV(PB2);
1ac: c2 98 cbi 0x18, 2 ; 24
DDRB|=0X04; //輸出引腳允許
1ae: ba 9a sbi 0x17, 2 ; 23
//PWM相關定時器中斷禁止
TIMSK=0;//_BV(TICIE1)|_BV(OCIE1A)|_BV(OCIE1B)|_BV(TOIE1);
1b0: 19 be out 0x39, r1 ; 57
// 可調相位、可調頻率 PWM模式
// OCR1A為上限值,OC1B(PB2)輸出PWM
// 向上計數過程中比較匹配清零,向下計數過程中比較匹配時置位
// 時鐘源:4MHz/1 PWM頻率:4MHz/( 1 * X ) = 可調
TCCR1A=_BV(COM1B1)|_BV(WGM10);
1b2: 81 e2 ldi r24, 0x21 ; 33
1b4: 8f bd out 0x2f, r24 ; 47
TCCR1B=_BV(WGM13)|_BV(CS10);
1b6: 81 e1 ldi r24, 0x11 ; 17
1b8: 8e bd out 0x2e, r24 ; 46
OCR1A=0XFFFF; //上限值設置
1ba: 8f ef ldi r24, 0xFF ; 255
1bc: 9f ef ldi r25, 0xFF ; 255
1be: 9b bd out 0x2b, r25 ; 43
1c0: 8a bd out 0x2a, r24 ; 42
OCR1B=0X0000; //輸出初始化為低電平
1c2: 19 bc out 0x29, r1 ; 41
1c4: 18 bc out 0x28, r1 ; 40
TCNT1=0;
1c6: 1d bc out 0x2d, r1 ; 45
1c8: 1c bc out 0x2c, r1 ; 44
1ca: 08 95 ret
000001cc <SetPWM>:
}
void SetPWM(uint val)
{
OCR1A=val;
1cc: 9b bd out 0x2b, r25 ; 43
1ce: 8a bd out 0x2a, r24 ; 42
OCR1B=val/2;
1d0: 96 95 lsr r25
1d2: 87 95 ror r24
1d4: 99 bd out 0x29, r25 ; 41
1d6: 88 bd out 0x28, r24 ; 40
1d8: 08 95 ret
000001da <Play>:
}
void Play(void)
{
1da: 0f 93 push r16
1dc: 1f 93 push r17
1de: cf 93 push r28
1e0: df 93 push r29
1e2: c0 e0 ldi r28, 0x00 ; 0
1e4: d0 e0 ldi r29, 0x00 ; 0
int i=0;
1e6: 8e 01 movw r16, r28
uchar msc[2];
while(1)
{
msc[0]=pgm_read_byte(g_aMusic2+i++);
1e8: f8 01 movw r30, r16
1ea: ea 5d subi r30, 0xDA ; 218
1ec: ff 4f sbci r31, 0xFF ; 255
1ee: 0f 5f subi r16, 0xFF ; 255
1f0: 1f 4f sbci r17, 0xFF ; 255
1f2: 84 91 lpm r24, Z
1f4: c8 2f mov r28, r24
msc[1]=pgm_read_byte(g_aMusic2+i++);
1f6: f8 01 movw r30, r16
1f8: ea 5d subi r30, 0xDA ; 218
1fa: ff 4f sbci r31, 0xFF ; 255
1fc: 0f 5f subi r16, 0xFF ; 255
1fe: 1f 4f sbci r17, 0xFF ; 255
200: 84 91 lpm r24, Z
202: d8 2f mov r29, r24
if(msc[0]==0 && msc[1]==0)
204: ec 2f mov r30, r28
206: cc 23 and r28, r28
208: 11 f4 brne .+4 ; 0x20e
20a: 88 23 and r24, r24
20c: 71 f0 breq .+28 ; 0x22a
break;
SetPWM(g_aMusicTab[msc[0]]);
20e: ff 27 eor r31, r31
210: ee 0f add r30, r30
212: ff 1f adc r31, r31
214: e0 5a subi r30, 0xA0 ; 160
216: ff 4f sbci r31, 0xFF ; 255
218: 80 81 ld r24, Z
21a: 91 81 ldd r25, Z+1 ; 0x01
21c: d7 df rcall .-82 ; 0x1cc
DelayMs(187*msc[1]);
21e: 8b eb ldi r24, 0xBB ; 187
220: d8 9f mul r29, r24
222: c0 01 movw r24, r0
224: 11 24 eor r1, r1
226: b7 df rcall .-146 ; 0x196
228: df cf rjmp .-66 ; 0x1e8
}
SetPWM(0);
22a: 80 e0 ldi r24, 0x00 ; 0
22c: 90 e0 ldi r25, 0x00 ; 0
22e: ce df rcall .-100 ; 0x1cc
230: df 91 pop r29
232: cf 91 pop r28
234: 1f 91 pop r17
236: 0f 91 pop r16
238: 08 95 ret
0000023a <main>:
}
int main(void)
{
23a: cf e5 ldi r28, 0x5F ; 95
23c: d4 e0 ldi r29, 0x04 ; 4
23e: de bf out 0x3e, r29 ; 62
240: cd bf out 0x3d, r28 ; 61
PORTD|=_BV(PD2);
242: 92 9a sbi 0x12, 2 ; 18
PwmInit();
244: b3 df rcall .-154 ; 0x1ac
while(1)
{
if((PIND&_BV(PD2))==0)
246: 82 99 sbic 0x10, 2 ; 16
248: 02 c0 rjmp .+4 ; 0x24e
Play();
24a: c7 df rcall .-114 ; 0x1da
24c: fc cf rjmp .-8 ; 0x246
else
DelayMs(10);
24e: 8a e0 ldi r24, 0x0A ; 10
250: 90 e0 ldi r25, 0x00 ; 0
252: a1 df rcall .-190 ; 0x196
254: f8 cf rjmp .-16 ; 0x246
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -