📄 os.lst
字号:
294 0068 0895 ret
295 /* epilogue end (size=1) */
296 /* function OS_post size 33 (32) */
305 .data
306 .LC0:
307 0000 2573 00 .string "%s"
308 .text
311 .global error
313 error:
85:os.c **** //--------------------错误信息输出函数-------------------------------
86:os.c **** inline void error(char * info)
87:os.c **** {
315 .LM30:
316 /* prologue: frame size=0 */
317 /* prologue end (size=0) */
88:os.c **** printf("%s",info);
319 .LM31:
320 006a 9F93 push r25
321 006c 8F93 push r24
322 006e 80E0 ldi r24,lo8(.LC0)
323 0070 90E0 ldi r25,hi8(.LC0)
324 0072 9F93 push r25
325 0074 8F93 push r24
326 0076 0E94 0000 call printf
327 007a 0F90 pop __tmp_reg__
328 007c 0F90 pop __tmp_reg__
329 007e 0F90 pop __tmp_reg__
330 0080 0F90 pop __tmp_reg__
331 /* epilogue: frame size=0 */
332 0082 0895 ret
333 /* epilogue end (size=1) */
334 /* function error size 13 (12) */
337 .global OS_run_next_task
339 OS_run_next_task:
89:os.c **** }
90:os.c **** //---------------任务运行函数1------------------------------------------
91:os.c ****
92:os.c **** inline bool OS_run_next_task(void)
93:os.c **** {
341 .LM32:
342 /* prologue: frame size=0 */
343 /* prologue end (size=0) */
344 .LBB8:
345 .LBB9:
347 .LM33:
348 0084 8FB7 in r24,95-0x20
350 .LM34:
351 /* #APP */
352 0086 F894 cli
353 /* #NOAPP */
354 0088 482F mov r20,r24
355 008a 5527 clr r21
356 .LBE9:
357 .LBE8:
94:os.c **** os_atomic_t fInterruptFlags;
95:os.c **** uint8_t old_full;
96:os.c **** void (*func)(void );
97:os.c ****
98:os.c **** fInterruptFlags = os_atomic_start();
99:os.c **** old_full = OS_sched_full;
359 .LM35:
360 008c 9091 0000 lds r25,OS_sched_full
100:os.c **** func = OS_queue[old_full].tp;
362 .LM36:
363 0090 E92F mov r30,r25
364 0092 FF27 clr r31
365 0094 EE0F add r30,r30
366 0096 FF1F adc r31,r31
367 0098 E050 subi r30,lo8(-(OS_queue))
368 009a F040 sbci r31,hi8(-(OS_queue))
369 009c 2081 ld r18,Z
370 009e 3181 ldd r19,Z+1
101:os.c **** if (func == (void *)0)
372 .LM37:
373 00a0 2115 cp r18,__zero_reg__
374 00a2 3105 cpc r19,__zero_reg__
375 00a4 19F4 brne .L16
376 .LBB10:
377 .LBB11:
379 .LM38:
380 00a6 4FBF out 95-0x20,r20
381 .LBE11:
382 .LBE10:
102:os.c **** {
103:os.c **** os_atomic_end(fInterruptFlags);
104:os.c **** return 0;
384 .LM39:
385 00a8 F901 movw r30,r18
386 00aa 0BC0 rjmp .L14
387 .L16:
105:os.c **** }
106:os.c ****
107:os.c **** OS_queue[old_full].tp = (void *)0;
389 .LM40:
390 00ac 1082 st Z,__zero_reg__
391 00ae 1182 std Z+1,__zero_reg__
108:os.c **** OS_sched_full = (old_full + 1) & OS_TASK_BITMASK;
393 .LM41:
394 00b0 9F5F subi r25,lo8(-(1))
395 00b2 9770 andi r25,lo8(7)
396 00b4 9093 0000 sts OS_sched_full,r25
397 .LBB12:
398 .LBB13:
400 .LM42:
401 00b8 4FBF out 95-0x20,r20
402 .LBE13:
403 .LBE12:
109:os.c **** os_atomic_end(fInterruptFlags);
110:os.c ****
111:os.c ****
112:os.c **** func();
405 .LM43:
406 00ba F901 movw r30,r18
407 00bc 0995 icall
113:os.c ****
114:os.c ****
115:os.c **** return 1;
409 .LM44:
410 00be E1E0 ldi r30,lo8(1)
411 00c0 F0E0 ldi r31,hi8(1)
412 .L14:
116:os.c **** }
414 .LM45:
415 00c2 CF01 movw r24,r30
416 /* epilogue: frame size=0 */
417 00c4 0895 ret
418 /* epilogue end (size=1) */
419 /* function OS_run_next_task size 34 (33) */
430 .global OS_run_task
432 OS_run_task:
117:os.c ****
118:os.c **** //--------------任务运行函数2-------------------------------------------
119:os.c **** inline void OS_run_task(void)
120:os.c **** {
434 .LM46:
435 /* prologue: frame size=0 */
436 /* prologue end (size=0) */
437 .LBB14:
438 .LBB15:
439 .LBB16:
440 .LBB17:
442 .LM47:
443 00c6 8FB7 in r24,95-0x20
445 .LM48:
446 /* #APP */
447 00c8 F894 cli
448 /* #NOAPP */
449 00ca 482F mov r20,r24
450 00cc 5527 clr r21
451 .LBE17:
452 .LBE16:
454 .LM49:
455 00ce 9091 0000 lds r25,OS_sched_full
457 .LM50:
458 00d2 E92F mov r30,r25
459 00d4 FF27 clr r31
460 00d6 EE0F add r30,r30
461 00d8 FF1F adc r31,r31
462 00da E050 subi r30,lo8(-(OS_queue))
463 00dc F040 sbci r31,hi8(-(OS_queue))
464 00de 2081 ld r18,Z
465 00e0 3181 ldd r19,Z+1
467 .LM51:
468 00e2 2115 cp r18,__zero_reg__
469 00e4 3105 cpc r19,__zero_reg__
470 00e6 11F4 brne .L21
471 .LBB18:
472 .LBB19:
474 .LM52:
475 00e8 4FBF out 95-0x20,r20
476 .LBE19:
477 .LBE18:
479 .LM53:
480 00ea 09C0 rjmp .L23
481 .L21:
483 .LM54:
484 00ec 1082 st Z,__zero_reg__
485 00ee 1182 std Z+1,__zero_reg__
487 .LM55:
488 00f0 9F5F subi r25,lo8(-(1))
489 00f2 9770 andi r25,lo8(7)
490 00f4 9093 0000 sts OS_sched_full,r25
491 .LBB20:
492 .LBB21:
494 .LM56:
495 00f8 4FBF out 95-0x20,r20
496 .LBE21:
497 .LBE20:
499 .LM57:
500 00fa F901 movw r30,r18
501 00fc 0995 icall
502 .L23:
503 .LBE15:
504 .LBE14:
505 .LBB22:
506 .LBB23:
508 .LM58:
509 /* #APP */
510 00fe 0000 nop
512 .LM59:
513 0100 0000 nop
514 /* #NOAPP */
515 .LBE23:
516 .LBE22:
517 /* epilogue: frame size=0 */
518 0102 0895 ret
519 /* epilogue end (size=1) */
520 /* function OS_run_task size 34 (33) */
536 .comm OS_queue,16,1
537 .comm OS_sched_full,1,1
538 .comm OS_sched_free,1,1
542 .text
544 Letext:
545 /* File "os.c": code 140 = 0x008c ( 130), prologues 0, epilogues 10 */
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\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:98 .text:00000000 os_atomic_enable_interrupt
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:117 .text:00000004 os_atomic_end
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:133 .text:00000008 os_atomic_start
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:158 .text:00000010 OS_wait
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:179 .text:00000016 OS_sleep
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:202 .text:00000020 OS_sched_init
*COM*:00000001 OS_sched_free
*COM*:00000001 OS_sched_full
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:222 .text:0000002a OS_post
*COM*:00000010 OS_queue
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:313 .text:0000006a error
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:339 .text:00000084 OS_run_next_task
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:432 .text:000000c6 OS_run_task
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccsdaaaa.s:544 .text:00000104 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
printf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -