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

📄 main.asm

📁 基于TI的2407移植的ucos程序范例
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx Main.c C:\WINDOWS\TEMP\Main.if 
;	dspopt NOT RUN
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\Main.if C:\WINDOWS\TEMP\Main.asm C:\WINDOWS\TEMP\Main.tmp 
	.port
	.bss	_pTask1MailBox,1,1
	.bss	_pTask2MailBox,1
	.bss	_num,1
	.bss	_TaskStk,140
	.file	"Main.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	"global.c"
	.globl	_SCSR1
	.globl	_SCSR2
	.globl	_XINT2CR
	.globl	_WDCR
	.globl	_WDKEY
	.globl	_IMR
	.globl	_IFR
	.globl	_PIVR
	.globl	_MCRA
	.globl	_MCRB
	.globl	_MCRC
	.globl	_PADATDIR
	.globl	_PBDATDIR
	.globl	_PCDATDIR
	.globl	_PEDATDIR
	.globl	_PFDATDIR
	.globl	_ADCTRL1
	.globl	_ADCTRL2
	.globl	_MAXCONV
	.globl	_CHSELSEQ1
	.globl	_CHSELSEQ2
	.globl	_CHSELSEQ3
	.globl	_CHSELSEQ4
	.globl	_AUTO_SEQ_SR
	.globl	_RESULT0
	.globl	_RESULT1
	.globl	_RESULT2
	.globl	_RESULT8
	.globl	_RESULT9
	.globl	_CANMDER
	.globl	_CANTCR
	.globl	_CANRCR
	.globl	_CANMCR
	.globl	_CANBCR2
	.globl	_CANBCR1
	.globl	_CANESR
	.globl	_CANGSR
	.globl	_CANCEC
	.globl	_CANIFR
	.globl	_CANIMR
	.globl	_CANLAM0H
	.globl	_CANLAM0L
	.globl	_CANID0H
	.globl	_CANID0L
	.globl	_CANCTRL0
	.globl	_CANBX0A
	.globl	_CANBX0B
	.globl	_CANBX0C
	.globl	_CANBX0D
	.globl	_CANID1H
	.globl	_CANID1L
	.globl	_CANCTRL1
	.globl	_CANBX1A
	.globl	_CANBX1B
	.globl	_CANBX1C
	.globl	_CANBX1D
	.globl	_CANID4H
	.globl	_CANID4L
	.globl	_CANCTRL4
	.globl	_CANBX4A
	.globl	_CANBX4B
	.globl	_CANBX4C
	.globl	_CANBX4D
	.globl	_SCICCR
	.globl	_SCICTL1
	.globl	_SCIHBAUD
	.globl	_SCILBAUD
	.globl	_SCICTL2
	.globl	_SCIRXST
	.globl	_SCIRXEMU
	.globl	_SCIRXBUF
	.globl	_SCITXBUF
	.globl	_SCIPRI
	.globl	_GPTCONA
	.globl	_T1CNT
	.globl	_T1PR
	.globl	_T1CON
	.globl	_T2CNT
	.globl	_T2PR
	.globl	_T2CON
	.globl	_EVAIMRA
	.globl	_EVAIMRB
	.globl	_EVAIFRA
	.globl	_EVAIFRB
	.globl	_GPTCONB
	.globl	_T3CNT
	.globl	_T3CMPR
	.globl	_T3PR
	.globl	_T3CON
	.globl	_COMCONA
	.globl	_ACTRA
	.globl	_DBTCONA
	.globl	_CMPR1
	.globl	_EVBIMRA
	.globl	_EVBIFRA
	.globl	_nn
	.file	"Main.c"
	.globl	_TaskStk
	.globl	_pTask1MailBox
	.globl	_pTask2MailBox
	.globl	_LedTask1
	.globl	_LedTask2

	.sect	".cinit"
	.word	1,_num
	.word	0

	.sym	_num,_num,12,2,16
	.globl	_num
	.text

	.sym	_main,_main,36,2,0
	.globl	_main

	.func	25
;>>>> 	main()                 
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 	    SystemInit();   
	CALL	_SystemInit
	.line	4
;>>>> 	    MCRA=MCRA&0xFEFF;                 
	LACK	65279
	LDPK	_MCRA
	AND	_MCRA
	SACL	_MCRA
	.line	5
;>>>> 		asm(" NOP ");
 NOP 
	.line	6
;>>>> 	    PBDATDIR=0x0100; 
	LDPK	_PBDATDIR
	SPLK	#256,_PBDATDIR
	.line	7
;>>>> 	    OSInit();                         
	CALL	_OSInit
	.line	8
;>>>> 	    pTask1MailBox = OSMboxCreate((void*)0);
	LACK	0
	SACL	*+
	CALL	_OSMboxCreate
	MAR	*-
	LDPK	_pTask1MailBox
	SACL	_pTask1MailBox
	.line	9
;>>>> 	    pTask2MailBox = OSMboxCreate((void*)0);   /*    建立消息邮箱 */
	LACK	0
	SACL	*+
	CALL	_OSMboxCreate
	MAR	*-
	LDPK	_pTask2MailBox
	SACL	_pTask2MailBox
	.line	10
;>>>> 	    OSTaskCreate(LedTask1,(void*)0,(void*)&TaskStk[0][20],3);
	LACK	3
	SACL	*+
	LALK	_TaskStk+20
	SACL	*+
	LACK	0
	SACL	*+
	LALK	_LedTask1+0
	SACL	*+
	CALL	_OSTaskCreate
	SBRK	4
	.line	11
;>>>> 	    OSTaskCreate(LedTask2,(void*)0,(void*)&TaskStk[1][20],4);
	LACK	4
	SACL	*+
	LALK	_TaskStk+90
	SACL	*+
	LACK	0
	SACL	*+
	LALK	_LedTask2+0
	SACL	*+
	CALL	_OSTaskCreate
	SBRK	4
	.line	12
;>>>> 	    OSStart();        					/*启动系统*/
	CALL	_OSStart
EPI0_1:
	.line	13
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	37,000000000H,1

	.sym	_LedTask1,_LedTask1,32,2,0
	.globl	_LedTask1

	.func	38
;>>>> 	void LedTask1(void *data)
******************************************************
* FUNCTION DEF : _LedTask1
******************************************************
_LedTask1:

LF2	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+,AR2

	.sym	_data,-3+LF2,16,9,16
	.sym	_count,1,12,1,16
	.sym	_error,2,12,1,16
	.line	2
	.line	3
;>>>> 		INT8U count=0;	
;>>>> 		INT8U error;
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* ,AR1
	.line	5
;>>>> 		data=data;
	.line	6
;>>>> 		OSTickInit();   
;>>>> 		while(1)
	CALL	_OSTickInit
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
L1:
	.line	9
;>>>> 		   for(count=0;count<10;count++)
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	10
	BGEZ	L4
	MAR	* ,AR3
L3:
	.line	11
;>>>> 		   	 OSMboxPost(pTask1MailBox,(void*)&count);
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	BLKD	_pTask1MailBox+0,*+
	CALL	_OSMboxPost
	SBRK	2
	.line	12
;>>>> 		   	 OSMboxPend(pTask2MailBox,0,&error);
	MAR	* ,AR3
	LARK	AR3,2
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	0
	SACL	*+
	BLKD	_pTask2MailBox+0,*+
	CALL	_OSMboxPend
	SBRK	3
	.line	13
;>>>> 		   	 PBDATDIR=0x0101;               /*置高,灯亮*/ 
	LDPK	_PBDATDIR
	SPLK	#257,_PBDATDIR
	.line	14
;>>>> 		   	 OSTimeDlyHMSM(0,0,0,500);     
	LACK	500
	SACL	*+
	LACK	0
	SACL	*+
	SACL	*+
	SACL	*+
	CALL	_OSTimeDlyHMSM
	SBRK	4
	.line	9
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* ,AR3
	SUBK	10
	BLZ	L3
L4:
	.line	17
	MAR	* ,AR2
	B	L1
	.endfunc	55,000000000H,3

	.sym	_LedTask2,_LedTask2,32,2,0
	.globl	_LedTask2

	.func	56
;>>>> 	void LedTask2(void *data)
******************************************************
* FUNCTION DEF : _LedTask2
******************************************************
_LedTask2:

LF3	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+,AR3

	.sym	_data,-3+LF3,16,9,16
	.sym	_count,1,28,1,16
	.sym	_error,2,12,1,16
	.line	2
;>>>> 	    INT8U *count;
;>>>> 	    INT8U error; 
	.line	5
;>>>> 	    data=data;
;>>>> 	    while(1)
L5:
	.line	8
;>>>> 	        nn=15;
	LACK	15
	LDPK	_nn
	SACL	_nn
	.line	9
;>>>> 	        count=(INT8U*)OSMboxPend(pTask1MailBox,0,&error);
	LARK	AR3,2
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	0
	SACL	*+
	BLKD	_pTask1MailBox+0,*+
	CALL	_OSMboxPend
	SBRK	3
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	11
;>>>> 	      	nn=*count;
	LAR	AR3,* ,AR3
	BLDD	* ,#_nn,AR1
	.line	12
;>>>> 	      	PBDATDIR=0x0100;
	LDPK	_PBDATDIR
	SPLK	#256,_PBDATDIR
	.line	13
;>>>> 	        OSTimeDlyHMSM(0,0,0,500);			
	LACK	500
	SACL	*+
	LACK	0
	SACL	*+
	SACL	*+
	SACL	*+
	CALL	_OSTimeDlyHMSM
	SBRK	4
	.line	14
;>>>> 	        OSMboxPost(pTask2MailBox,(void*)&count);  
	MAR	* ,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	BLKD	_pTask2MailBox+0,*+
	CALL	_OSMboxPost
	SBRK	2
	.line	15
	MAR	* ,AR3
	B	L5
	.endfunc	71,000000000H,3

	.sym	_c_int1,_c_int1,32,2,0
	.globl	_c_int1

	.func	73
;>>>> 	void c_int1()
******************************************************
* FUNCTION DEF : _c_int1
******************************************************
_c_int1:
	CALL	I$$SAVE
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	4
;>>>> 		  asm(" CLRC INTM ");
 CLRC INTM 
EPI0_4:
	.line	5
	SBRK	1
	B	I$$REST,AR1   ;and return

	.endfunc	77,000000000H,1

	.sym	_c_int2,_c_int2,32,2,0
	.globl	_c_int2

	.func	79
;>>>> 	void c_int2()
******************************************************
* FUNCTION DEF : _c_int2
******************************************************
_c_int2:
	CALL	I$$SAVE
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+,AR2

	.sym	_count,1,14,1,16
	.line	3
;>>>> 		unsigned int count=0;
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	4
;>>>> 		if(PIVR!=0x27)
	LDPK	_PIVR
	LAC	_PIVR
	SUBK	39
	BZ	L7
	.line	5
;>>>> 			{  	asm(" CLRC INTM ");
 CLRC INTM 
	.line	6
;>>>> 				return;
	B	EPI0_5
L7:
	.line	8
;>>>> 		T1CNT=0;   
	LACK	0
	LDPK	_T1CNT
	SACL	_T1CNT
	.line	9
;>>>> 		OSTimeTick();
	CALL	_OSTimeTick,AR1
	.line	10
;>>>> 		OSIntEnter();  
;>>>> 	//	OSMboxPost(pAdQMbox,(void*)&count); 
	CALL	_OSIntEnter
	.line	16
;>>>> 		EVAIFRA=0x80; 
	LACK	128
	LDPK	_EVAIFRA
	SACL	_EVAIFRA
	.line	17
;>>>> 		OSIntExit();
	CALL	_OSIntExit
	.line	18
;>>>> 	    asm(" CLRC	INTM ");
 CLRC	INTM 
EPI0_5:
	.line	20
	MAR	* ,AR1
	SBRK	2
	B	I$$REST,AR1   ;and return

	.endfunc	98,000000000H,2

	.sym	_TaskStk,_TaskStk,254,2,2240,,2,70
	.globl	_TaskStk

	.sym	_pTask1MailBox,_pTask1MailBox,24,2,16,.fake0
	.globl	_pTask1MailBox

	.sym	_pTask2MailBox,_pTask2MailBox,24,2,16,.fake0
	.globl	_pTask2MailBox
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	_SystemInit
	.global	_OSTickInit
	.global	I$$SAVE
	.global	I$$REST
	.end

⌨️ 快捷键说明

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