📄 yc_mainfile.lss
字号:
YC_MainFile.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000952 00000000 00000000 000000b4 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000004 00800060 00000952 00000a06 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000143 00800064 00800064 00000a0a 2**2
ALLOC
3 .noinit 00000000 008001a7 008001a7 00000a29 2**0
CONTENTS
4 .eeprom 0000001f 00810000 00810000 00000a0a 2**0
CONTENTS, ALLOC, LOAD, DATA
5 .stab 000028bc 00000000 00000000 00000a2c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00001233 00000000 00000000 000032e8 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34
2: 38 c0 rjmp .+112 ; 0x74
4: 31 c0 rjmp .+98 ; 0x68
6: 30 c0 rjmp .+96 ; 0x68
8: 2f c0 rjmp .+94 ; 0x68
a: 2e c0 rjmp .+92 ; 0x68
c: 2d c0 rjmp .+90 ; 0x68
e: 2c c0 rjmp .+88 ; 0x68
10: 2b c0 rjmp .+86 ; 0x68
12: 2b c0 rjmp .+86 ; 0x6a
14: 29 c0 rjmp .+82 ; 0x68
16: 28 c0 rjmp .+80 ; 0x68
18: 27 c0 rjmp .+78 ; 0x68
1a: 26 c0 rjmp .+76 ; 0x68
1c: 25 c0 rjmp .+74 ; 0x68
1e: 24 c0 rjmp .+72 ; 0x68
20: 23 c0 rjmp .+70 ; 0x68
22: 22 c0 rjmp .+68 ; 0x68
24: 21 c0 rjmp .+66 ; 0x68
00000026 <MonitorTcb>:
26: ec 00 4b 00 7c 01 05 ..K.|..
0000002d <KeyPressTcb>:
2d: 73 01 3f 00 74 01 04 s.?.t..
00000034 <__init>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf e5 ldi r28, 0x5F ; 95
3a: d4 e0 ldi r29, 0x04 ; 4
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61
00000040 <__do_copy_data>:
40: 10 e0 ldi r17, 0x00 ; 0
42: a0 e6 ldi r26, 0x60 ; 96
44: b0 e0 ldi r27, 0x00 ; 0
46: e2 e5 ldi r30, 0x52 ; 82
48: f9 e0 ldi r31, 0x09 ; 9
4a: 02 c0 rjmp .+4 ; 0x50
0000004c <.do_copy_data_loop>:
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
00000050 <.do_copy_data_start>:
50: a4 36 cpi r26, 0x64 ; 100
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c
00000056 <__do_clear_bss>:
56: 11 e0 ldi r17, 0x01 ; 1
58: a4 e6 ldi r26, 0x64 ; 100
5a: b0 e0 ldi r27, 0x00 ; 0
5c: 01 c0 rjmp .+2 ; 0x60
0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1
00000060 <.do_clear_bss_start>:
60: a7 3a cpi r26, 0xA7 ; 167
62: b1 07 cpc r27, r17
64: e1 f7 brne .-8 ; 0x5e
66: 1e c0 rjmp .+60 ; 0xa4
00000068 <__bad_interrupt>:
68: cb cf rjmp .-106 ; 0x0
0000006a <__vector_9>:
//TimerControlBlock delay;// Declare the control blocks for timers
AVRX_SIGINT(SIG_OVERFLOW0)
{
IntProlog(); //switch to kernel stack/context.
6a: 6a d2 rcall .+1236 ; 0x540
TCNT0 = TCNT0_INIT; //Reset timer overflow count.
6c: 8d ef ldi r24, 0xFD ; 253
6e: 82 bf out 0x32, r24 ; 50
AvrXTimerHandler(); //Call Time queue manager
70: 09 d4 rcall .+2066 ; 0x884
Epilog(); //Return to tasks.
72: be d2 rcall .+1404 ; 0x5f0
00000074 <__vector_1>:
}
AVRX_SIGINT(SIG_INTERRUPT0)
{
IntProlog();
74: 65 d2 rcall .+1226 ; 0x540
AvrXSetSemaphore(&key_pressed);
76: 8a e7 ldi r24, 0x7A ; 122
78: 91 e0 ldi r25, 0x01 ; 1
7a: 72 d3 rcall .+1764 ; 0x760
Epilog();
7c: b9 d2 rcall .+1394 ; 0x5f0
0000007e <KeyPress>:
}
AVRX_GCC_TASKDEF(KeyPress, 100, 4)
{
while(1)
{
while(1)
{
AvrXResetSemaphore(&key_pressed);
7e: 8a e7 ldi r24, 0x7A ; 122
80: 91 e0 ldi r25, 0x01 ; 1
82: c5 d3 rcall .+1930 ; 0x80e
AvrXWaitSemaphore(&key_pressed);
84: 8a e7 ldi r24, 0x7A ; 122
86: 91 e0 ldi r25, 0x01 ; 1
88: 54 d3 rcall .+1704 ; 0x732
if (PIND & _BV(PD2)) break;
8a: 82 99 sbic 0x10, 2 ; 16
8c: f8 cf rjmp .-16 ; 0x7e
else KeyYc(PINC & 0x0f);
8e: 83 b3 in r24, 0x13 ; 19
90: 8f 70 andi r24, 0x0F ; 15
92: 6b d1 rcall .+726 ; 0x36a
94: f4 cf rjmp .-24 ; 0x7e
00000096 <Monitor>:
}
}
}
/*Task 1: .*/
AVRX_GCC_TASKDEF(Monitor, 100, 5)
{
while (1)
{
LoadWorkState();
96: bb d1 rcall .+886 ; 0x40e
AvrXDelay(&delay, 1);
98: 61 e0 ldi r22, 0x01 ; 1
9a: 70 e0 ldi r23, 0x00 ; 0
9c: 82 e8 ldi r24, 0x82 ; 130
9e: 91 e0 ldi r25, 0x01 ; 1
a0: c3 d3 rcall .+1926 ; 0x828
a2: f9 cf rjmp .-14 ; 0x96
000000a4 <main>:
}
}
int main(void)
{
a4: cf e5 ldi r28, 0x5F ; 95
a6: d4 e0 ldi r29, 0x04 ; 4
a8: de bf out 0x3e, r29 ; 62
aa: cd bf out 0x3d, r28 ; 61
AvrXSetKernelStack(0);//Set Avrx stack to "0",or,if NULL then to current stack.
ac: 80 e0 ldi r24, 0x00 ; 0
ae: 90 e0 ldi r25, 0x00 ; 0
b0: db d2 rcall .+1462 ; 0x668
ACSR = 0x80;
b2: 80 e8 ldi r24, 0x80 ; 128
b4: 88 b9 out 0x08, r24 ; 8
SFIOR = 0x00;
b6: 10 be out 0x30, r1 ; 48
TCCR0 = T0MC8_CK256; // Set up Timer0 for CLK/256 rate
b8: 84 e0 ldi r24, 0x04 ; 4
ba: 83 bf out 0x33, r24 ; 51
TCNT0 = TCNT0_INIT;
bc: 8d ef ldi r24, 0xFD ; 253
be: 82 bf out 0x32, r24 ; 50
TIMSK |= _BV(TOIE0); // Enable Timer0 overflow interrupt
c0: 89 b7 in r24, 0x39 ; 57
c2: 81 60 ori r24, 0x01 ; 1
c4: 89 bf out 0x39, r24 ; 57
InitWorkState();
c6: fb d1 rcall .+1014 ; 0x4be
MCUCR |= _BV(ISC01) ;
c8: 85 b7 in r24, 0x35 ; 53
ca: 82 60 ori r24, 0x02 ; 2
cc: 85 bf out 0x35, r24 ; 53
GICR |= _BV(INT0);
ce: 8b b7 in r24, 0x3b ; 59
d0: 80 64 ori r24, 0x40 ; 64
d2: 8b bf out 0x3b, r24 ; 59
AvrXRunTask(TCB(Monitor));
d4: 86 e2 ldi r24, 0x26 ; 38
d6: 90 e0 ldi r25, 0x00 ; 0
d8: d3 d2 rcall .+1446 ; 0x680
AvrXRunTask(TCB(KeyPress));
da: 8d e2 ldi r24, 0x2D ; 45
dc: 90 e0 ldi r25, 0x00 ; 0
de: d0 d2 rcall .+1440 ; 0x680
Epilog(); // Switch from AvrX Stack to first task
e0: 87 d2 rcall .+1294 ; 0x5f0
return 1;
}
e2: 81 e0 ldi r24, 0x01 ; 1
e4: 90 e0 ldi r25, 0x00 ; 0
e6: 34 c4 rjmp .+2152 ; 0x950
000000e8 <PlayStaticAsh>:
=====================================================================*/
void PlayStaticAsh(WORD wRedAsh, WORD wGreenAsh, WORD wBlueAsh)
{
WORD wi;
for(wi=0; wi<WASHVAL; wi++)
e8: 20 e0 ldi r18, 0x00 ; 0
ea: 30 e0 ldi r19, 0x00 ; 0
ec: e0 91 61 00 lds r30, 0x0061
f0: f0 91 62 00 lds r31, 0x0062
f4: 2e 17 cp r18, r30
f6: 3f 07 cpc r19, r31
f8: a8 f4 brcc .+42 ; 0x124
{
if(wi < wRedAsh)
fa: 28 17 cp r18, r24
fc: 39 07 cpc r19, r25
fe: 10 f4 brcc .+4 ; 0x104
ON_Red();
100: 95 98 cbi 0x12, 5 ; 18
102: 01 c0 rjmp .+2 ; 0x106
else
OFF_Red();
104: 95 9a sbi 0x12, 5 ; 18
if(wi < wGreenAsh)
106: 26 17 cp r18, r22
108: 37 07 cpc r19, r23
10a: 10 f4 brcc .+4 ; 0x110
ON_Gre();
10c: 96 98 cbi 0x12, 6 ; 18
10e: 01 c0 rjmp .+2 ; 0x112
else
OFF_Gre();
110: 96 9a sbi 0x12, 6 ; 18
if(wi < wBlueAsh)
112: 24 17 cp r18, r20
114: 35 07 cpc r19, r21
116: 10 f4 brcc .+4 ; 0x11c
ON_Blu();
118: 97 98 cbi 0x12, 7 ; 18
11a: 01 c0 rjmp .+2 ; 0x11e
else
OFF_Blu();
11c: 97 9a sbi 0x12, 7 ; 18
11e: 2f 5f subi r18, 0xFF ; 255
120: 3f 4f sbci r19, 0xFF ; 255
122: e8 cf rjmp .-48 ; 0xf4
124: 08 95 ret
00000126 <Play_Gradual>:
126: ff 92 push r15
128: 0f 93 push r16
12a: 1f 93 push r17
12c: cf 93 push r28
12e: df 93 push r29
130: f8 2e mov r15, r24
132: 81 e0 ldi r24, 0x01 ; 1
134: 80 93 92 01 sts 0x0192, r24
138: 00 e0 ldi r16, 0x00 ; 0
13a: 10 e0 ldi r17, 0x00 ; 0
13c: 80 91 61 00 lds r24, 0x0061
140: 90 91 62 00 lds r25, 0x0062
144: 08 17 cp r16, r24
146: 19 07 cpc r17, r25
148: 30 f5 brcc .+76 ; 0x196
14a: 80 91 90 01 lds r24, 0x0190
14e: 81 30 cpi r24, 0x01 ; 1
150: 09 f4 brne .+2 ; 0x154
152: 5b c0 rjmp .+182 ; 0x20a
154: 8f 2d mov r24, r15
156: 99 27 eor r25, r25
158: 00 97 sbiw r24, 0x00 ; 0
15a: d1 f0 breq .+52 ; 0x190
15c: ec 01 movw r28, r24
15e: 10 93 96 01 sts 0x0196, r17
162: 00 93 95 01 sts 0x0195, r16
166: 80 91 61 00 lds r24, 0x0061
16a: 90 91 62 00 lds r25, 0x0062
16e: 80 1b sub r24, r16
170: 91 0b sbc r25, r17
172: 90 93 98 01 sts 0x0198, r25
176: 80 93 97 01 sts 0x0197, r24
17a: 10 92 8d 01 sts 0x018D, r1
17e: 10 92 8c 01 sts 0x018C, r1
182: 40 e0 ldi r20, 0x00 ; 0
184: 50 e0 ldi r21, 0x00 ; 0
186: bc 01 movw r22, r24
188: c8 01 movw r24, r16
18a: ae df rcall .-164 ; 0xe8
18c: 21 97 sbiw r28, 0x01 ; 1
18e: 39 f7 brne .-50 ; 0x15e
190: 0f 5f subi r16, 0xFF ; 255
192: 1f 4f sbci r17, 0xFF ; 255
194: d3 cf rjmp .-90 ; 0x13c
196: 00 e0 ldi r16, 0x00 ; 0
198: 10 e0 ldi r17, 0x00 ; 0
19a: 80 91 61 00 lds r24, 0x0061
19e: 90 91 62 00 lds r25, 0x0062
1a2: 08 17 cp r16, r24
1a4: 19 07 cpc r17, r25
1a6: 20 f5 brcc .+72 ; 0x1f0
1a8: 80 91 90 01 lds r24, 0x0190
1ac: 81 30 cpi r24, 0x01 ; 1
1ae: 69 f1 breq .+90 ; 0x20a
1b0: 8f 2d mov r24, r15
1b2: 99 27 eor r25, r25
1b4: 00 97 sbiw r24, 0x00 ; 0
1b6: c9 f0 breq .+50 ; 0x1ea
1b8: ec 01 movw r28, r24
1ba: 80 91 61 00 lds r24, 0x0061
1be: 90 91 62 00 lds r25, 0x0062
1c2: 80 1b sub r24, r16
1c4: 91 0b sbc r25, r17
1c6: 90 93 96 01 sts 0x0196, r25
1ca: 80 93 95 01 sts 0x0195, r24
1ce: 10 92 98 01 sts 0x0198, r1
1d2: 10 92 97 01 sts 0x0197, r1
1d6: 10 93 8d 01 sts 0x018D, r17
1da: 00 93 8c 01 sts 0x018C, r16
1de: a8 01 movw r20, r16
1e0: 60 e0 ldi r22, 0x00 ; 0
1e2: 70 e0 ldi r23, 0x00 ; 0
1e4: 81 df rcall .-254 ; 0xe8
1e6: 21 97 sbiw r28, 0x01 ; 1
1e8: 41 f7 brne .-48 ; 0x1ba
1ea: 0f 5f subi r16, 0xFF ; 255
1ec: 1f 4f sbci r17, 0xFF ; 255
1ee: d5 cf rjmp .-86 ; 0x19a
1f0: 00 e0 ldi r16, 0x00 ; 0
1f2: 10 e0 ldi r17, 0x00 ; 0
1f4: 80 91 61 00 lds r24, 0x0061
1f8: 90 91 62 00 lds r25, 0x0062
1fc: 08 17 cp r16, r24
1fe: 19 07 cpc r17, r25
200: 70 f5 brcc .+92 ; 0x25e
202: 80 91 90 01 lds r24, 0x0190
206: 81 30 cpi r24, 0x01 ; 1
208: 19 f4 brne .+6 ; 0x210
20a: 10 92 90 01 sts 0x0190, r1
20e: 27 c0 rjmp .+78 ; 0x25e
210: 8f 2d mov r24, r15
212: 99 27 eor r25, r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -