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

📄 os_core.src

📁 ucOS 模拟环境
💻 SRC
📖 第 1 页 / 共 3 页
字号:
          .CPU        300
          .IMPORT     $DIVUL$3
          .IMPORT     $SLI$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     _OSEventFreeList
          .EXPORT     _OSEventTbl
          .EXPORT     _OSCPUUsage
          .EXPORT     _OSIdleCtrMax
          .EXPORT     _OSIdleCtrRun
          .EXPORT     _OSStatRdy
          .EXPORT     _OSTaskStatStk
          .EXPORT     _OSIntNesting
          .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     _OSUnMapTbl
          .EXPORT     _OSTimeTick
          .EXPORT     _OSInit
          .EXPORT     _OSIntEnter
          .EXPORT     _OSIntExit
          .EXPORT     _OSStart
          .EXPORT     _OSStatInit
          .EXPORT     _OSVersion
          .EXPORT     _OS_EventTaskRdy
          .EXPORT     _OS_EventTaskWait
          .EXPORT     _OS_EventTO
          .EXPORT     _OS_EventWaitListInit
          .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",223
_OSInit:                                ; function: OSInit
          .STACK      _OSInit=2
          .LINE       224
          .LINE       226
          JSR         @_OSInitHookBegin:16
          .LINE       229
          JSR         @__$OS_InitMisc:16
          .LINE       231
          JSR         @__$OS_InitRdyList:16
          .LINE       233
          JSR         @__$OS_InitTCBList:16
          .LINE       235
          JSR         @__$OS_InitEventList:16
          .LINE       249
          JSR         @__$OS_InitTaskIdle:16
          .LINE       251
          JSR         @__$OS_InitTaskStat:16
          .LINE       255
          JMP         @_OSInitHookEnd:16
          .LINE       261
          .LINE       288
_OSIntEnter:                            ; function: OSIntEnter
          .STACK      _OSIntEnter=2
          .LINE       289
          .LINE       290
          MOV.B       @_OSRunning:16,R0L
          CMP.B       #1,R0L
          BNE         L195
          .LINE       290
          .LINE       291
          MOV.W       #_OSIntNesting,R1
          MOV.B       @R1,R0L
          CMP.B       #-1,R0L
          BHS         L195
          .LINE       291
          .LINE       292
          INC.B       R0L
          MOV.B       R0L,@R1
L195:                                    
          .LINE       295
          RTS
          .LINE       316
_OSIntExit:                             ; function: OSIntExit
          .STACK      _OSIntExit=6
          PUSH.W      R6
          PUSH.W      R5
          .LINE       317
          MOV.W       #_OSIntNesting,R6
          .LINE       324
          MOV.B       @_OSRunning:16,R0L
          CMP.B       #1,R0L
          BNE         L197
          .LINE       324
          .LINE       325
          JSR         @_OSCPUSaveSR:16
          MOV.B       R0L,R5H
          .LINE       326
          MOV.B       @R6,R0L
          BEQ         L198
          .LINE       326
          .LINE       327
          DEC.B       R0L
          MOV.B       R0L,@R6
L198:                                    
          .LINE       329
          MOV.B       @R6,R0L
          BNE         L199
          .LINE       329
          .LINE       330
          MOV.B       @_OSLockNesting:16,R0L
          BNE         L199
          .LINE       330
          .LINE       331
          JSR         @__$OS_SchedNew:16
          .LINE       332
          MOV.B       @_OSPrioHighRdy:16,R5L
          MOV.B       @_OSPrioCur:16,R0L
          CMP.B       R0L,R5L
          BEQ         L199
          .LINE       332
          .LINE       333
          MOV.B       R5L,R0L
          SUB.B       R0H,R0H
          ADD.W       R0,R0
          MOV.W       @(_OSTCBPrioTbl:16,R0),R0
          MOV.W       R0,@_OSTCBHighRdy:16
          .LINE       337
          MOV.W       #_OSCtxSwCtr,R0
          JSR         @$PRIL$3:16
          .LINE       338
          JSR         @_OSIntCtxSw:16
