📄 rtos.lst
字号:
1 .file "RTOS.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global OSTaskCreate
20 OSTaskCreate:
21 .LFB3:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 0000 DB01 movw r26,r22
26 .LM2:
27 0002 8C93 st X,r24
28 .LM3:
29 0004 892F mov r24,r25
30 0006 9927 clr r25
31 0008 8E93 st -X,r24
32 .LM4:
33 000a 1E92 st -X,__zero_reg__
34 .LM5:
35 000c 1E92 st -X,__zero_reg__
36 .LM6:
37 000e 80E8 ldi r24,lo8(-128)
38 0010 8E93 st -X,r24
39 0012 1197 sbiw r26,1
40 .LM7:
41 0014 80E0 ldi r24,lo8(0)
42 .L5:
43 .LM8:
44 0016 8C93 st X,r24
45 0018 1197 sbiw r26,1
46 .LM9:
47 001a 8F5F subi r24,lo8(-(1))
48 001c 8E30 cpi r24,lo8(14)
49 001e D8F3 brlo .L5
50 .LM10:
51 0020 842F mov r24,r20
52 0022 9927 clr r25
53 0024 FC01 movw r30,r24
54 0026 EE0F lsl r30
55 0028 FF1F rol r31
56 002a EE0F lsl r30
57 002c FF1F rol r31
58 002e E80F add r30,r24
59 0030 F91F adc r31,r25
60 0032 E050 subi r30,lo8(-(TCB))
61 0034 F040 sbci r31,hi8(-(TCB))
62 0036 A083 st Z,r26
63 0038 B183 std Z+1,r27
64 .LM11:
65 003a 21E0 ldi r18,lo8(1)
66 003c 30E0 ldi r19,hi8(1)
67 003e 02C0 rjmp 2f
68 0040 220F 1: lsl r18
69 0042 331F rol r19
70 0044 8A95 2: dec r24
71 0046 E2F7 brpl 1b
72 0048 222A or r2,r18
73 /* epilogue: frame size=0 */
74 004a 0895 ret
75 /* epilogue end (size=1) */
76 /* function OSTaskCreate size 39 (38) */
77 .LFE3:
79 .global OSStartTask
81 OSStartTask:
82 .LFB4:
83 .LM12:
84 /* prologue: frame size=0 */
85 /* prologue end (size=0) */
86 .LM13:
87 004c 44E0 ldi r20,lo8(4)
88 004e 342E mov r3,r20
89 .LM14:
90 0050 532C mov r5,r3
91 .LM15:
92 0052 8091 0000 lds r24,TCB+20
93 0056 9091 0000 lds r25,(TCB+20)+1
94 005a 4196 adiw r24,17
95 005c 9EBF out (93)+1-0x20,r25
96 005e 8DBF out 93-0x20,r24
97 .LM16:
98 /* #APP */
99 0060 1895 reti
100
101 /* #NOAPP */
102 /* epilogue: frame size=0 */
103 0062 0895 ret
104 /* epilogue end (size=1) */
105 /* function OSStartTask size 15 (14) */
106 .LFE4:
108 .global OS_TASK_SW
110 OS_TASK_SW:
111 .LFB5:
112 .LM17:
113 /* prologue: frame size=0 */
114 /* prologue end (size=0) */
115 .LM18:
116 /* #APP */
117 0064 01E0 LDI R16,0x01
118
119 .LM19:
120 0066 7894 SEI
121
122 .LM20:
123 0068 1F92 PUSH __zero_reg__
124
125 .LM21:
126 006a 0F92 PUSH __tmp_reg__
127
128 .LM22:
129 006c 0FB6 IN __tmp_reg__,__SREG__
130
131 .LM23:
132 006e 0F92 PUSH __tmp_reg__
133
134 .LM24:
135 0070 1124 CLR __zero_reg__
136
137 .LM25:
138 0072 2F93 PUSH R18
139
140 .LM26:
141 0074 3F93 PUSH R19
142
143 .LM27:
144 0076 4F93 PUSH R20
145
146 .LM28:
147 0078 5F93 PUSH R21
148
149 .LM29:
150 007a 6F93 PUSH R22
151
152 .LM30:
153 007c 7F93 PUSH R23
154
155 .LM31:
156 007e 8F93 PUSH R24
157
158 .LM32:
159 0080 9F93 PUSH R25
160
161 .LM33:
162 0082 AF93 PUSH R26
163
164 .LM34:
165 0084 BF93 PUSH R27
166
167 .LM35:
168 0086 EF93 PUSH R30
169
170 .LM36:
171 0088 FF93 PUSH R31
172
173 .LM37:
174 Int_OSSched:
175
176 .LM38:
177 008a 7894 SEI
178
179 .LM39:
180 008c CF93 PUSH R28
181
182 .LM40:
183 008e DF93 PUSH R29
184
185 .LM41:
186 /* #NOAPP */
187 0090 832D mov r24,r3
188 0092 9927 clr r25
189 0094 FC01 movw r30,r24
190 0096 EE0F lsl r30
191 0098 FF1F rol r31
192 009a EE0F lsl r30
193 009c FF1F rol r31
194 009e E80F add r30,r24
195 00a0 F91F adc r31,r25
196 00a2 E050 subi r30,lo8(-(TCB))
197 00a4 F040 sbci r31,hi8(-(TCB))
198 00a6 8DB7 in r24,93-0x20
199 00a8 9EB7 in r25,(93)+1-0x20
200 00aa 8083 st Z,r24
201 00ac 9183 std Z+1,r25
202 .LM42:
203 00ae 352C mov r3,r5
204 .LM43:
205 /* #APP */
206 00b0 F894 cli
207 .LM44:
208 /* #NOAPP */
209 00b2 852D mov r24,r5
210 00b4 9927 clr r25
211 00b6 FC01 movw r30,r24
212 00b8 EE0F lsl r30
213 00ba FF1F rol r31
214 00bc EE0F lsl r30
215 00be FF1F rol r31
216 00c0 E80F add r30,r24
217 00c2 F91F adc r31,r25
218 00c4 E050 subi r30,lo8(-(TCB))
219 00c6 F040 sbci r31,hi8(-(TCB))
220 00c8 8081 ld r24,Z
221 00ca 9181 ldd r25,Z+1
222 00cc 9EBF out (93)+1-0x20,r25
223 00ce 8DBF out 93-0x20,r24
224 .LM45:
225 /* #APP */
226 00d0 7894 sei
227 .LM46:
228 00d2 DF91 POP R29
229
230 .LM47:
231 00d4 CF91 POP R28
232
233 .LM48:
234 00d6 FF91 POP R31
235
236 .LM49:
237 00d8 EF91 POP R30
238
239 .LM50:
240 00da BF91 POP R27
241
242 .LM51:
243 00dc AF91 POP R26
244
245 .LM52:
246 00de 9F91 POP R25
247
248 .LM53:
249 00e0 8F91 POP R24
250
251 .LM54:
252 00e2 7F91 POP R23
253
254 .LM55:
255 00e4 6F91 POP R22
256
257 .LM56:
258 00e6 5F91 POP R21
259
260 .LM57:
261 00e8 4F91 POP R20
262
263 .LM58:
264 00ea 3F91 POP R19
265
266 .LM59:
267 00ec 2F91 POP R18
268
269 .LM60:
270 00ee 0F90 POP __tmp_reg__
271
272 .LM61:
273 00f0 0FBE OUT __SREG__,__tmp_reg__
274
275 .LM62:
276 00f2 0F90 POP __tmp_reg__
277
278 .LM63:
279 00f4 1F90 POP __zero_reg__
280
281 .LM64:
282 00f6 F894 CLI
283
284 .LM65:
285 00f8 01FD SBRC R16,1
286
287 .LM66:
288 00fa 22C0 RJMP OSSched
289
290 .LM67:
291 00fc 00E0 LDI R16,0x00
292
293 .LM68:
294 00fe 1895 RETI
295
296 /* #NOAPP */
297 /* epilogue: frame size=0 */
298 0100 0895 ret
299 /* epilogue end (size=1) */
300 /* function OS_TASK_SW size 220 (219) */
301 .LFE5:
303 .global IntSwitch
305 IntSwitch:
306 .LFB6:
307 .LM69:
308 /* prologue: frame size=0 */
309 /* prologue end (size=0) */
310 .LM70:
311 0102 0230 cpi r16,lo8(2)
312 0104 41F4 brne .L10
313 .LM71:
314 0106 4420 tst r4
315 0108 31F4 brne .L10
316 .LM72:
317 /* #APP */
318 010a FF91 POP R31
319
320 .LM73:
321 010c FF91 POP R31
322
323 .LM74:
324 010e FF91 POP R31
325
326 .LM75:
327 0110 FF91 POP R31
328
329 .LM76:
330 0112 01E0 LDI R16,0x01
331
332 .LM77:
333 0114 BACF RJMP Int_OSSched
334
335 /* #NOAPP */
336 .L10:
337 0116 0895 ret
338 /* epilogue: frame size=0 */
339 0118 0895 ret
340 /* epilogue end (size=1) */
341 /* function IntSwitch size 30 (29) */
342 .LFE6:
344 .global OSFindPrioHighRdy
346 OSFindPrioHighRdy:
347 .LFB17:
348 .LM78:
349 /* prologue: frame size=0 */
350 /* prologue end (size=0) */
351 .LM79:
352 011a 40E0 ldi r20,lo8(0)
353 .LM80:
354 011c 222D mov r18,r2
355 011e 3327 clr r19
356 0120 20FD sbrc r18,0
357 0122 0CC0 rjmp .L14
358 .L15:
359 .LM81:
360 0124 4F5F subi r20,lo8(-(1))
361 0126 4430 cpi r20,lo8(4)
362 0128 48F4 brsh .L14
363 012a C901 movw r24,r18
364 012c 042E mov r0,r20
365 012e 02C0 rjmp 2f
366 0130 9595 1: asr r25
367 0132 8795 ror r24
368 0134 0A94 2: dec r0
369 0136 E2F7 brpl 1b
370 0138 80FF sbrs r24,0
371 013a F4CF rjmp .L15
372 .L14:
373 .LM82:
374 013c 542E mov r5,r20
375 /* epilogue: frame size=0 */
376 013e 0895 ret
377 /* epilogue end (size=1) */
378 /* function OSFindPrioHighRdy size 19 (18) */
379 .LFE17:
381 .global OSSched
383 OSSched:
384 .LFB7:
385 .LM83:
386 /* prologue: frame size=0 */
387 /* prologue end (size=0) */
388 .LM84:
389 0140 ECDF rcall OSFindPrioHighRdy
390 .LM85:
391 0142 5310 cpse r5,r3
392 .LM86:
393 0144 8FDF rcall OS_TASK_SW
394 .L17:
395 0146 0895 ret
396 /* epilogue: frame size=0 */
397 0148 0895 ret
398 /* epilogue end (size=1) */
399 /* function OSSched size 6 (5) */
400 .LFE7:
402 .global OSTaskSuspend
404 OSTaskSuspend:
405 .LFB8:
406 .LM87:
407 /* prologue: frame size=0 */
408 /* prologue end (size=0) */
409 014a 482F mov r20,r24
410 .LM88:
411 /* #APP */
412 014c 0FB6 IN __tmp_reg__,__SREG__
413 014e 0F92 PUSH __tmp_reg__
414 0150 1124 CLR __zero_reg__
415 0152 F894 CLI
416
417 .LM89:
418 /* #NOAPP */
419 0154 282F mov r18,r24
420 0156 3327 clr r19
421 0158 F901 movw r30,r18
422 015a EE0F lsl r30
423 015c FF1F rol r31
424 015e EE0F lsl r30
425 0160 FF1F rol r31
426 0162 E20F add r30,r18
427 0164 F31F adc r31,r19
428 0166 E050 subi r30,lo8(-(TCB))
429 0168 F040 sbci r31,hi8(-(TCB))
430 016a 1282 std Z+2,__zero_reg__
431 016c 1382 std Z+3,__zero_reg__
432 .LM90:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -