📄 os_core.exp
字号:
.LINE 534
MOV.W #_OSTCBTbl,R1
.LINE 535
MOV.W #_OSTCBTbl+14,R0
.LINE 536
MOV.B #3,R4L
.LINE 536
L166:
.LINE 536
.LINE 537
MOV.W R0,@(2:16,R1)
.LINE 542
ADD.B #14,R1L
ADDX.B #0,R1H
.LINE 543
ADD.B #14,R0L
ADDX.B #0,R0H
.LINE 536
DEC.B R4L
BNE L166
.LINE 545
SUB.W R0,R0
MOV.W R0,@(2:16,R1)
.LINE 550
MOV.W R0,@_OSTCBList:16
.LINE 551
MOV.W #_OSTCBTbl,R1
MOV.W R1,@_OSTCBFreeList:16
.LINE 552
POP.W R4
RTS
.LINE 574
_OS_MemClr: ; function: OS_MemClr
.STACK _OS_MemClr=4
PUSH.W R5
.LINE 575
MOV.W R0,R5
.LINE 576
SUB.B R0L,R0L
BRA L168
L167:
.LINE 576
.LINE 577
MOV.B R0L,@R5
ADDS.W #1,R5
.LINE 578
SUBS.W #1,R1
L168:
.LINE 576
MOV.W R1,R1
BNE L167
.LINE 580
POP.W R5
RTS
.LINE 606
_OS_MemCopy: ; function: OS_MemCopy
.STACK _OS_MemCopy=8
PUSH.W R6
PUSH.W R5
.LINE 607
MOV.W R0,R5
MOV.W @(6:16,SP),R6
.LINE 608
BRA L170
L169:
.LINE 608
.LINE 609
MOV.B @R1+,R0L
MOV.B R0L,@R5
ADDS.W #1,R5
.LINE 610
SUBS.W #1,R6
L170:
.LINE 608
MOV.W R6,R6
BNE L169
.LINE 612
POP.W R5
POP.W R6
RTS
.LINE 631
_OS_Sched: ; function: OS_Sched
.STACK _OS_Sched=4
PUSH.W R6
.LINE 632
.LINE 639
JSR @_OSCPUSaveSR:16
MOV.B R0L,R6H
.LINE 640
MOV.B @_OSIntNesting:16,R0L
BNE L171
.LINE 640
.LINE 641
MOV.B @_OSLockNesting:16,R0L
BNE L171
.LINE 641
.LINE 642
MOV.B @_OSRdyGrp:16,R0L
SUB.B R0H,R0H
MOV.B @(_OSUnMapTbl:16,R0),R6L
.LINE 643
MOV.B R6L,R0L
MOV.B #8,R0H
MULXU.B R0H,R0
MOV.B R6L,R1L
SUB.B R1H,R1H
MOV.B @(_OSRdyTbl:16,R1),R1L
MOV.B @(_OSUnMapTbl:16,R1),R1L
ADD.B R1L,R0L
MOV.B R0L,@_OSPrioHighRdy:16
.LINE 644
MOV.B @_OSPrioCur:16,R0H
CMP.B R0H,R0L
BEQ L171
.LINE 644
.LINE 645
SUB.B R0H,R0H
ADD.W R0,R0
MOV.W @(_OSTCBPrioTbl:16,R0),R0
MOV.W R0,@_OSTCBHighRdy:16
.LINE 649
MOV.W #_OSCtxSwCtr,R0
JSR @$PRIL$3:16
.LINE 650
JSR @_OSCtxSw:16
L171:
.LINE 654
MOV.B R6H,R0L
JSR @_OSCPURestoreSR:16
.LINE 655
POP.W R6
RTS
.LINE 744
_OS_TaskIdle: ; function: OS_TaskIdle
.STACK _OS_TaskIdle=4
.LINE 745
.LINE 752
L174:
.LINE 752
.LINE 753
JSR @_OSCPUSaveSR:16
MOV.B R0L,R6L
.LINE 754
MOV.W #_OSIdleCtr,R0
JSR @$PRIL$3:16
.LINE 755
MOV.B R6L,R0L
JSR @_OSCPURestoreSR:16
.LINE 756
JSR @_OSTaskIdleHook:16
.LINE 752
BRA L174
.LINE 758
.LINE 785
_OS_TaskStat: ; function: OS_TaskStat
.STACK _OS_TaskStat=26
MOV.W #14,R6
SUB.W R6,SP
.LINE 786
MOV.W #_OSIdleCtrMax,R4
MOV.W #_OSCPUUsage,R5
.LINE 796
BRA L177
L176:
.LINE 796
.LINE 797
MOV.W #15,R0
JSR @_OSTimeDly:16
L177:
.LINE 796
MOV.B @_OSStatRdy:16,R0L
BEQ L176
.LINE 799
MOV.W R4,R1
MOV.W #L178,R2
MOV.W #10,R0
ADD.W SP,R0
JSR @$DIVUL$3:16
.LINE 800
L179:
.LINE 800
.LINE 801
JSR @_OSCPUSaveSR:16
MOV.B R0L,R6L
.LINE 802
MOV.W #_OSIdleCtr,R0
MOV.W #_OSIdleCtrRun,R1
JSR @$MV4$3:16
.LINE 803
MOV.W #_OSIdleCtr,R0
MOV.W #6,R1
ADD.W SP,R1
JSR @$MV4$3:16
.LINE 804
SUB.W R0,R0
MOV.W R0,@_OSIdleCtr:16
MOV.W R0,@_OSIdleCtr+2:16
.LINE 805
MOV.B R6L,R0L
JSR @_OSCPURestoreSR:16
.LINE 806
MOV.W @(10:16,SP),R0
BNE L182
MOV.W @(12:16,SP),R0
BEQ L181
L182:
.LINE 806
.LINE 807
MOV.W #6,R1
ADD.W SP,R1
MOV.W #10,R2
ADD.W SP,R2
MOV.W SP,R0
JSR @$DIVUL$3:16
MOV.B #100,R6L
MOV.B @(3:16,R0),R0L
SUB.B R0L,R6L
.LINE 808
MOV.B R6L,R6L
BLT L183
.LINE 808
.LINE 809
MOV.B R6L,@R5
BRA L185
L183:
.LINE 810
.LINE 811
SUB.B R0L,R0L
MOV.B R0L,@R5
BRA L185
L181:
.LINE 813
.LINE 814
SUB.B R0L,R0L
MOV.B R0L,@R5
.LINE 815
MOV.W R4,R1
MOV.W #L178,R2
MOV.W #10,R0
ADD.W SP,R0
JSR @$DIVUL$3:16
L185:
.LINE 817
JSR @_OSTaskStatHook:16
.LINE 821
MOV.W #7,R0
JSR @_OSTimeDly:16
.LINE 800
JMP @L179:16
.LINE 823
.LINE 869
_OS_TCBInit: ; function: OS_TCBInit
.STACK _OS_TCBInit=24
JSR @$sp_regsv$3:16
.LINE 870
MOV.W #_OSTCBList,R4
MOV.B R0L,R5L
MOV.W R1,R3
.LINE 877
JSR @_OSCPUSaveSR:16
MOV.B R0L,R5H
.LINE 878
MOV.W @_OSTCBFreeList:16,R6
.LINE 879
BNE $+6
JMP @L186:16
.LINE 879
.LINE 880
MOV.W @(2:16,R6),R0
MOV.W R0,@_OSTCBFreeList:16
.LINE 881
MOV.B R5H,R0L
JSR @_OSCPURestoreSR:16
.LINE 882
MOV.W R3,@R6
.LINE 883
MOV.B R5L,@(9:16,R6)
.LINE 884
SUB.W R0,R0
MOV.B R0L,@(8:16,R6)
.LINE 885
MOV.W R0,@(6:16,R6)
.LINE 905
MOV.B R5L,R0L
SHLR.B R0L
SHLR.B R0L
SHLR.B R0L
MOV.B R0L,@(11:16,R6)
.LINE 906
MOV.B @(_OSMapTbl:16,R0),R0L
MOV.B R0L,@(13:16,R6)
.LINE 907
MOV.B R5L,R0L
AND.B #7,R0L
MOV.B R0L,@(10:16,R6)
.LINE 908
MOV.B @(_OSMapTbl:16,R0),R0L
MOV.B R0L,@(12:16,R6)
.LINE 936
MOV.W R6,R0
JSR @_OSTCBInitHook:16
.LINE 939
MOV.W R6,R0
JSR @_OSTaskCreateHook:16
.LINE 941
JSR @_OSCPUSaveSR:16
MOV.B R0L,R5H
.LINE 942
MOV.B R5L,R0L
SUB.B R0H,R0H
ADD.W R0,R0
MOV.W R6,@(_OSTCBPrioTbl:16,R0)
.LINE 943
MOV.W @R4,R0
MOV.W R0,@(2:16,R6)
.LINE 944
SUB.W R0,R0
MOV.W R0,@(4:16,R6)
.LINE 945
MOV.W @R4,R1
BEQ L187
.LINE 945
.LINE 946
MOV.W R6,@(4:16,R1)
L187:
.LINE 948
MOV.W R6,@R4
.LINE 949
MOV.B @(13:16,R6),R0L
MOV.B @_OSRdyGrp:16,R0H
OR.B R0L,R0H
MOV.B R0H,@_OSRdyGrp:16
.LINE 950
MOV.B @(11:16,R6),R0L
SUB.B R0H,R0H
MOV.B @(12:16,R6),R1L
MOV.B @(_OSRdyTbl:16,R0),R1H
OR.B R1L,R1H
MOV.B R1H,@(_OSRdyTbl:16,R0)
.LINE 951
MOV.B R5H,R0L
JSR @_OSCPURestoreSR:16
.LINE 952
SUB.B R0L,R0L
BRA L188
L186:
.LINE 954
JSR @_OSCPURestoreSR:16
.LINE 955
MOV.B #70,R0L
.LINE 956
L188:
JMP @$spregld2$3:16
.SECTION C,DATA,ALIGN=2
L178:
.DATA.W H'0000,H'0064
_OSMapTbl: ; static: OSMapTbl
.DATA.B H'01,H'02,H'04,H'08,H'10,H'20,H'40,H'80
_OSUnMapTbl: ; static: OSUnMapTbl
.DATA.B H'00,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'05,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'06,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'05,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'07,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'05,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'06,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'05,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'04,H'00,H'01,H'00,H'02,H'00,H'01,H'00,H'03,H'00,H'01,H'00,H'02,H'00,H'01,H'00
.SECTION B,DATA,ALIGN=2
_OSCtxSwCtr: ; static: OSCtxSwCtr
.RES.W 2
_OSIdleCtrMax: ; static: OSIdleCtrMax
.RES.W 2
_OSIdleCtrRun: ; static: OSIdleCtrRun
.RES.W 2
_OSTaskStatStk: ; static: OSTaskStatStk
.RES.W 50
_OSIdleCtr: ; static: OSIdleCtr
.RES.W 2
_OSTaskIdleStk: ; static: OSTaskIdleStk
.RES.W 25
_OSTCBCur: ; static: OSTCBCur
.RES.W 1
_OSTCBFreeList: ; static: OSTCBFreeList
.RES.W 1
_OSTCBHighRdy: ; static: OSTCBHighRdy
.RES.W 1
_OSTCBList: ; static: OSTCBList
.RES.W 1
_OSTCBPrioTbl: ; static: OSTCBPrioTbl
.RES.W 5
_OSTCBTbl: ; static: OSTCBTbl
.RES.W 28
_OSCPUUsage: ; static: OSCPUUsage
.RES.B 1
_OSStatRdy: ; static: OSStatRdy
.RES.B 1
_OSIntNesting: ; static: OSIntNesting
.RES.B 1
_OSIntExitY: ; static: OSIntExitY
.RES.B 1
_OSLockNesting: ; static: OSLockNesting
.RES.B 1
_OSPrioCur: ; static: OSPrioCur
.RES.B 1
_OSPrioHighRdy: ; static: OSPrioHighRdy
.RES.B 1
_OSRdyGrp: ; static: OSRdyGrp
.RES.B 1
_OSRdyTbl: ; static: OSRdyTbl
.RES.B 1
_OSRunning: ; static: OSRunning
.RES.B 1
_OSTaskCtr: ; static: OSTaskCtr
.RES.B 1
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -