avrx_priority.s

来自「一个基于AVR 单片机的操作系统,有组于了解操作系统在单片机上运行的内幕.」· S 代码 · 共 54 行

S
54
字号
#include        "avrx.inc"
/*
        Copyright 1999-2002, Larry Barello
        larry@barello.net

	20020604 - Modified to use AvrXKernelData Structure
*/
        _MODULE(avrx_priority)

        _EXTERN(AvrXKernelData)

        _CODESECTION
/*+
; --------------------------------------------------
; uint8_t AvrXChangePriority(pProcessID, uint8_t)
; uint8_t AvrXPriority(void)
; pProcessID AvrXSelf(void)
;
; PASSED:       
; RETURNS:      
; USES: 
; CALLS:
; ASSUMES:	Top of RunQueue = current running task
; NOTES:	Should use "Running" rather than RunQueue.
-*/
        _FUNCTION(AvrXChangePriority)

AvrXChangePriority:
        mov     Zl, p1l
        mov     Zh, p1h
        ldd     r1l, Z+PidPriority
        std     Z+PidPriority, p2l
        ret
        _ENDFUNC
        
        _FUNCTION(AvrXSelf)

AvrXSelf:
        lds     r1h, AvrXKernelData+RunQueue+NextH
        lds     r1l, AvrXKernelData+RunQueue+NextL
        ret
        _ENDFUNC
        
        _FUNCTION(AvrXPriority)

AvrXPriority:
        lds     Zh, AvrXKernelData+RunQueue+NextH
        lds     Zl, AvrXKernelData+RunQueue+NextL
        ldd     r1l, Z+PidPriority
        ret
        _ENDFUNC
        _END
        

⌨️ 快捷键说明

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