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

📄 os_core.asm

📁 该代码采用c5400dsp的汇编语言和c语言实现ucos操作系统
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	.sect	".text"
	.global	_OSSchedLock
	.sym	_OSSchedLock,_OSSchedLock, 32, 2, 0
	.func	463

;***************************************************************
;* FUNCTION DEF: _OSSchedLock                                  *
;***************************************************************
_OSSchedLock:
	.line	2
	.line	3
        CMPM      *(_OSRunning),#1      ; |465| 
        BC        L17,NTC               ; |465| 
        ; branch occurs ; |465| 
	.line	4
 ssbx INTM
	.line	5
        ADDM      #1,*(_OSLockNesting)  ; |467| 
	.line	6
 rsbx INTM
	.line	7
L17:    
	.line	8
        RET
        ; return occurs
	.endfunc	470,000000000h,0


	.sect	".text"
	.global	_OSSchedUnlock
	.sym	_OSSchedUnlock,_OSSchedUnlock, 32, 2, 0
	.func	487

;***************************************************************
;* FUNCTION DEF: _OSSchedUnlock                                *
;***************************************************************
_OSSchedUnlock:
	.line	2
        PSHM      AR1
	.line	3
        CMPM      *(_OSRunning),#1      ; |489| 
        BC        L20,NTC               ; |489| 
        ; branch occurs ; |489| 
	.line	4
 ssbx INTM
	.line	5
        LD        *(_OSLockNesting),A   ; |491| 
        BC        L19,AEQ               ; |491| 
        ; branch occurs ; |491| 
	.line	6
        ADDM      #-1,*(_OSLockNesting) ; |492| 
	.line	7
        LD        *(_OSIntNesting),A
        OR        *(_OSLockNesting),A   ; |493| 
        STLM      A,AR1
        NOP
        NOP
        BANZ      L18,*AR1              ; |493| 
        ; branch occurs ; |493| 
	.line	8
 rsbx INTM
	.line	9
        CALL      #_OSSched             ; |495| 
        ; call occurs [#_OSSched] ; |495| 
	.line	10
        B         L20                   ; |496| 
        ; branch occurs ; |496| 
L18:    
	.line	11
 rsbx INTM
	.line	13
        B         L20                   ; |499| 
        ; branch occurs ; |499| 
L19:    
	.line	14
 rsbx INTM
	.line	16
L20:    
	.line	17
        POPM      AR1
        RET
        ; return occurs
	.endfunc	503,000000400h,1


	.sect	".text"
	.global	_OSStart
	.sym	_OSStart,_OSStart, 32, 2, 0
	.func	523

;***************************************************************
;* FUNCTION DEF: _OSStart                                      *
;***************************************************************
_OSStart:
	.line	2
	.sym	_y,0, 14, 1, 16
	.sym	_x,1, 14, 1, 16
        PSHM      AR1
        FRAME     #-2
	.line	7
        LD        *(_OSRunning),A       ; |529| 
        BC        L21,ANEQ              ; |529| 
        ; branch occurs ; |529| 
	.line	8
        MVDM      *(_OSRdyGrp),AR1
        NOP
        LD        *AR1(_OSUnMapTbl),A
        STL       A,*SP(0)
	.line	9
        MVDK      *SP(0),*(AR1)
        MVDK      *AR1(_OSRdyTbl),*(AR1)
        LD        *AR1(_OSUnMapTbl),A
        STL       A,*SP(1)
	.line	10
        ADD       *SP(0),#3,A,A         ; |532| 
        STL       A,*(_OSPrioHighRdy)
	.line	11
        MVDK      *(_OSPrioHighRdy),*(_OSPrioCur) ; |533| 
	.line	12
        MVDM      *(_OSPrioHighRdy),AR1
        NOP
        MVDK      *AR1(_OSTCBPrioTbl),*(_OSTCBHighRdy) ; |534| 
	.line	13
        MVDK      *(_OSTCBHighRdy),*(_OSTCBCur) ; |535| 
	.line	14
        CALL      #_OSStartHighRdy      ; |536| 
        ; call occurs [#_OSStartHighRdy] ; |536| 
	.line	15
L21:    
	.line	16
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	538,000000400h,3


	.sect	".text"
	.global	_OSTaskIdle
	.sym	_OSTaskIdle,_OSTaskIdle, 32, 2, 0
	.func	588

;***************************************************************
;* FUNCTION DEF: _OSTaskIdle                                   *
;***************************************************************
_OSTaskIdle:
	.line	2
;* A     assigned to _pdata
	.sym	_pdata,0, 16, 17, 16
	.sym	_pdata,0, 16, 1, 16
        FRAME     #-1
        NOP
        STL       A,*SP(0)
	.line	4
        CALL      #_OSTimeGet           ; |591| 
        ; call occurs [#_OSTimeGet] ; |591| 
        DST       A,*(_lasttick$1)      ; |591| 
	.line	5
L22:    
	.line	7
        CALL      #_OSTimeGet           ; |594| 
        ; call occurs [#_OSTimeGet] ; |594| 
        DST       A,*(_x$2)             ; |594| 
	.line	8
 ssbx INTM
	.line	9
        DLD       *(_OSIdleCtr),A       ; |596| 
        ADD       #1,A                  ; |596| 
        DST       A,*(_OSIdleCtr)       ; |596| 
	.line	10
        DLD       *(_x$2),A             ; |597| 
        DADD      *(_tickcount$3),A,A   ; |597| 
        DSUB      *(_lasttick$1),A      ; |597| 
        DST       A,*(_tickcount$3)     ; |597| 
	.line	11
        DLD       *(_x$2),A             ; |598| 
        DST       A,*(_lasttick$1)      ; |598| 
	.line	12
 rsbx INTM
	.line	13
        B         L22                   ; |600| 
        ; branch occurs ; |600| 
	.endfunc	601,000000000h,1


	.sect	".text"
	.global	_OSTCBInit
	.sym	_OSTCBInit,_OSTCBInit, 46, 2, 0
	.func	707

;***************************************************************
;* FUNCTION DEF: _OSTCBInit                                    *
;***************************************************************
_OSTCBInit:
	.line	2
;* A     assigned to _prio
	.sym	_prio,0, 14, 17, 16
	.sym	_ptos,4, 30, 9, 16
	.sym	_pbos,5, 30, 9, 16
	.sym	_id,6, 14, 9, 16
	.sym	_stk_size,7, 14, 9, 16
	.sym	_pext,8, 16, 9, 16
	.sym	_opt,9, 14, 9, 16
	.sym	_prio,0, 14, 1, 16
	.sym	_ptcb,1, 24, 1, 16, _os_tcb
        PSHM      AR1
        FRAME     #-2
        NOP
        STL       A,*SP(0)
	.line	6
 ssbx INTM
	.line	7
        MVKD      *(_OSTCBFreeList),*SP(1) ; |713| 
	.line	8
        LD        *SP(1),A              ; |714| 
        BC        L24,AEQ               ; |714| 
        ; branch occurs ; |714| 
	.line	9
        MVDK      *SP(1),*(AR1)
        MVDK      *AR1(1),*(_OSTCBFreeList) ; |715| 
	.line	10
 rsbx INTM
	.line	11
        LD        *SP(4),A
        STL       A,*AR1
	.line	12
        MVDK      *SP(1),*(AR1)
        LD        *SP(0),A
        STL       A,*AR1(7)
	.line	13
        MVDK      *SP(1),*(AR1)
        ST        #0,*AR1(6)            ; |719| 
	.line	14
        MVDK      *SP(1),*(AR1)
        ST        #0,*AR1(5)            ; |720| 
	.line	23
	.line	24
	.line	25
	.line	26
	.line	27
	.line	34
        RSBX      SXM
        LD        *SP(0),#-3,A          ; |740| 
        MVDK      *SP(1),*(AR1)
        STL       A,*AR1(9)             ; |740| 
	.line	35
        MVDK      *SP(1),*(AR1)
        MVDK      *AR1(9),*(AR1)
        LD        *AR1(_OSMapTbl),A
        MVDK      *SP(1),*(AR1)
        STL       A,*AR1(11)
	.line	36
        LD        #7,A
        AND       *SP(0),A              ; |742| 
        MVDK      *SP(1),*(AR1)
        STL       A,*AR1(8)
	.line	37
        MVDK      *SP(1),*(AR1)
        MVDK      *AR1(8),*(AR1)
        LD        *AR1(_OSMapTbl),A
        MVDK      *SP(1),*(AR1)
        STL       A,*AR1(10)
	.line	40
        MVDK      *SP(1),*(AR1)
        ST        #0,*AR1(3)            ; |746| 
	.line	44
        MVDK      *SP(1),*(AR1)
        ST        #0,*AR1(4)            ; |750| 
	.line	47
 ssbx INTM
	.line	48
        MVDK      *SP(0),*(AR1)
        LD        *SP(1),A
        STL       A,*AR1(_OSTCBPrioTbl)
	.line	49
        MVDK      *SP(1),*(AR1)
        MVKD      *(_OSTCBList),*AR1(1) ; |755| 
	.line	50
        MVDK      *SP(1),*(AR1)
        ST        #0,*AR1(2)            ; |756| 
	.line	51
        LD        *(_OSTCBList),A       ; |757| 
        BC        L23,AEQ               ; |757| 
        ; branch occurs ; |757| 
	.line	52
        MVDM      *(_OSTCBList),AR1
        LD        *SP(1),A
        STL       A,*AR1(2)
L23:    
	.line	54
        MVDK      *SP(1),*(_OSTCBList)  ; |760| 
	.line	55
        MVDK      *SP(1),*(AR1)
        LD        *AR1(11),A
        OR        *(_OSRdyGrp),A        ; |761| 
        STL       A,*(_OSRdyGrp)
	.line	56
        MVDK      *SP(1),*(AR2)
        MVDK      *AR1(9),*(AR1)
        LD        *AR2(10),A
        OR        *AR1(_OSRdyTbl),A     ; |762| 
        STL       A,*AR1(_OSRdyTbl)
	.line	57
 rsbx INTM
	.line	58
        BD        L25                   ; |764| 
        NOP
        LD        #0,A
        ; branch occurs ; |764| 
L24:    
	.line	60
 rsbx INTM
	.line	61
        LD        #70,A
L25:    
	.line	63
        FRAME     #2                    ; |767| 
        POPM      AR1                   ; |767| 
        RET       ; |767| 
        ; return occurs ; |767| 
	.endfunc	769,000000400h,3


	.sect	".text"
	.global	_OSTimeTick
	.sym	_OSTimeTick,_OSTimeTick, 32, 2, 0
	.func	785

;***************************************************************
;* FUNCTION DEF: _OSTimeTick                                   *
;***************************************************************
_OSTimeTick:
	.line	2
	.sym	_ptcb,0, 24, 1, 16, _os_tcb
        PSHM      AR1
        FRAME     #-2
	.line	6
        CALL      #_OSTimeTickHook      ; |790| 
        ; call occurs [#_OSTimeTickHook] ; |790| 
	.line	7
        MVKD      *(_OSTCBList),*SP(0)  ; |791| 
	.line	8
        MVDK      *SP(0),*(AR1)
        CMPM      *AR1(7),#12           ; |792| 
        BC        L29,TC                ; |792| 
        ; branch occurs ; |792| 
L26:    
	.line	9
 ssbx INTM
	.line	10
        MVDK      *SP(0),*(AR1)
        LD        *AR1(5),A             ; |794| 
        BC        L28,AEQ               ; |794| 
        ; branch occurs ; |794| 
	.line	11
        LD        *AR1(5),A
        SUB       #1,A,A                ; |795| 
        STLM      A,AR2
        MVKD      *(AR2),*AR1(5)
        BANZ      L28,*AR2              ; |795| 
        ; branch occurs ; |795| 
	.line	12
        MVDK      *SP(0),*(AR1)
        BITF      *AR1(6),#8            ; |796| 
        BC        L27,TC                ; |796| 
        ; branch occurs ; |796| 
	.line	13
        LD        *AR1(11),A
        OR        *(_OSRdyGrp),A        ; |797| 
        STL       A,*(_OSRdyGrp)
	.line	14
        MVDK      *SP(0),*(AR2)
        MVDK      *AR1(9),*(AR1)
        LD        *AR2(10),A
        OR        *AR1(_OSRdyTbl),A     ; |798| 
        STL       A,*AR1(_OSRdyTbl)
	.line	15
        B         L28                   ; |799| 
        ; branch occurs ; |799| 
L27:    
	.line	16
        ST        #1,*AR1(5)            ; |800| 
L28:    
	.line	20
        MVDK      *SP(0),*(AR1)
        LD        *AR1(1),A
        STL       A,*SP(0)
	.line	21
 rsbx INTM
	.line	22
        STLM      A,AR1
        NOP
        NOP
        CMPM      *AR1(7),#12           ; |806| 
        BC        L26,NTC               ; |806| 
        ; branch occurs ; |806| 
L29:    
	.line	23
 ssbx INTM
	.line	24
        DLD       *(_OSTime),A          ; |808| 
        ADD       #1,A                  ; |808| 
        DST       A,*(_OSTime)          ; |808| 
	.line	25
 rsbx INTM
	.line	26
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	810,000000400h,3


	.sect	".text"
	.global	_OSVersion
	.sym	_OSVersion,_OSVersion, 46, 2, 0
	.func	826

;***************************************************************
;* FUNCTION DEF: _OSVersion                                    *
;***************************************************************
_OSVersion:
	.line	2
	.line	3
        LD        #200,A
	.line	4
        RET       ; |828| 
        ; return occurs ; |828| 
	.endfunc	829,000000000h,0


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_OSTaskCreate
	.global	_OSTimeGet
	.global	_OSQInit
	.global	_OSIntCtxSw
	.global	_OSStartHighRdy
	.global	_OSTimeTickHook

;***************************************************************
;* TYPE INFORMATION                                            *
;***************************************************************
	.sym	_INT8U, 0, 14, 13, 16
	.sym	_INT8U, 0, 14, 13, 16
	.sym	_OS_STK, 0, 14, 13, 16
	.sym	_INT16U, 0, 14, 13, 16
	.sym	_BOOLEAN, 0, 14, 13, 16
	.sym	_INT32U, 0, 15, 13, 32
	.stag	$$fake0, 96
	.member	_OSEventPtr, 0, 16, 8, 16
	.member	_OSEventTbl, 16, 62, 8, 32, , 2
	.member	_OSEventCnt, 48, 14, 8, 16
	.member	_OSEventType, 64, 14, 8, 16
	.member	_OSEventGrp, 80, 14, 8, 16
	.eos
	.sym	_OS_EVENT, 0, 8, 13, 96,$$fake0
	.stag	_os_tcb, 192
	.member	_OSTCBStkPtr, 0, 30, 8, 16
	.member	_OSTCBNext, 16, 24, 8, 16, _os_tcb
	.member	_OSTCBPrev, 32, 24, 8, 16, _os_tcb
	.member	_OSTCBEventPtr, 48, 24, 8, 16, $$fake0
	.member	_OSTCBMsg, 64, 16, 8, 16
	.member	_OSTCBDly, 80, 14, 8, 16
	.member	_OSTCBStat, 96, 14, 8, 16
	.member	_OSTCBPrio, 112, 14, 8, 16
	.member	_OSTCBX, 128, 14, 8, 16
	.member	_OSTCBY, 144, 14, 8, 16
	.member	_OSTCBBitX, 160, 14, 8, 16
	.member	_OSTCBBitY, 176, 14, 8, 16
	.eos
	.sym	_OS_TCB, 0, 8, 13, 192,_os_tcb

⌨️ 快捷键说明

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