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

📄 avrx_terminate.s

📁 血凝仪检测系统,硬件电路部分由正弦波产生模块、前级放大与滤波模块、检测线圈、锁相环同步检波模块、后级平滑滤波与放大模块、AD转换器、线圈驱动模块、单片机模块等部分组成。
💻 S
字号:
#include        "avrx.inc"
/*
        Copyright 1999-2001, Larry Barello
        larry@barello.net

*/
        _MODULE(avrx_terminate)
        _EXTERN(IntProlog)
        _EXTERN(_RemoveObject)
        _EXTERN(RunQueue)
        _EXTERN(_Epilog)
        _EXTERN(Running)
        _EXTERN(AvrXIntSetObjectSemaphore)
        
        _CODESECTION
        
/*+
; --------------------------------------------------
; AvrXTaskExit
; AvrXTerminate
;
; This is where tasks that "return" come to.  Set the IDLE bit so
; it can not be queued again.  Then attempt to Dequeue from run queue.
; Can not do anything more than that if it is queued on a semaphore...
;
; PASSED:       R25:R24 = Pid to terminate   
; RETURNS:      
; USES:
; CALLS:
; ASSUMES:
; NOTES:        
-*/
        _FUNCTION(AvrXTaskExit)

AvrXTaskExit:                   ; Entry point for killing self
        AVRX_Prolog             ; Entire state of dying task is on stack
        lds     p1h, Running+NextH
        lds     p1l, Running+NextL
        rjmp    at00
        _ENDFUNC

        _FUNCTION(AvrXTerminate)
AvrXTerminate:                  ; Entry point for killing other tasks.
        AVRX_Prolog
at00:
;       rcall   AvrXIntSetObjectSemaphore       ; Later: Signal parent task
;       subi    p1l, lo8(-2)
;       sbci    p1h, hi8(-2)
        mov     Zh, p1h
        mov     Zl, p1l
        ldi     Xl, BV(IdleBit) ; Mark task dead
        std     Z+PidState, Xl
        mov     p2h, p1h
        mov     p2l, p1l
        ldi     Zh, hi8(RunQueue)
        ldi     Zl, lo8(RunQueue)
        BeginCritical
        rcall   _RemoveObject           ; Attempt to remove from run queue
        rjmp    _Epilog

        _ENDFUNC

        _END


⌨️ 快捷键说明

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