📄 os_task.src
字号:
.CPU 300
.IMPORT $sp_regsv$3
.IMPORT $spregld2$3
.IMPORT _OSCPUSaveSR
.IMPORT _OSCPURestoreSR
.IMPORT _OSIntNesting
.IMPORT _OSRunning
.IMPORT _OSTCBPrioTbl
.IMPORT _OS_Sched
.IMPORT _OS_TCBInit
.IMPORT _OSTaskStkInit
.EXPORT _OSTaskCreate
.SECTION P,CODE,ALIGN=2
.LINE "E:\Study\ucOS-II\ucOS-II\ucOS kernel\Task\os_task.c",176
_OSTaskCreate: ; function: OSTaskCreate
.STACK _OSTaskCreate=16
JSR @$sp_regsv$3:16
.LINE 177
MOV.W R0,R3
MOV.W R1,R2
.LINE 191
JSR @_OSCPUSaveSR:16
MOV.B R0L,R6L
.LINE 192
MOV.B @_OSIntNesting:16,R0L
BEQ L82
.LINE 192
.LINE 193
MOV.B R6L,R0L
JSR @_OSCPURestoreSR:16
.LINE 194
MOV.B #16,R0L
JMP @L83:16
L82:
.LINE 196
MOV.B @(15:16,SP),R5L
SUB.B R5H,R5H
ADD.W R5,R5
MOV.W @(_OSTCBPrioTbl:16,R5),R0
BNE L84
.LINE 196
.LINE 197
MOV.W #1,R0
MOV.W R0,@(_OSTCBPrioTbl:16,R5)
.LINE 199
MOV.B R6L,R0L
JSR @_OSCPURestoreSR:16
.LINE 200
SUB.W R4,R4
PUSH.W R4
MOV.W @(14:16,SP),R0
PUSH.W R0
MOV.W R3,R0
MOV.W R2,R1
JSR @_OSTaskStkInit:16
ADDS.W #2,SP
ADDS.W #2,SP
.LINE 201
SUB.W R6,R6
PUSH.W R4
PUSH.W R6
MOV.W @L85+2:16,R1
PUSH.W R1
MOV.W @L85:16,R1
PUSH.W R1
PUSH.W R4
PUSH.W R6
MOV.W R0,R1
MOV.B @(27:16,SP),R0L
JSR @_OS_TCBInit:16
MOV.W #12,R1
ADD.W R1,SP
MOV.B R0L,R4L
.LINE 202
BNE L86
.LINE 202
.LINE 203
MOV.B @_OSRunning:16,R0L
CMP.B #1,R0L
BNE L88
.LINE 203
.LINE 204
JSR @_OS_Sched:16
BRA L88
L86:
.LINE 206
.LINE 207
JSR @_OSCPUSaveSR:16
.LINE 208
MOV.W R6,@(_OSTCBPrioTbl:16,R5)
.LINE 209
JSR @_OSCPURestoreSR:16
L88:
.LINE 211
MOV.B R4L,R0L
BRA L83
L84:
.LINE 213
MOV.B R6L,R0L
JSR @_OSCPURestoreSR:16
.LINE 214
MOV.B #40,R0L
.LINE 215
L83:
JMP @$spregld2$3:16
.SECTION C,DATA,ALIGN=2
L85:
.DATA.W H'0000,H'0000
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -