📄 ucos_ii.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx Ucos_ii.c C:\WINDOWS\TEMP\Ucos_ii.if
; dspopt NOT RUN
; C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\Ucos_ii.if C:\WINDOWS\TEMP\Ucos_ii.asm C:\WINDOWS\TEMP\Ucos_ii.tmp
.port
_OSRdyGrp .usect "globalv",1,1
_OSTCBCur .usect "globalv",1
_OSIntNesting .usect "globalv",1
_OSLockNesting .usect "globalv",1
_OSTaskCtr .usect "globalv",1
_OSRunning .usect "globalv",1
_OSPrioCur .usect "globalv",1
_OSPrioHighRdy .usect "globalv",1
_OSTCBHighRdy .usect "globalv",1
_OSTCBList .usect "globalv",1
_OSTCBFreeList .usect "globalv",1
_OSEventFreeList .usect "globalv",1
.bss _OSIntExitY,1,1
_OSStatRdy .usect "globalv",1
_OSCPUUsage .usect "globalv",1
_OSRdyTbl .usect "globalv",2
_OSTime .usect "globalv",2
_OSIdleCtr .usect "globalv",2
_OSCtxSwCtr .usect "globalv",2
_OSIdleCtrMax .usect "globalv",2
_OSIdleCtrRun .usect "globalv",2
.bss _OSMapTbl,8
_OSTCBPrioTbl .usect "globalv",11
_OSEventTbl .usect "eventtbl",36,1
.bss _OSTaskStatStk,64
_OSTCBTbl .usect "tcbtbl",84,1
.bss _OSTaskIdleStk,128
.bss _OSUnMapTbl,256
.file "Ucos_ii.c"
.file "os_cpu.h"
.sym _BOOLEAN,0,12,13,16
.sym _INT8U,0,12,13,16
.sym _INT8S,0,2,13,16
.sym _INT16U,0,14,13,16
.sym _INT16S,0,4,13,16
.sym _INT32U,0,15,13,32
.sym _INT32S,0,5,13,32
.sym _FP32,0,6,13,32
.sym _FP64,0,7,13,32
.sym _OS_STK,0,14,13,16
.globl _OSTickDOSCtr
.file "ucos_ii.h"
.stag .fake0,96
.member _OSEventPtr,0,16,8,16
.member _OSEventTbl,16,60,8,32,,2
.member _OSEventCnt,48,14,8,16
.member _OSEventType,64,12,8,16
.member _OSEventGrp,80,12,8,16
.eos
.sym _OS_EVENT,0,8,13,96,.fake0
.stag .fake1,64
.member _OSMsg,0,16,8,16
.member _OSEventTbl,16,60,8,32,,2
.member _OSEventGrp,48,12,8,16
.eos
.sym _OS_MBOX_DATA,0,8,13,64,.fake1
.stag .fake2,64
.member _OSCnt,0,14,8,16
.member _OSEventTbl,16,60,8,32,,2
.member _OSEventGrp,48,12,8,16
.eos
.sym _OS_SEM_DATA,0,8,13,64,.fake2
.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,12,8,16
.member _OSTCBPrio,112,12,8,16
.member _OSTCBX,128,12,8,16
.member _OSTCBY,144,12,8,16
.member _OSTCBBitX,160,12,8,16
.member _OSTCBBitY,176,12,8,16
.eos
.sym _OS_TCB,0,8,13,192,_os_tcb
.globl _OSCtxSwCtr
.globl _OSEventFreeList
.globl _OSEventTbl
.globl _OSIdleCtr
.globl _OSCPUUsage
.globl _OSIdleCtrMax
.globl _OSIdleCtrRun
.globl _OSStatRdy
.globl _OSIntNesting
.globl _OSLockNesting
.globl _OSPrioCur
.globl _OSPrioHighRdy
.globl _OSRdyGrp
.globl _OSRdyTbl
.globl _OSRunning
.globl _OSTaskCtr
.globl _OSTCBCur
.globl _OSTCBFreeList
.globl _OSTCBHighRdy
.globl _OSTCBList
.globl _OSTCBPrioTbl
.globl _OSTime
.globl _OSMapTbl
.globl _OSUnMapTbl
.globl _OSMboxAccept
.globl _OSMboxCreate
.globl _OSMboxPend
.globl _OSMboxPost
.globl _OSMboxQuery
.globl _OSSemAccept
.globl _OSSemCreate
.globl _OSSemPend
.globl _OSSemPost
.globl _OSSemQuery
.globl _OSTaskCreate
.globl _OSTaskQuery
.globl _OSTimeDly
.globl _OSTimeDlyHMSM
.globl _OSTimeDlyResume
.globl _OSTimeGet
.globl _OSTimeSet
.globl _OSTimeTick
.globl _OSInit
.globl _OSIntEnter
.globl _OSIntExit
.globl _OSSchedLock
.globl _OSSchedUnlock
.globl _OSStart
.globl _OSStatInit
.globl _OSVersion
.globl _OSEventTaskRdy
.globl _OSEventTaskWait
.globl _OSEventTO
.globl _OSEventWaitListInit
.globl _OSSched
.globl _OSTaskIdle
.globl _OSTaskStat
.globl _OSTCBInit
.globl _OSCtxSw
.globl _OSIntCtxSw
.globl _OSStartHighRdy
.globl _OSTaskCreateHook
.globl _OSTaskDelHook
.globl _OSTaskStatHook
.globl _OSTaskStkInit
.globl _OSTaskSwHook
.globl _OSTickISR
.globl _OSTimeTickHook
.file "Os_core.c"
.globl _nn
.globl _OSTCBTbl
.sect ".cinit"
.word IS1,_OSMapTbl
.word 1
.word 2
.word 4
.word 8
.word 16
.word 32
.word 64
.word 128
IS1 .set 8
.sym _OSMapTbl,_OSMapTbl,62,2,128,,8
.globl _OSMapTbl
.word IS2,_OSUnMapTbl
.word 0
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 5
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 6
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 5
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 7
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 5
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 6
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 5
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 4
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
.word 3
.word 0
.word 1
.word 0
.word 2
.word 0
.word 1
.word 0
IS2 .set 256
.sym _OSUnMapTbl,_OSUnMapTbl,62,2,4096,,256
.globl _OSUnMapTbl
.text
.sym _OSEventTaskRdy,_OSEventTaskRdy,32,2,0
.globl _OSEventTaskRdy
.func 100
;>>>> void OSEventTaskRdy (OS_EVENT *pevent, void *msg, INT8U msk)
******************************************************
* FUNCTION DEF : _OSEventTaskRdy
******************************************************
_OSEventTaskRdy:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,7
LAR AR0,*0+,AR2
.sym _pevent,-3+LF1,24,9,16,.fake0
.sym _msg,-4+LF1,16,9,16
.sym _msk,-5+LF1,12,9,16
.sym _ptcb,1,24,1,16,_os_tcb
.sym _x,2,12,1,16
.sym _y,3,12,1,16
.sym _bitx,4,12,1,16
.sym _bity,5,12,1,16
.sym _prio,6,12,1,16
.line 2
;>>>> OS_TCB *ptcb;
;>>>> INT8U x;
;>>>> INT8U y;
;>>>> INT8U bitx;
;>>>> INT8U bity;
;>>>> INT8U prio;
.line 11
;>>>> y = OSUnMapTbl[pevent->OSEventGrp]; /* Find highest prio. task waiting for message */
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
ADRK 5
LAC * ,AR0
ADLK _OSUnMapTbl+0,0
SACL *
LAR AR4,* ,AR4
LAC * ,AR2
ADRK 6-LF1
SACL *
.line 12
;>>>> nn=y;
BLDD * ,#_nn
.line 13
;>>>> bity = OSMapTbl[y];
LAC * ,AR0
ADLK _OSMapTbl+0,0
SACL *
LAR AR4,* ,AR4
LAC * ,AR2
ADRK 2
SACL *
.line 14
;>>>> nn=bity;
BLDD * ,#_nn
.line 15
;>>>> x = OSUnMapTbl[pevent->OSEventTbl[y]];
SBRK 8-LF1
LAC *
ADDK 1
ADRK 6-LF1
ADD *-,AR0
SACL *
LAR AR4,* ,AR4
LAC * ,AR0
ADLK _OSUnMapTbl+0,0
SACL *
LAR AR4,* ,AR4
LAC * ,AR2
SACL *
.line 16
;>>>> nn=x;
BLDD * ,#_nn
.line 17
;>>>> bitx = OSMapTbl[x];
LAC * ,AR0
ADLK _OSMapTbl+0,0
SACL *
LAR AR4,* ,AR4
LAC * ,AR2
ADRK 2
SACL *
.line 18
;>>>> nn=bitx;
BLDD *-,#_nn
.line 19
;>>>> prio = (INT8U)((y << 3) + x); /* Find priority of task getting the msg */
LAC *-,3
ADD *
ADRK 4
SACL *
.line 20
;>>>> nn=prio;
BLDD * ,#_nn
.line 21
;>>>> if ((pevent->OSEventTbl[y] &= ~bitx) == 0) { /* Remove this task from the waiting list */
SBRK 2
ZALS * ,AR1
CMPL
SACL *+,AR2
SBRK 7-LF1
LAC *
ADDK 1
ADRK 6-LF1
ADD * ,AR0
SACL *
LAR AR4,* ,AR1
MAR *-
ZALS * ,AR4
AND *
SACL *
BNZ L1
.line 22
;>>>> pevent->OSEventGrp &= ~bity;
MAR * ,AR2
ADRK 2
LAC * ,AR3
CMPL
AND *
SACL *
L1:
.line 24
;>>>> ptcb = OSTCBPrioTbl[prio]; /* Point to this task's OS_TCB */
MAR * ,AR2
LARK AR2,6
MAR *0+
LAC * ,AR0
ADLK _OSTCBPrioTbl+0,0
SACL *
LAR AR4,* ,AR4
LAC * ,AR2
SBRK 5
SACL *
.line 25
;>>>> ptcb->OSTCBDly = 0; /* Prevent OSTimeTick() from readying task */
LAR AR4,* ,AR4
LACK 0
ADRK 5
SACL *
.line 26
;>>>> ptcb->OSTCBEventPtr = (OS_EVENT *)0; /* Unlink ECB from this task */
;>>>> #if (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN
SBRK 2
SACL * ,AR2
.line 28
;>>>> ptcb->OSTCBMsg = msg; /* Send message directly to waiting task */
;>>>> #else
;>>>> msg = msg; /* Prevent compiler warning if not used */
;>>>> #endif
SBRK 5-LF1
LAC *-,AR4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -