📄 os.lst
字号:
263 .LM29:
264 0066 0895 ret
265 /* epilogue: frame size=0 */
266 0068 0895 ret
267 /* epilogue end (size=1) */
268 /* function OS_post size 33 (32) */
278 .global OS_run_next_task
280 OS_run_next_task:
81:os.c **** //---------------任务运行函数1------------------------------------------
82:os.c ****
83:os.c **** inline bool OS_run_next_task(void)
84:os.c **** {
282 .LM30:
283 /* prologue: frame size=0 */
284 /* prologue end (size=0) */
285 .LBB8:
286 .LBB9:
288 .LM31:
289 006a 8FB7 in r24,95-0x20
291 .LM32:
292 /* #APP */
293 006c F894 cli
294 /* #NOAPP */
295 006e 482F mov r20,r24
296 0070 5527 clr r21
297 .LBE9:
298 .LBE8:
85:os.c **** os_atomic_t fInterruptFlags;
86:os.c **** uint8_t old_full;
87:os.c **** void (*func)(void );
88:os.c ****
89:os.c **** fInterruptFlags = os_atomic_start();
90:os.c **** old_full = OS_sched_full;
300 .LM33:
301 0072 9091 0000 lds r25,OS_sched_full
91:os.c **** func = OS_queue[old_full].tp;
303 .LM34:
304 0076 E92F mov r30,r25
305 0078 FF27 clr r31
306 007a EE0F add r30,r30
307 007c FF1F adc r31,r31
308 007e E050 subi r30,lo8(-(OS_queue))
309 0080 F040 sbci r31,hi8(-(OS_queue))
310 0082 2081 ld r18,Z
311 0084 3181 ldd r19,Z+1
92:os.c **** if (func == (void *)0)
313 .LM35:
314 0086 2115 cp r18,__zero_reg__
315 0088 3105 cpc r19,__zero_reg__
316 008a 19F4 brne .L15
317 .LBB10:
318 .LBB11:
320 .LM36:
321 008c 4FBF out 95-0x20,r20
322 .LBE11:
323 .LBE10:
93:os.c **** {
94:os.c **** os_atomic_end(fInterruptFlags);
95:os.c **** return 0;
325 .LM37:
326 008e F901 movw r30,r18
327 0090 0BC0 rjmp .L13
328 .L15:
96:os.c **** }
97:os.c ****
98:os.c **** OS_queue[old_full].tp = (void *)0;
330 .LM38:
331 0092 1082 st Z,__zero_reg__
332 0094 1182 std Z+1,__zero_reg__
99:os.c **** OS_sched_full = (old_full + 1) & OS_TASK_BITMASK;
334 .LM39:
335 0096 9F5F subi r25,lo8(-(1))
336 0098 9770 andi r25,lo8(7)
337 009a 9093 0000 sts OS_sched_full,r25
338 .LBB12:
339 .LBB13:
341 .LM40:
342 009e 4FBF out 95-0x20,r20
343 .LBE13:
344 .LBE12:
100:os.c **** os_atomic_end(fInterruptFlags);
101:os.c **** func();
346 .LM41:
347 00a0 F901 movw r30,r18
348 00a2 0995 icall
102:os.c **** return 1;
350 .LM42:
351 00a4 E1E0 ldi r30,lo8(1)
352 00a6 F0E0 ldi r31,hi8(1)
353 .L13:
103:os.c **** }
355 .LM43:
356 00a8 CF01 movw r24,r30
357 /* epilogue: frame size=0 */
358 00aa 0895 ret
359 /* epilogue end (size=1) */
360 /* function OS_run_next_task size 34 (33) */
371 .global OS_run_task
373 OS_run_task:
104:os.c ****
105:os.c **** //--------------任务运行函数2-------------------------------------------
106:os.c **** inline void OS_run_task(void)
107:os.c **** {
375 .LM44:
376 /* prologue: frame size=0 */
377 /* prologue end (size=0) */
378 .L19:
379 .LBB14:
380 .LBB15:
381 .LBB16:
382 .LBB17:
384 .LM45:
385 00ac 8FB7 in r24,95-0x20
387 .LM46:
388 /* #APP */
389 00ae F894 cli
390 /* #NOAPP */
391 00b0 482F mov r20,r24
392 00b2 5527 clr r21
393 .LBE17:
394 .LBE16:
396 .LM47:
397 00b4 9091 0000 lds r25,OS_sched_full
399 .LM48:
400 00b8 E92F mov r30,r25
401 00ba FF27 clr r31
402 00bc EE0F add r30,r30
403 00be FF1F adc r31,r31
404 00c0 E050 subi r30,lo8(-(OS_queue))
405 00c2 F040 sbci r31,hi8(-(OS_queue))
406 00c4 2081 ld r18,Z
407 00c6 3181 ldd r19,Z+1
409 .LM49:
410 00c8 2115 cp r18,__zero_reg__
411 00ca 3105 cpc r19,__zero_reg__
412 00cc 51F0 breq .L30
414 .LM50:
415 00ce 1082 st Z,__zero_reg__
416 00d0 1182 std Z+1,__zero_reg__
418 .LM51:
419 00d2 9F5F subi r25,lo8(-(1))
420 00d4 9770 andi r25,lo8(7)
421 00d6 9093 0000 sts OS_sched_full,r25
422 .LBB18:
423 .LBB19:
425 .LM52:
426 00da 4FBF out 95-0x20,r20
427 .LBE19:
428 .LBE18:
430 .LM53:
431 00dc F901 movw r30,r18
432 00de 0995 icall
433 00e0 E5CF rjmp .L19
434 .L30:
435 .LBB20:
436 .LBB21:
438 .LM54:
439 00e2 4FBF out 95-0x20,r20
440 .LBE21:
441 .LBE20:
442 .LBE15:
443 .LBE14:
444 .LBB22:
445 .LBB23:
447 .LM55:
448 00e4 85B7 in r24,85-0x20
449 00e6 8062 ori r24,lo8(32)
450 00e8 85BF out 85-0x20,r24
452 .LM56:
453 /* #APP */
454 00ea 8895 sleep
455 /* #NOAPP */
456 .LBE23:
457 .LBE22:
458 .LBB24:
459 .LBB25:
461 .LM57:
462 /* #APP */
463 00ec 0000 nop
465 .LM58:
466 00ee 0000 nop
467 /* #NOAPP */
468 .LBE25:
469 .LBE24:
470 /* epilogue: frame size=0 */
471 00f0 0895 ret
472 /* epilogue end (size=1) */
473 /* function OS_run_task size 39 (38) */
489 .comm payload,2,1
490 .comm rssi,1003,1
491 .comm isready,1,1
492 .comm testnum,1,1
493 .comm pagenum,2,1
494 .comm prssi,2,1
495 .comm test,264,1
496 .comm tend,2,1
497 .comm OS_queue,16,1
498 .comm OS_sched_full,1,1
499 .comm OS_sched_free,1,1
511 .text
513 Letext:
514 /* File "os.c": code 132 = 0x0084 ( 123), prologues 0, epilogues 9 */
DEFINED SYMBOLS
*ABS*:00000000 os.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:70 .text:00000000 os_atomic_enable_interrupt
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:89 .text:00000004 os_atomic_end
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:105 .text:00000008 os_atomic_start
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:130 .text:00000010 OS_wait
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:151 .text:00000016 OS_sleep
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:174 .text:00000020 OS_sched_init
*COM*:00000001 OS_sched_free
*COM*:00000001 OS_sched_full
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:194 .text:0000002a OS_post
*COM*:00000010 OS_queue
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:280 .text:0000006a OS_run_next_task
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:373 .text:000000ac OS_run_task
*COM*:00000002 payload
*COM*:000003eb rssi
*COM*:00000001 isready
*COM*:00000001 testnum
*COM*:00000002 pagenum
*COM*:00000002 prssi
*COM*:00000108 test
*COM*:00000002 tend
C:\DOCUME~1\bt\LOCALS~1\Temp/ccYXaaaa.s:513 .text:000000f2 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -