⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_core.exp

📁 ucOS 模拟环境
💻 EXP
📖 第 1 页 / 共 2 页
字号:
          .CPU        300
          .IMPORT     $DIVUL$3
          .IMPORT     $sp_regsv$3
          .IMPORT     $PRIL$3
          .IMPORT     $MV4$3
          .IMPORT     $spregld2$3
          .IMPORT     _OSCPUSaveSR
          .IMPORT     _OSCPURestoreSR
          .IMPORT     _OSTaskCreate
          .IMPORT     _OSTimeDly
          .IMPORT     _OSInitHookBegin
          .IMPORT     _OSInitHookEnd
          .IMPORT     _OSIntCtxSw
          .IMPORT     _OSStartHighRdy
          .IMPORT     _OSTaskCreateHook
          .IMPORT     _OSTaskIdleHook
          .IMPORT     _OSTaskStatHook
          .IMPORT     _OSTCBInitHook
          .IMPORT     _OSTimeTickHook
          .IMPORT     _OSCtxSw
          .EXPORT     _OSCtxSwCtr
          .EXPORT     _OSCPUUsage
          .EXPORT     _OSIdleCtrMax
          .EXPORT     _OSIdleCtrRun
          .EXPORT     _OSStatRdy
          .EXPORT     _OSTaskStatStk
          .EXPORT     _OSIntNesting
          .EXPORT     _OSIntExitY
          .EXPORT     _OSLockNesting
          .EXPORT     _OSPrioCur
          .EXPORT     _OSPrioHighRdy
          .EXPORT     _OSRdyGrp
          .EXPORT     _OSRdyTbl
          .EXPORT     _OSRunning
          .EXPORT     _OSTaskCtr
          .EXPORT     _OSIdleCtr
          .EXPORT     _OSTaskIdleStk
          .EXPORT     _OSTCBCur
          .EXPORT     _OSTCBFreeList
          .EXPORT     _OSTCBHighRdy
          .EXPORT     _OSTCBList
          .EXPORT     _OSTCBPrioTbl
          .EXPORT     _OSTCBTbl
          .EXPORT     _OSMapTbl
          .EXPORT     _OSUnMapTbl
          .EXPORT     _OSTimeTick
          .EXPORT     _OSInit
          .EXPORT     _OSIntEnter
          .EXPORT     _OSIntExit
          .EXPORT     _OSStart
          .EXPORT     _OSStatInit
          .EXPORT     _OS_MemClr
          .EXPORT     _OS_MemCopy
          .EXPORT     _OS_Sched
          .EXPORT     _OS_TaskIdle
          .EXPORT     _OS_TaskStat
          .EXPORT     _OS_TCBInit
          .SECTION    P,CODE,ALIGN=2
          .LINE       "E:\Study\ucOS-II\ucOS-II\ucOS kernel\Task\os_core.c",87
_OSInit:                                ; function: OSInit
          .STACK      _OSInit=2
          .LINE       88
          .LINE       90
          JSR         @_OSInitHookBegin:16
          .LINE       93
          JSR         @__$OS_InitMisc:16
          .LINE       95
          JSR         @__$OS_InitRdyList:16
          .LINE       97
          JSR         @__$OS_InitTCBList:16
          .LINE       99
          JSR         @__$OS_InitTaskIdle:16
          .LINE       102
          JSR         @__$OS_InitTaskStat:16
          .LINE       106
          JMP         @_OSInitHookEnd:16
          .LINE       108
          .LINE       135
_OSIntEnter:                            ; function: OSIntEnter
          .STACK      _OSIntEnter=2
          .LINE       136
          .LINE       137
          MOV.B       @_OSRunning:16,R0L
          CMP.B       #1,R0L
          BNE         L149
          .LINE       137
          .LINE       138
          MOV.W       #_OSIntNesting,R1
          MOV.B       @R1,R0L
          CMP.B       #-1,R0L
          BHS         L149
          .LINE       138
          .LINE       139
          INC.B       R0L
          MOV.B       R0L,@R1
L149:                                    
          .LINE       142
          RTS
          .LINE       163
_OSIntExit:                             ; function: OSIntExit
          .STACK      _OSIntExit=6
          PUSH.W      R6
          PUSH.W      R5
          .LINE       164
          MOV.W       #_OSIntNesting,R5
          .LINE       170
          MOV.B       @_OSRunning:16,R0L
          CMP.B       #1,R0L
          BNE         L151
          .LINE       170
          .LINE       171
          JSR         @_OSCPUSaveSR:16
          MOV.B       R0L,R6H
          .LINE       172
          MOV.B       @R5,R0L
          BEQ         L152
          .LINE       172
          .LINE       173
          DEC.B       R0L
          MOV.B       R0L,@R5
L152:                                    
          .LINE       175
          MOV.B       @R5,R0L
          BNE         L153
          .LINE       175
          .LINE       176
          MOV.B       @_OSLockNesting:16,R0L
          BNE         L153
          .LINE       176
          .LINE       177
          MOV.B       @_OSRdyGrp:16,R0L
          SUB.B       R0H,R0H
          MOV.B       @(_OSUnMapTbl:16,R0),R6L
          .LINE       178
          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
          MOV.B       R6L,@_OSIntExitY:16
          .LINE       179
          MOV.B       @_OSPrioCur:16,R0H
          CMP.B       R0H,R0L
          BEQ         L153
          .LINE       179
          .LINE       180
          SUB.B       R0H,R0H
          ADD.W       R0,R0
          MOV.W       @(_OSTCBPrioTbl:16,R0),R0
          MOV.W       R0,@_OSTCBHighRdy:16
          .LINE       184
          MOV.W       #_OSCtxSwCtr,R0
          JSR         @$PRIL$3:16
          .LINE       185
          JSR         @_OSIntCtxSw:16
L153:                                    
          .LINE       189
          MOV.B       R6H,R0L
          JSR         @_OSCPURestoreSR:16
L151:                                    
          .LINE       191
          POP.W       R5
          POP.W       R6
          RTS
          .LINE       213
_OSStart:                               ; function: OSStart
          .STACK      _OSStart=2
          .LINE       214
          .LINE       219
          MOV.B       @_OSRunning:16,R0L
          BNE         L156
          .LINE       219
          .LINE       220
          MOV.B       @_OSRdyGrp:16,R0L
          SUB.B       R0H,R0H
          MOV.B       @(_OSUnMapTbl:16,R0),R1L
          .LINE       221
          SUB.B       R1H,R1H
          MOV.B       @(_OSRdyTbl:16,R1),R0L
          MOV.B       @(_OSUnMapTbl:16,R0),R1H
          .LINE       222
          MOV.B       R1L,R0L
          MOV.B       #8,R0H
          MULXU.B     R0H,R0
          ADD.B       R1H,R0L
          MOV.B       R0L,R1L
          .LINE       223
          MOV.B       R0L,@_OSPrioCur:16
          .LINE       224
          SUB.B       R0H,R0H
          ADD.W       R0,R0
          MOV.W       @(_OSTCBPrioTbl:16,R0),R0
          MOV.W       R0,@_OSTCBHighRdy:16
          MOV.B       R1L,@_OSPrioHighRdy:16
          .LINE       225
          MOV.W       R0,@_OSTCBCur:16
          .LINE       226
          JSR         @_OSStartHighRdy:16
L156:                                    
          .LINE       228
          RTS
          .LINE       251
_OSStatInit:                            ; function: OSStatInit
          .STACK      _OSStatInit=4
          PUSH.W      R6
          .LINE       252
          .LINE       258
          MOV.W       #2,R0
          JSR         @_OSTimeDly:16
          .LINE       259
          JSR         @_OSCPUSaveSR:16
          .LINE       260
          SUB.W       R1,R1
          MOV.W       R1,@_OSIdleCtr:16
          MOV.W       R1,@_OSIdleCtr+2:16
          .LINE       261
          JSR         @_OSCPURestoreSR:16
          .LINE       262
          MOV.W       #7,R0
          JSR         @_OSTimeDly:16
          .LINE       263
          JSR         @_OSCPUSaveSR:16
          MOV.B       R0L,R6L
          .LINE       264
          MOV.W       #_OSIdleCtr,R0
          MOV.W       #_OSIdleCtrMax,R1
          JSR         @$MV4$3:16
          .LINE       265
          MOV.B       #1,R0L
          MOV.B       R0L,@_OSStatRdy:16
          .LINE       266
          MOV.B       R6L,R0L
          JSR         @_OSCPURestoreSR:16
          .LINE       267
          POP.W       R6
          RTS
          .LINE       284
_OSTimeTick:                            ; function: OSTimeTick
          .STACK      _OSTimeTick=12
          JSR         @$sp_regsv$3:16
          .LINE       285
          MOV.W       #_OSRdyGrp,R4
          .LINE       294
          JSR         @_OSTimeTickHook:16
          .LINE       301
          MOV.B       @_OSRunning:16,R0L
          CMP.B       #1,R0L
          BNE         L158
          .LINE       301
          .LINE       302
          MOV.W       @_OSTCBList:16,R6
          .LINE       303
          BRA         L160