L199:                                    
          .LINE       342
          MOV.B       R5H,R0L
          JSR         @_OSCPURestoreSR:16
L197:                                    
          .LINE       344
          POP.W       R5
          POP.W       R6
          RTS
          .LINE       448
_OSStart:                               ; function: OSStart
          .STACK      _OSStart=2
          .LINE       449
          .LINE       450
          MOV.B       @_OSRunning:16,R0L
          BNE         L202
          .LINE       450
          .LINE       451
          JSR         @__$OS_SchedNew:16
          MOV.B       @_OSPrioHighRdy:16,R0L
          .LINE       452
          MOV.B       R0L,@_OSPrioCur:16
          .LINE       453
          SUB.B       R0H,R0H
          ADD.W       R0,R0
          MOV.W       @(_OSTCBPrioTbl:16,R0),R0
          MOV.W       R0,@_OSTCBHighRdy:16
          .LINE       454
          MOV.W       R0,@_OSTCBCur:16
          .LINE       455
          JSR         @_OSStartHighRdy:16
L202:                                    
          .LINE       457
          RTS
          .LINE       480
_OSStatInit:                            ; function: OSStatInit
          .STACK      _OSStatInit=4
          PUSH.W      R6
          .LINE       481
          .LINE       488
          MOV.W       #2,R0
          JSR         @_OSTimeDly:16
          .LINE       489
          JSR         @_OSCPUSaveSR:16
          .LINE       490
          SUB.W       R1,R1
          MOV.W       R1,@_OSIdleCtr:16
          MOV.W       R1,@_OSIdleCtr+2:16
          .LINE       491
          JSR         @_OSCPURestoreSR:16
          .LINE       492
          MOV.W       #7,R0
          JSR         @_OSTimeDly:16
          .LINE       493
          JSR         @_OSCPUSaveSR:16
          MOV.B       R0L,R6L
          .LINE       494
          MOV.W       #_OSIdleCtr,R0
          MOV.W       #_OSIdleCtrMax,R1
          JSR         @$MV4$3:16
          .LINE       495
          MOV.B       #1,R0L
          MOV.B       R0L,@_OSStatRdy:16
          .LINE       496
          MOV.B       R6L,R0L
          JSR         @_OSCPURestoreSR:16
          .LINE       497
          POP.W       R6
          RTS
          .LINE       514
_OSTimeTick:                            ; function: OSTimeTick
          .STACK      _OSTimeTick=12
          JSR         @$sp_regsv$3:16
          .LINE       515
          MOV.W       #_OSRdyGrp,R4
          .LINE       527
          JSR         @_OSTimeTickHook:16
          .LINE       534
          MOV.B       @_OSRunning:16,R0L
          CMP.B       #1,R0L
          BNE         L204
          .LINE       534
          .LINE       559
          MOV.W       @_OSTCBList:16,R6
          .LINE       560
          BRA         L206
L205:                                    
          .LINE       560
          .LINE       561
          JSR         @_OSCPUSaveSR:16
          MOV.B       R0L,R5L
          .LINE       562
          MOV.W       @(10:16,R6),R0
          BEQ         L207
          .LINE       562
          .LINE       563
          SUBS.W      #1,R0
          MOV.W       R0,@(10:16,R6)
          BNE         L207
          .LINE       563
          .LINE       565
          MOV.B       @(12:16,R6),R0L
          AND.B       #55,R0L
          BEQ         L209
          .LINE       565
          .LINE       566
          MOV.B       @(12:16,R6),R0L
          AND.B       #-56,R0L
          MOV.B       R0L,@(12:16,R6)
          .LINE       567
          MOV.B       #1,R0L
          BRA         L244
L209:                                    
          .LINE       568
          .LINE       569
          SUB.B       R0L,R0L
L244:                                    
          MOV.B       R0L,@(13:16,R6)
          .LINE       572
          MOV.B       @(12:16,R6),R0L
          BTST.B      #3,R0L
          BNE         L207
          .LINE       572
          .LINE       573
          MOV.B       @(18:16,R6),R0L
          MOV.B       @R4,R0H
          OR.B        R0L,R0H
          MOV.B       R0H,@R4
          .LINE       574
          MOV.B       @(16:16,R6),R0L
          SUB.B       R0H,R0H
          MOV.B       @(17:16,R6),R1L
          MOV.B       @(_OSRdyTbl:16,R0),R1H
          OR.B        R1L,R1H
          MOV.B       R1H,@(_OSRdyTbl:16,R0)
L207:                                    
          .LINE       578
          MOV.W       @(2:16,R6),R6
          .LINE       579
          MOV.B       R5L,R0L
          JSR         @_OSCPURestoreSR:16
L206:                                    
          .LINE       560
          MOV.B       @(14:16,R6),R0L
          CMP.B       #4,R0L
          BNE         L205
L204:                                    
          .LINE       582
          JMP         @$spregld2$3:16
          .LINE       598
_OSVersion:                             ; function: OSVersion
          .STACK      _OSVersion=2
          .LINE       599
          .LINE       600
          MOV.W       #280,R0
          .LINE       601
          RTS
          .LINE       645
_OS_EventTaskRdy:                       ; function: OS_EventTaskRdy
          .STACK      _OS_EventTaskRdy=18
          JSR         @$sp_regsv$3:16
          SUBS.W      #2,SP
          SUBS.W      #2,SP
          .LINE       646
          MOV.W       R0,R6
          MOV.W       R1,@SP
          .LINE       662
          MOV.B       @(6:16,R6),R2L
          SUB.B       R2H,R2H
          MOV.B       @(_OSUnMapTbl:16,R2),R5L
          .LINE       663
          MOV.B       R5L,R1L
          MOV.W       #1,R0
          JSR         @$SLI$3:16
          MOV.B       R0L,R4H
          .LINE       664
          SUB.B       R5H,R5H
          MOV.W       R5,R2
          MOV.W       #7,R3
          ADD.W       R6,R3
          ADD.W       R5,R3
          MOV.B       @R3,R0L
          SUB.B       R0H,R0H
          MOV.B       @(_OSUnMapTbl:16,R0),R5H
          .LINE       665
          MOV.B       R5H,R1L
          MOV.B       #1,R0L
          JSR         @$SLI$3:16
          MOV.B       R0L,R4L
          .LINE       666
          MOV.B       R5L,R1L
          MOV.B       #8,R1H
          MULXU.B     R1H,R1
          ADD.B       R5H,R1L
          MOV.B       R1L,R5L
          .LINE       684
          SUB.B       R0H,R0H
          NOT.B       R0L
          NOT.B       R0H
          MOV.B       @R3,R0H
          AND.B       R0L,R0H
          MOV.B       R0H,@R3
          .LINE       685
          MOV.W       #7,R0
          ADD.W       R6,R0
          MOV.W       R2,R1
          ADD.W       R1,R0
          MOV.B       @R0,R1L
          BNE         L213
          .LINE       685
          .LINE       686
          MOV.B       R4H,R0L
          SUB.B       R0H,R0H
          NOT.B       R0L
          NOT.B       R0H
          MOV.B       @(6:16,R6),R0H
          AND.B       R0L,R0H
          MOV.B       R0H,@(6:16,R6)
L213:                                    
          .LINE       688
          MOV.B       R5L,R6L
          SUB.B       R6H,R6H
          ADD.W       R6,R6
          MOV.W       @(_OSTCBPrioTbl:16,R6),R6
          .LINE       689

⌨️ 快捷键说明

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