📄 main.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 + -