L159:                                    
          .LINE       303
          .LINE       304
          JSR         @_OSCPUSaveSR:16
          MOV.B       R0L,R5L
          .LINE       305
          MOV.W       @(6:16,R6),R0
          BEQ         L161
          .LINE       305
          .LINE       306
          SUBS.W      #1,R0
          MOV.W       R0,@(6:16,R6)
          BNE         L161
          .LINE       306
          .LINE       307
          MOV.B       @(8:16,R6),R0L
          BTST.B      #3,R0L
          BNE         L163
          .LINE       307
          .LINE       308
          MOV.B       @(13:16,R6),R0L
          MOV.B       @R4,R0H
          OR.B        R0L,R0H
          MOV.B       R0H,@R4
          .LINE       309
          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)
          BRA         L161
L163:                                    
          .LINE       310
          .LINE       311
          MOV.W       #1,R0
          MOV.W       R0,@(6:16,R6)
L161:                                    
          .LINE       315
          MOV.W       @(2:16,R6),R6
          .LINE       316
          MOV.B       R5L,R0L
          JSR         @_OSCPURestoreSR:16
L160:                                    
          .LINE       303
          MOV.B       @(9:16,R6),R0L
          CMP.B       #4,R0L
          BNE         L159
L158:                                    
          .LINE       319
          JMP         @$spregld2$3:16
          .LINE       353
__$OS_InitMisc:                         ; function: OS_InitMisc
          .STACK      __$OS_InitMisc=2
          .LINE       354
          .LINE       361
          SUB.B       R0L,R0L
          MOV.B       R0L,@_OSRunning:16
          MOV.B       R0L,@_OSTaskCtr:16
          .LINE       363
          SUB.W       R1,R1
          MOV.W       R1,@_OSCtxSwCtr:16
          MOV.W       R1,@_OSCtxSwCtr+2:16
          .LINE       364
          MOV.W       R1,@_OSIdleCtr:16
          MOV.W       R1,@_OSIdleCtr+2:16
          .LINE       368
          MOV.W       R1,@_OSIdleCtrMax:16
          MOV.W       R1,@_OSIdleCtrMax+2:16
          MOV.W       R1,@_OSIdleCtrRun:16
          MOV.W       R1,@_OSIdleCtrRun+2:16
          .LINE       369
          MOV.B       R0L,@_OSStatRdy:16
          .LINE       371
          RTS
          .LINE       386
__$OS_InitRdyList:                      ; function: OS_InitRdyList
          .STACK      __$OS_InitRdyList=4
          PUSH.W      R5
          .LINE       387
          .LINE       392
          SUB.B       R0L,R0L
          MOV.B       R0L,@_OSRdyGrp:16
          .LINE       393
          MOV.W       #_OSRdyTbl,R1
          .LINE       394
          SUB.W       R5,R5
          .LINE       394
L165:                                    
          .LINE       394
          .LINE       395
          MOV.B       R0L,@R1
          ADDS.W      #1,R1
          .LINE       394
          ADDS.W      #1,R5
          .LINE       394
          MOV.W       R5,R5
          BEQ         L165
          .LINE       399
          SUB.B       R0H,R0H
          MOV.B       R0L,@_OSPrioHighRdy:16
          MOV.B       R0L,@_OSPrioCur:16
          .LINE       402
          MOV.W       R0,@_OSTCBCur:16
          MOV.W       R0,@_OSTCBHighRdy:16
          .LINE       403
          POP.W       R5
          RTS
          .LINE       419
__$OS_InitTaskIdle:                     ; function: OS_InitTaskIdle
          .STACK      __$OS_InitTaskIdle=2
          .LINE       420
          .LINE       448
          MOV.B       #4,R0L
          PUSH.W      R0
          MOV.W       #_OSTaskIdleStk+48,R0
          PUSH.W      R0
          SUB.W       R1,R1
          MOV.W       #_OS_TaskIdle,R0
          JSR         @_OSTaskCreate:16
          ADDS.W      #2,SP
          ADDS.W      #2,SP
          .LINE       456
          RTS
          .LINE       472
__$OS_InitTaskStat:                     ; function: OS_InitTaskStat
          .STACK      __$OS_InitTaskStat=2
          .LINE       473
          .LINE       501
          MOV.B       #3,R0L
          PUSH.W      R0
          MOV.W       #_OSTaskStatStk+98,R0
          PUSH.W      R0
          SUB.W       R1,R1
          MOV.W       #_OS_TaskStat,R0
          JSR         @_OSTaskCreate:16
          ADDS.W      #2,SP
          ADDS.W      #2,SP
          .LINE       509
          RTS
          .LINE       525
__$OS_InitTCBList:                      ; function: OS_InitTCBList
          .STACK      __$OS_InitTCBList=4
          PUSH.W      R4
          .LINE       526
          .LINE       532
          MOV.W       #56,R1
          MOV.W       #_OSTCBTbl,R0
          BSR         _OS_MemClr
          .LINE       533
          MOV.W       #10,R1
          MOV.W       #_OSTCBPrioTbl,R0
          BSR         _OS_MemClr

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -