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

📄 ucos_ii.asm

📁 基于TI的2407移植的ucos程序范例
💻 ASM
📖 第 1 页 / 共 5 页
字号:
*******************************************************
* 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 + -