📄 12ul_demo.lss
字号:
12ul_Demo.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000008f8 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000006a 00800060 000008f8 0000098c 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000045 008000ca 008000ca 000009f6 2**2
ALLOC
3 .noinit 00000000 0080010f 0080010f 000009f6 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000009f6 2**0
CONTENTS
5 .stab 00002a78 00000000 00000000 000009f8 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 0000136f 00000000 00000000 00003470 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 16 c0 rjmp .+44 ; 0x2e
2: 2f c0 rjmp .+94 ; 0x62
4: 2e c0 rjmp .+92 ; 0x62
6: 2d c0 rjmp .+90 ; 0x62
8: 2c c0 rjmp .+88 ; 0x62
a: 2b c0 rjmp .+86 ; 0x62
c: 2a c0 rjmp .+84 ; 0x62
e: 29 c0 rjmp .+82 ; 0x62
10: 28 c0 rjmp .+80 ; 0x62
12: 28 c0 rjmp .+80 ; 0x64
14: 26 c0 rjmp .+76 ; 0x62
16: 25 c0 rjmp .+74 ; 0x62
18: 24 c0 rjmp .+72 ; 0x62
1a: 23 c0 rjmp .+70 ; 0x62
1c: 22 c0 rjmp .+68 ; 0x62
1e: 21 c0 rjmp .+66 ; 0x62
20: 20 c0 rjmp .+64 ; 0x62
22: 1f c0 rjmp .+62 ; 0x62
24: 1e c0 rjmp .+60 ; 0x62
00000026 <LedPlayTcb>:
26: f6 00 37 00 f7 00 05 00 ..7.....
0000002e <__init>:
2e: 11 24 eor r1, r1
30: 1f be out 0x3f, r1 ; 63
32: cf e5 ldi r28, 0x5F ; 95
34: d4 e0 ldi r29, 0x04 ; 4
36: de bf out 0x3e, r29 ; 62
38: cd bf out 0x3d, r28 ; 61
0000003a <__do_copy_data>:
3a: 10 e0 ldi r17, 0x00 ; 0
3c: a0 e6 ldi r26, 0x60 ; 96
3e: b0 e0 ldi r27, 0x00 ; 0
40: e8 ef ldi r30, 0xF8 ; 248
42: f8 e0 ldi r31, 0x08 ; 8
44: 02 c0 rjmp .+4 ; 0x4a
00000046 <.do_copy_data_loop>:
46: 05 90 lpm r0, Z+
48: 0d 92 st X+, r0
0000004a <.do_copy_data_start>:
4a: aa 3c cpi r26, 0xCA ; 202
4c: b1 07 cpc r27, r17
4e: d9 f7 brne .-10 ; 0x46
00000050 <__do_clear_bss>:
50: 11 e0 ldi r17, 0x01 ; 1
52: aa ec ldi r26, 0xCA ; 202
54: b0 e0 ldi r27, 0x00 ; 0
56: 01 c0 rjmp .+2 ; 0x5a
00000058 <.do_clear_bss_loop>:
58: 1d 92 st X+, r1
0000005a <.do_clear_bss_start>:
5a: af 30 cpi r26, 0x0F ; 15
5c: b1 07 cpc r27, r17
5e: e1 f7 brne .-8 ; 0x58
60: 1b c0 rjmp .+54 ; 0x98
00000062 <__bad_interrupt>:
62: ce cf rjmp .-100 ; 0x0
00000064 <__vector_9>:
//----------------------------------------------------------------
AVRX_SIGINT(SIG_OVERFLOW0)
{
IntProlog(); //switch to kernel stack/context.
64: 2c d2 rcall .+1112 ; 0x4be
TCNT0 = TCNT0_INIT; //Reset timer overflow count.
66: 83 ee ldi r24, 0xE3 ; 227
68: 82 bf out 0x32, r24 ; 50
AvrXTimerHandler(); //Call Time queue manager
6a: 4e d3 rcall .+1692 ; 0x708
Epilog(); //Return to tasks.
6c: 80 d2 rcall .+1280 ; 0x56e
0000006e <LedPlay>:
}
AVRX_GCC_TASKDEF(LedPlay, 10, 5)
{
//AvrXDelay(&delay, 1);//1ms delay, Delay_MaxVal = 6.5s.
BYTE bi;
while(1)
{
Play_24ColorStaAsh(250);
6e: 8a ef ldi r24, 0xFA ; 250
70: 90 e0 ldi r25, 0x00 ; 0
72: ec d1 rcall .+984 ; 0x44c
74: ce e0 ldi r28, 0x0E ; 14
for(bi = 0; bi < 15; bi++)
Play_24ColorRunAsh_L_to_R(PLAY_24ASHSPEED);
76: 83 e0 ldi r24, 0x03 ; 3
78: 90 e0 ldi r25, 0x00 ; 0
7a: 90 d1 rcall .+800 ; 0x39c
7c: c1 50 subi r28, 0x01 ; 1
7e: c7 ff sbrs r28, 7
80: fa cf rjmp .-12 ; 0x76
Play_Jump_All(PLAY_DELAY1MS);
82: 88 ee ldi r24, 0xE8 ; 232
84: 93 e0 ldi r25, 0x03 ; 3
86: 4a d0 rcall .+148 ; 0x11c
Play_CloseOpenMoveUpt(PLAY_MOVESPEED);
88: 8a ef ldi r24, 0xFA ; 250
8a: 90 e0 ldi r25, 0x00 ; 0
8c: d5 d0 rcall .+426 ; 0x238
for(bi = 0; bi < 2; bi++)
Play_Gradual(PLAY_GRADSPEED);
8e: 81 e0 ldi r24, 0x01 ; 1
90: 32 d1 rcall .+612 ; 0x2f6
92: 81 e0 ldi r24, 0x01 ; 1
94: 30 d1 rcall .+608 ; 0x2f6
96: eb cf rjmp .-42 ; 0x6e
00000098 <main>:
}
}
int main(void)
{
98: cf e5 ldi r28, 0x5F ; 95
9a: d4 e0 ldi r29, 0x04 ; 4
9c: de bf out 0x3e, r29 ; 62
9e: cd bf out 0x3d, r28 ; 61
AvrXSetKernelStack(0);//Set Avrx stack to "0",or,if NULL then to current stack.
a0: 80 e0 ldi r24, 0x00 ; 0
a2: 90 e0 ldi r25, 0x00 ; 0
a4: a0 d2 rcall .+1344 ; 0x5e6
TCCR0 = T0MC8_CK256; // Set up Timer0 for CLK/256 rate
a6: 84 e0 ldi r24, 0x04 ; 4
a8: 83 bf out 0x33, r24 ; 51
TCNT0 = TCNT0_INIT;
aa: 83 ee ldi r24, 0xE3 ; 227
ac: 82 bf out 0x32, r24 ; 50
TIMSK |= _BV(TOIE0); // Enable Timer0 overflow interrupt
ae: 89 b7 in r24, 0x39 ; 57
b0: 81 60 ori r24, 0x01 ; 1
b2: 89 bf out 0x39, r24 ; 57
DDRD |= _BV(PD4) | _BV(PD3) | _BV(PD1) |_BV(PD0);
b4: 81 b3 in r24, 0x11 ; 17
b6: 8b 61 ori r24, 0x1B ; 27
b8: 81 bb out 0x11, r24 ; 17
Set_Oe();
ba: 90 9a sbi 0x12, 0 ; 18
AvrXRunTask(TCB(LedPlay));
bc: 86 e2 ldi r24, 0x26 ; 38
be: 90 e0 ldi r25, 0x00 ; 0
c0: 9e d2 rcall .+1340 ; 0x5fe
Epilog(); // Switch from AvrX Stack to first task
c2: 55 d2 rcall .+1194 ; 0x56e
return 1;
}
c4: 81 e0 ldi r24, 0x01 ; 1
c6: 90 e0 ldi r25, 0x00 ; 0
c8: 16 c4 rjmp .+2092 ; 0x8f6
000000ca <SendOneDotColorData>:
//----------------------------------------------------------------
void SendOneDotColorData(BYTE bColor)
{
BYTE bi;
Set_Clk();Set_Sdi();Clr_Clk();
ca: 93 9a sbi 0x12, 3 ; 18
cc: 94 9a sbi 0x12, 4 ; 18
ce: 93 98 cbi 0x12, 3 ; 18
d0: 99 27 eor r25, r25
d2: fc 01 movw r30, r24
d4: ee 0f add r30, r30
d6: ff 1f adc r31, r31
d8: e8 0f add r30, r24
da: f9 1f adc r31, r25
dc: e8 55 subi r30, 0x58 ; 88
de: ff 4f sbci r31, 0xFF ; 255
e0: 92 e0 ldi r25, 0x02 ; 2
for(bi=0; bi<3; bi++)
{
Set_Clk();
e2: 93 9a sbi 0x12, 3 ; 18
if(bRgb_Logic[bColor*3+bi] == 1)
e4: 81 91 ld r24, Z+
e6: 81 30 cpi r24, 0x01 ; 1
e8: 11 f4 brne .+4 ; 0xee
Clr_Sdi();
ea: 94 98 cbi 0x12, 4 ; 18
ec: 01 c0 rjmp .+2 ; 0xf0
else
Set_Sdi();
ee: 94 9a sbi 0x12, 4 ; 18
Clr_Clk();
f0: 93 98 cbi 0x12, 3 ; 18
f2: 91 50 subi r25, 0x01 ; 1
f4: 97 ff sbrs r25, 7
f6: f5 cf rjmp .-22 ; 0xe2
f8: 08 95 ret
000000fa <PlayAllOneColor>:
fa: 1f 93 push r17
fc: cf 93 push r28
fe: df 93 push r29
100: 18 2f mov r17, r24
102: 91 9a sbi 0x12, 1 ; 18
104: c7 e1 ldi r28, 0x17 ; 23
106: d0 e0 ldi r29, 0x00 ; 0
108: 81 2f mov r24, r17
10a: df df rcall .-66 ; 0xca
10c: 21 97 sbiw r28, 0x01 ; 1
10e: d7 ff sbrs r29, 7
110: fb cf rjmp .-10 ; 0x108
112: 91 98 cbi 0x12, 1 ; 18
114: df 91 pop r29
116: cf 91 pop r28
118: 1f 91 pop r17
11a: 08 95 ret
0000011c <Play_Jump_All>:
11c: 0f 93 push r16
11e: 1f 93 push r17
120: cf 93 push r28
122: 8c 01 movw r16, r24
124: c0 e0 ldi r28, 0x00 ; 0
126: 8c 2f mov r24, r28
128: e8 df rcall .-48 ; 0xfa
12a: b8 01 movw r22, r16
12c: 8d ef ldi r24, 0xFD ; 253
12e: 90 e0 ldi r25, 0x00 ; 0
130: bd d2 rcall .+1402 ; 0x6ac
132: cf 5f subi r28, 0xFF ; 255
134: c7 30 cpi r28, 0x07 ; 7
136: b8 f3 brcs .-18 ; 0x126
138: cf 91 pop r28
13a: 1f 91 pop r17
13c: 0f 91 pop r16
13e: 08 95 ret
00000140 <SetCloseColor>:
}
}
/*================================================================
Function: Run color close and open,R-G-B-RB-GB-RG.
-----------------------------------------------------------------*/
void Play_CloseOpenMoveUpt( WORD bRunSpeed)
{
BYTE bi;
PlayAllOneColor(YELLOW);
for(bi = RED; bi<= YELLOW; bi++)
if(bi%2 == 0)
SetCloseColor( bi, bRunSpeed);
else
SetOpenColor( bi, bRunSpeed);
}
//----------------------------------------------------------------
void SetCloseColor( BYTE bMoveColor, WORD bMoveSpeed)
{
140: af 92 push r10
142: bf 92 push r11
144: df 92 push r13
146: ef 92 push r14
148: ff 92 push r15
14a: 0f 93 push r16
14c: 1f 93 push r17
14e: cf 93 push r28
150: df 93 push r29
152: d8 2e mov r13, r24
154: 5b 01 movw r10, r22
WORD bi, loop;
for(loop=0; loop < (BLAMPS*BXDOTS)/2; loop++)
156: 00 e0 ldi r16, 0x00 ; 0
158: 10 e0 ldi r17, 0x00 ; 0
15a: 38 e1 ldi r19, 0x18 ; 24
15c: e3 2e mov r14, r19
15e: f1 2c mov r15, r1
{
Set_Stb();
160: 91 9a sbi 0x12, 1 ; 18
for(bi=0; bi < (BLAMPS*BXDOTS); bi++)
162: c0 e0 ldi r28, 0x00 ; 0
164: d0 e0 ldi r29, 0x00 ; 0
{
if((bi <= loop) || (bi >= ((BLAMPS*BXDOTS)-loop)))
166: 0c 17 cp r16, r28
168: 1d 07 cpc r17, r29
16a: 18 f4 brcc .+6 ; 0x172
16c: ce 15 cp r28, r14
16e: df 05 cpc r29, r15
170: 10 f0 brcs .+4 ; 0x176
{
SendOneDotColorData(bMoveColor);
172: 8d 2d mov r24, r13
174: 06 c0 rjmp .+12 ; 0x182
}
else
{
if(bMoveColor == RED)
176: dd 20 and r13, r13
178: 11 f4 brne .+4 ; 0x17e
{
SendOneDotColorData(YELLOW);
17a: 84 e0 ldi r24, 0x04 ; 4
17c: 02 c0 rjmp .+4 ; 0x182
}
else
{
SendOneDotColorData(bMoveColor-1);
17e: 8d 2d mov r24, r13
180: 81 50 subi r24, 0x01 ; 1
182: a3 df rcall .-186 ; 0xca
184: 21 96 adiw r28, 0x01 ; 1
186: c8 31 cpi r28, 0x18 ; 24
188: d1 05 cpc r29, r1
18a: 68 f3 brcs .-38 ; 0x166
}
}
}
Clr_Stb();
18c: 91 98 cbi 0x12, 1 ; 18
AvrXDelay(&delay, bMoveSpeed);
18e: b5 01 movw r22, r10
190: 8d ef ldi r24, 0xFD ; 253
192: 90 e0 ldi r25, 0x00 ; 0
194: 8b d2 rcall .+1302 ; 0x6ac
196: 0f 5f subi r16, 0xFF ; 255
198: 1f 4f sbci r17, 0xFF ; 255
19a: 08 94 sec
19c: e1 08 sbc r14, r1
19e: f1 08 sbc r15, r1
1a0: 0c 30 cpi r16, 0x0C ; 12
1a2: 11 05 cpc r17, r1
1a4: e8 f2 brcs .-70 ; 0x160
1a6: df 91 pop r29
1a8: cf 91 pop r28
1aa: 1f 91 pop r17
1ac: 0f 91 pop r16
1ae: ff 90 pop r15
1b0: ef 90 pop r14
1b2: df 90 pop r13
1b4: bf 90 pop r11
1b6: af 90 pop r10
1b8: 08 95 ret
000001ba <SetOpenColor>:
}
}
//-----------------------------------------------------------------
void SetOpenColor( BYTE bMoveColor, WORD bMoveSpeed)
{
1ba: af 92 push r10
1bc: bf 92 push r11
1be: df 92 push r13
1c0: ef 92 push r14
1c2: ff 92 push r15
1c4: 0f 93 push r16
1c6: 1f 93 push r17
1c8: cf 93 push r28
1ca: df 93 push r29
1cc: d8 2e mov r13, r24
1ce: 5b 01 movw r10, r22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -