📄 os_cpu_c.ls1
字号:
441 ; SOURCE LINE # 90
014C A800 F 442 MOV R0,?C_IBP
014E 08 443 INC R0
014F 06 444 INC @R0
0150 E6 445 MOV A,@R0
0151 18 446 DEC R0
0152 8606 447 MOV AR6,@R0
0154 7001 448 JNZ ?C0020
0156 06 449 INC @R0
0157 450 ?C0020:
0157 14 451 DEC A
0158 F582 452 MOV DPL,A
015A 8E83 453 MOV DPH,R6
015C 7403 454 MOV A,#03H
015E F0 455 MOVX @DPTR,A
456 ; *stk++ = 0x04; /* R4 */
457 ; SOURCE LINE # 91
015F A800 F 458 MOV R0,?C_IBP
0161 08 459 INC R0
0162 06 460 INC @R0
0163 E6 461 MOV A,@R0
0164 18 462 DEC R0
0165 8606 463 MOV AR6,@R0
0167 7001 464 JNZ ?C0021
0169 06 465 INC @R0
016A 466 ?C0021:
016A 14 467 DEC A
016B F582 468 MOV DPL,A
016D 8E83 469 MOV DPH,R6
016F 7404 470 MOV A,#04H
0171 F0 471 MOVX @DPTR,A
472 ; *stk++ = 0x05; /* R5 */
473 ; SOURCE LINE # 92
0172 A800 F 474 MOV R0,?C_IBP
0174 08 475 INC R0
0175 06 476 INC @R0
0176 E6 477 MOV A,@R0
0177 18 478 DEC R0
0178 8606 479 MOV AR6,@R0
017A 7001 480 JNZ ?C0022
017C 06 481 INC @R0
017D 482 ?C0022:
017D 14 483 DEC A
017E F582 484 MOV DPL,A
0180 8E83 485 MOV DPH,R6
0182 7405 486 MOV A,#05H
0184 F0 487 MOVX @DPTR,A
488 ; *stk++ = 0x06; /* R6 */
489 ; SOURCE LINE # 93
0185 A800 F 490 MOV R0,?C_IBP
0187 08 491 INC R0
0188 06 492 INC @R0
0189 E6 493 MOV A,@R0
018A 18 494 DEC R0
018B 8606 495 MOV AR6,@R0
018D 7001 496 JNZ ?C0023
018F 06 497 INC @R0
A51 MACRO ASSEMBLER OS_CPU_C 03/19/2009 12:41:50 PAGE 9
0190 498 ?C0023:
0190 14 499 DEC A
0191 F582 500 MOV DPL,A
0193 8E83 501 MOV DPH,R6
0195 7406 502 MOV A,#06H
0197 F0 503 MOVX @DPTR,A
504 ; *stk++ = 0x07; /* R7 */
505 ; SOURCE LINE # 94
0198 A800 F 506 MOV R0,?C_IBP
019A 08 507 INC R0
019B 06 508 INC @R0
019C E6 509 MOV A,@R0
019D 18 510 DEC R0
019E 8606 511 MOV AR6,@R0
01A0 7001 512 JNZ ?C0024
01A2 06 513 INC @R0
01A3 514 ?C0024:
01A3 14 515 DEC A
01A4 F582 516 MOV DPL,A
01A6 8E83 517 MOV DPH,R6
01A8 7407 518 MOV A,#07H
01AA F0 519 MOVX @DPTR,A
520 ;
521 ; return ((void DT_XDATA *)ptos); /* note return ptos, not st
k */
522 ; SOURCE LINE # 96
01AB AF05 523 MOV R7,AR5
01AD AE04 524 MOV R6,AR4
525 ; }
526 ; SOURCE LINE # 97
01AF 527 ?C0001:
01AF E500 F 528 MOV A,?C_IBP
01B1 240A 529 ADD A,#0AH
01B3 F500 F 530 MOV ?C_IBP,A
01B5 22 531 RET
532 ; END OF _?OSTaskStkInit
533
---- 534 CSEG AT 0000BH
000B 020000 F 535 LJMP OSTickISR
536
537 ;
538 ; /*
539 ; *****************************************************************************************
****************
540 ; * OS Time ISR
541 ; *
542 ; * Description: use T0.
543 ; *
544 ; * Arguments :
545 ; *
546 ; * Note(s) : in default, OSTickISR using register bank 0. Register pushing code will ad
ded by keilC.
547 ; *****************************************************************************************
****************
548 ; */
549 ; void OSTickISR() interrupt 1
550
---- 551 RSEG ?PR?OSTickISR?OS_CPU_C
552 USING 0
0000 553 OSTickISR:
0000 C0E0 554 PUSH ACC
0002 C0F0 555 PUSH B
0004 C083 556 PUSH DPH
0006 C082 557 PUSH DPL
0008 C0D0 558 PUSH PSW
000A 75D000 559 MOV PSW,#00H
A51 MACRO ASSEMBLER OS_CPU_C 03/19/2009 12:41:50 PAGE 10
000D C000 560 PUSH AR0
000F C001 561 PUSH AR1
0011 C002 562 PUSH AR2
0013 C003 563 PUSH AR3
0015 C004 564 PUSH AR4
0017 C005 565 PUSH AR5
0019 C006 566 PUSH AR6
001B C007 567 PUSH AR7
568 USING 0
569 ; SOURCE LINE # 110
570 ; {
571 ; TL0 = TIMER_24M_25MS_L;
572 ; SOURCE LINE # 112
001D 758AAA 573 MOV TL0,#0AAH
574 ; TH0 = TIMER_24M_25MS_H;
575 ; SOURCE LINE # 113
0020 758C3C 576 MOV TH0,#03CH
577 ;
578 ; OSIntEnter();
579 ; SOURCE LINE # 115
0023 120000 F 580 LCALL _?OSIntEnter
581 ; OSTimeTick();
582 ; SOURCE LINE # 116
0026 120000 F 583 LCALL _?OSTimeTick
584 ; OSIntExit();
585 ; SOURCE LINE # 117
0029 120000 F 586 LCALL _?OSIntExit
587 ; }
588 ; SOURCE LINE # 118
002C D007 589 POP AR7
002E D006 590 POP AR6
0030 D005 591 POP AR5
0032 D004 592 POP AR4
0034 D003 593 POP AR3
0036 D002 594 POP AR2
0038 D001 595 POP AR1
003A D000 596 POP AR0
003C D0D0 597 POP PSW
003E D082 598 POP DPL
0040 D083 599 POP DPH
0042 D0F0 600 POP B
0044 D0E0 601 POP ACC
0046 32 602 RETI
603 ; END OF OSTickISR
604
605 ;
606 ;
607 ; /*$PAGE*/
608 ; #if OS_CPU_HOOKS_EN
609 ; /*
610 ; *****************************************************************************************
****************
611 ; * TASK CREATION HOOK
612 ; *
613 ; * Description: This function is called when a task is created.
614 ; *
615 ; * Arguments : ptcb is a pointer to the task control block of the task being created.
616 ; *
617 ; * Note(s) : 1) Interrupts are disabled during this call.
618 ; *****************************************************************************************
****************
619 ; */
620 ; void OSTaskCreateHook (OS_TCB DT_XDATA *ptcb) REENTRANT
621
---- 622 RSEG ?PR?_?OSTaskCreateHook?OS_CPU_C
0000 623 _?OSTaskCreateHook:
A51 MACRO ASSEMBLER OS_CPU_C 03/19/2009 12:41:50 PAGE 11
624 USING 0
625 ; SOURCE LINE # 134
0000 1500 F 626 DEC ?C_IBP
0002 1500 F 627 DEC ?C_IBP
0004 A800 F 628 MOV R0,?C_IBP
0006 A606 629 MOV @R0,AR6
0008 08 630 INC R0
0009 A607 631 MOV @R0,AR7
632 ; {
633 ; ptcb = ptcb; /* Prevent compiler warning
*/
634 ; SOURCE LINE # 136
000B A800 F 635 MOV R0,?C_IBP
000D E6 636 MOV A,@R0
000E FE 637 MOV R6,A
000F 08 638 INC R0
0010 E6 639 MOV A,@R0
0011 FF 640 MOV R7,A
0012 A800 F 641 MOV R0,?C_IBP
0014 A606 642 MOV @R0,AR6
0016 08 643 INC R0
0017 A607 644 MOV @R0,AR7
645 ; }
646 ; SOURCE LINE # 137
0019 0500 F 647 INC ?C_IBP
001B 0500 F 648 INC ?C_IBP
001D 22 649 RET
650 ; END OF _?OSTaskCreateHook
651
652 ;
653 ;
654 ; /*
655 ; *****************************************************************************************
****************
656 ; * TASK DELETION HOOK
657 ; *
658 ; * Description: This function is called when a task is deleted.
659 ; *
660 ; * Arguments : ptcb is a pointer to the task control block of the task being deleted.
661 ; *
662 ; * Note(s) : 1) Interrupts are disabled during this call.
663 ; *****************************************************************************************
****************
664 ; */
665 ; void OSTaskDelHook (OS_TCB DT_XDATA *ptcb) REENTRANT
666
---- 667 RSEG ?PR?_?OSTaskDelHook?OS_CPU_C
0000 668 _?OSTaskDelHook:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -