📄 protocol.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx protocol.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\protocol.if
; dspopt NOT RUN
; C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\protocol.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\protocol.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\protocol.tmp
.port
.bss _globalErrFlag,1,1
.bss _collFlag0,16
.bss _collFlag1,16
.bss _curSlot,32
.bss _curSlot1,32
.bss _invUid,145
.file "protocol.c"
.file "f2407regs_c.h"
.globl _IMR
.globl _GREG
.globl _IFR
.globl _IMRADDR
.globl _PIRQR0
.globl _PIRQR1
.globl _PIRQR2
.globl _PIACKR0
.globl _PIACKR1
.globl _PIACKR2
.globl _SCSR1
.globl _SCSR2
.globl _DINR
.globl _PIVR
.globl _WDCNTR
.globl _WDKEY
.globl _WDCR
.globl _SPICCR
.globl _SPICTL
.globl _SPISTS
.globl _SPIBRR
.globl _SPIEMU
.globl _SPIRXBUF
.globl _SPITXBUF
.globl _SPIDAT
.globl _SPIPRI
.globl _SCICCR
.globl _SCICTL1
.globl _SCIHBAUD
.globl _SCILBAUD
.globl _SCICTL2
.globl _SCIRXST
.globl _SCIRXEMU
.globl _SCIRXBUF
.globl _SCITXBUF
.globl _SCIPRI
.globl _XINT1CR
.globl _XINT2CR
.globl _PADATDIR
.globl _PBDATDIR
.globl _PCDATDIR
.globl _PDDATDIR
.globl _PEDATDIR
.globl _PFDATDIR
.globl _MCRA
.globl _MCRB
.globl _MCRC
.globl _ADCCTRL1
.globl _ADCCTRL2
.globl _MAXCONV
.globl _CHSELSEQ1
.globl _CHSELSEQ2
.globl _CHSELSEQ3
.globl _CHSELSEQ4
.globl _AUTOSEQSR
.globl _RESULT0
.globl _RESULT1
.globl _RESULT2
.globl _RESULT3
.globl _RESULT4
.globl _RESULT5
.globl _RESULT6
.globl _RESULT7
.globl _RESULT8
.globl _RESULT9
.globl _RESULT10
.globl _RESULT11
.globl _RESULT12
.globl _RESULT13
.globl _RESULT14
.globl _RESULT15
.globl _CALIBRATION
.globl _MDER
.globl _TCR
.globl _RCR
.globl _MCR
.globl _BCR2
.globl _BCR1
.globl _ESR
.globl _GSR
.globl _CEC
.globl _CANIFR
.globl _CANIMR
.globl _LAM0H
.globl _LAM0L
.globl _LAM1H
.globl _LAM1L
.globl _MSGID0L
.globl _MSGID0H
.globl _MSGCTRL0
.globl _MBX0A
.globl _MBX0B
.globl _MBX0C
.globl _MBX0D
.globl _MSGID1L
.globl _MSGID1H
.globl _MSGCTRL1
.globl _MBX1A
.globl _MBX1B
.globl _MBX1C
.globl _MBX1D
.globl _MSGID2L
.globl _MSGID2H
.globl _MSGCTRL2
.globl _MBX2A
.globl _MBX2B
.globl _MBX2C
.globl _MBX2D
.globl _MSGID3L
.globl _MSGID3H
.globl _MSGCTRL3
.globl _MBX3A
.globl _MBX3B
.globl _MBX3C
.globl _MBX3D
.globl _MSGID4L
.globl _MSGID4H
.globl _MSGCTRL4
.globl _MBX4A
.globl _MBX4B
.globl _MBX4C
.globl _MBX4D
.globl _MSGID5L
.globl _MSGID5H
.globl _MSGCTRL5
.globl _MBX5A
.globl _MBX5B
.globl _MBX5C
.globl _MBX5D
.globl _GPTCONA
.globl _T1CNT
.globl _T1CMPR
.globl _T1PR
.globl _T1CON
.globl _T2CNT
.globl _T2CMPR
.globl _T2PR
.globl _T2CON
.globl _COMCONA
.globl _ACTRA
.globl _DBTCONA
.globl _CMPR1
.globl _CMPR2
.globl _CMPR3
.globl _CAPCONA
.globl _CAPFIFOA
.globl _CAP1FIFO
.globl _CAP2FIFO
.globl _CAP3FIFO
.globl _CAP1FBOT
.globl _CAP2FBOT
.globl _CAP3FBOT
.globl _EVAIMRA
.globl _EVAIMRB
.globl _EVAIMRC
.globl _EVAIFRA
.globl _EVAIFRB
.globl _EVAIFRC
.globl _GPTCONB
.globl _T3CNT
.globl _T3CMPR
.globl _T3PR
.globl _T3CON
.globl _T4CNT
.globl _T4CMPR
.globl _T4PR
.globl _T4CON
.globl _COMCONB
.globl _ACTRB
.globl _DBTCONB
.globl _CMPR4
.globl _CMPR5
.globl _CMPR6
.globl _CAPCONB
.globl _CAPFIFOB
.globl _CAP4FIFO
.globl _CAP5FIFO
.globl _CAP6FIFO
.globl _CAP4FBOT
.globl _CAP5FBOT
.globl _CAP6FBOT
.globl _EVBIMRA
.globl _EVBIMRB
.globl _EVBIMRC
.globl _EVBIFRA
.globl _EVBIFRB
.globl _EVBIFRC
.globl _WSGR
.file "global.h"
.globl _port8001
.file "protocol.c"
.globl _mutiBlockWrDelay
.globl _rfDelay20ms
.globl _status_rx
.globl _pcdata
.globl _viccdata
.globl _cfgdata
.globl _labeldata
.globl _ISOModeSys
.globl _ISOFlagsSys
.globl _ISOMode
.globl _bFlashError
.globl _deviceAddr
.text
.sym _initRfPara,_initRfPara,44,2,0
.globl _initRfPara
.func 22
;>>>> uchar initRfPara(void)
;>>>> uint temp,iso_option;
;>>>> uint level;
******************************************************
* FUNCTION DEF : _initRfPara
******************************************************
_initRfPara:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR2
.sym _temp,1,14,1,16
.sym _iso_option,2,14,1,16
.sym _level,3,14,1,16
.line 6
;>>>> temp = cfgdata[66] >> 8;
RSXM
LDPK _cfgdata+66
LAC _cfgdata+66,7
LARK AR2,1
MAR *0+
SACH *+,1
.line 7
;>>>> iso_option = (cfgdata[67]>>10)&0x03;
LDPK _cfgdata+67
LAC _cfgdata+67,5
ANDK 3,15
SACH *+,1
.line 8
;>>>> level = cfgdata[25] >> 8;
LDPK _cfgdata+25
LAC _cfgdata+25,7
SACH * ,1
.line 10
;>>>> ISOModeSys = 0;
LACK 0
LDPK _ISOModeSys
SACL _ISOModeSys
.line 11
;>>>> ISOFlagsSys = 0;
LDPK _ISOFlagsSys
SACL _ISOFlagsSys
.line 13
;>>>> if(temp&0x01) ISOModeSys |= 0x01; // '1':fast mode; '0':normal mode;
SBRK 2
BIT * ,15
BBZ L1
ORK 1
LDPK _ISOModeSys
SACL _ISOModeSys
L1:
.line 14
;>>>> if(temp&0x02) ISOModeSys |= 0x02; // '1':10% modulation; '0':100% modulation;
BIT * ,14
BBZ L2
ORK 2
LDPK _ISOModeSys
SACL _ISOModeSys
L2:
.line 16
;>>>> if(temp&0x04) {ISOFlagsSys |= 0x01;ISOModeSys |= 0x20;} // '1':fsk,two subcarriers; '0':ask,a single subcarriers
BIT * ,13
BBZ L3
LACK 1
LDPK _ISOFlagsSys
OR _ISOFlagsSys
SACL _ISOFlagsSys
LACK 32
LDPK _ISOModeSys
OR _ISOModeSys
SACL _ISOModeSys
L3:
.line 17
;>>>> if(temp&0x08) ISOFlagsSys |= 0x02; // '1':high data rate '0':low data rate
BIT * ,12
BBZ L4
LACK 2
LDPK _ISOFlagsSys
OR _ISOFlagsSys
SACL _ISOFlagsSys
L4:
.line 19
;>>>> if(iso_option == 0x02){ISOModeSys &= 0xfb;}
MAR *+
LAC *
SUBK 2
BNZ L5
LACK 251
LDPK _ISOModeSys
AND _ISOModeSys
SACL _ISOModeSys
B L6
L5:
.line 20
;>>>> else {ISOModeSys |= 0x04;}
;>>>> //将高速模式屏蔽
LACK 4
LDPK _ISOModeSys
OR _ISOModeSys
SACL _ISOModeSys
L6:
.line 23
;>>>> if( (temp&0x04) == 0x04 ) //fsk
LACK 4
MAR *-
AND *
SUBK 4
BNZ L7
.line 25
;>>>> ISOFlagsSys |= 0x01;
LACK 1
LDPK _ISOFlagsSys
OR _ISOFlagsSys
SACL _ISOFlagsSys
.line 26
;>>>> ISOModeSys &= 0xfe;
LACK 254
LDPK _ISOModeSys
AND _ISOModeSys
SACL _ISOModeSys
.line 27
;>>>> ISOFlagsSys &= 0xfd;
;>>>> else //ask
LACK 253
LDPK _ISOFlagsSys
AND _ISOFlagsSys
SACL _ISOFlagsSys
B L8
L7:
.line 31
;>>>> ISOFlagsSys &= 0xfe;
LACK 254
LDPK _ISOFlagsSys
AND _ISOFlagsSys
SACL _ISOFlagsSys
.line 32
;>>>> ISOModeSys &= 0xfe;
LACK 254
LDPK _ISOModeSys
AND _ISOModeSys
SACL _ISOModeSys
.line 33
;>>>> ISOModeSys &= 0xfd;
ANDK 253
SACL _ISOModeSys
.line 34
;>>>> ISOFlagsSys &= 0xfd;
;>>>> } //20051205
LACK 253
LDPK _ISOFlagsSys
AND _ISOFlagsSys
SACL _ISOFlagsSys
L8:
.line 37
;>>>> if( (level>=0x0c) && (level<= 0x29) )
ADRK 2
ZALS *
SUBK 12
BLZ L9
ZALS *
SUBK 41
BGZ L9
.line 38
;>>>> adjustX9c503(1,level); //向上调节
;>>>> else
ADDK 41
MAR * ,AR1
SACL *+
LACK 1
SACL *+
CALL _adjustX9c503
SBRK 2
B L10
L9:
.line 40
;>>>> adjustX9c503(1,0x0c); //默认为0.5W
MAR * ,AR1
LACK 12
SACL *+
LACK 1
SACL *+
CALL _adjustX9c503
SBRK 2
L10:
EPI0_1:
.line 41
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 62,000000000H,4
.sym _resp_no_trns,_resp_no_trns,32,2,0
.globl _resp_no_trns
.func 64
;>>>> void resp_no_trns(void) //没有标签的存在
;>>>> uint m;
******************************************************
* FUNCTION DEF : _resp_no_trns
******************************************************
_resp_no_trns:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+
.sym _m,1,14,1,16
.line 4
;>>>> pcdata[0] = 0x06;
LACK 6
LDPK _pcdata
SACL _pcdata
.line 5
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 6
;>>>> pcdata[2] = ISO_MANDATORY_CMD;
LACK 176
LDPK _pcdata+2
SACL _pcdata+2
.line 7
;>>>> pcdata[3] = NO_TRNS;
LACK 1
LDPK _pcdata+3
SACL _pcdata+3
.line 8
;>>>> m = ~crc16Calculate(pcdata,4);
LACK 4
SACL *+
LALK _pcdata+0
SACL *+
CALL _crc16Calculate
SBRK 2
CMPL
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 9
;>>>> pcdata[4] = m&0x00ff;
LACK 255
AND *
LDPK _pcdata+4
SACL _pcdata+4
.line 10
;>>>> pcdata[5] = m>>8;
RSXM
LAC * ,7,AR1
LDPK _pcdata+5
SACH _pcdata+5,1
.line 11
;>>>> send_resp();
CALL _send_resp
EPI0_2:
.line 12
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 75,000000000H,2
.sym _resp_iso_err,_resp_iso_err,32,2,0
.globl _resp_iso_err
.func 77
;>>>> void resp_iso_err(void) //标签执行ISO错误
;>>>> uint m;
******************************************************
* FUNCTION DEF : _resp_iso_err
******************************************************
_resp_iso_err:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+
.sym _m,1,14,1,16
.line 4
;>>>> pcdata[0] = 0x07;
LACK 7
LDPK _pcdata
SACL _pcdata
.line 5
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 6
;>>>> pcdata[2] = ISO_MANDATORY_CMD;
LACK 176
LDPK _pcdata+2
SACL _pcdata+2
.line 7
;>>>> pcdata[3] = ISO_ERR; //0x95
LACK 149
LDPK _pcdata+3
SACL _pcdata+3
.line 8
;>>>> pcdata[4] = viccdata[2];
LDPK _viccdata+2
BLDD _viccdata+2,#_pcdata+4
.line 9
;>>>> m = ~crc16Calculate(pcdata,5);
LACK 5
SACL *+
LALK _pcdata+0
SACL *+
CALL _crc16Calculate
SBRK 2
CMPL
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 10
;>>>> pcdata[5] = m&0x00ff;
LACK 255
AND *
LDPK _pcdata+5
SACL _pcdata+5
.line 11
;>>>> pcdata[6] = m>>8;
RSXM
LAC * ,7,AR1
LDPK _pcdata+6
SACH _pcdata+6,1
.line 12
;>>>> send_resp();
CALL _send_resp
EPI0_3:
.line 13
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 89,000000000H,2
.sym _resp_para_err,_resp_para_err,32,2,0
.globl _resp_para_err
.func 91
;>>>> void resp_para_err(void)
;>>>> uint m;
******************************************************
* FUNCTION DEF : _resp_para_err
******************************************************
_resp_para_err:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+
.sym _m,1,14,1,16
.line 4
;>>>> pcdata[0] = 0x06;
LACK 6
LDPK _pcdata
SACL _pcdata
.line 5
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 6
;>>>> pcdata[2] = ISO_MANDATORY_CMD;
LACK 176
LDPK _pcdata+2
SACL _pcdata+2
.line 7
;>>>> pcdata[3] = PARA_OV;
LACK 17
LDPK _pcdata+3
SACL _pcdata+3
.line 8
;>>>> m = ~crc16Calculate(pcdata,4);
LACK 4
SACL *+
LALK _pcdata+0
SACL *+
CALL _crc16Calculate
SBRK 2
CMPL
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 9
;>>>> pcdata[4] = m&0x00ff;
LACK 255
AND *
LDPK _pcdata+4
SACL _pcdata+4
.line 10
;>>>> pcdata[5] = m>>8;
RSXM
LAC * ,7,AR1
LDPK _pcdata+5
SACH _pcdata+5,1
.line 11
;>>>> send_resp();
CALL _send_resp
EPI0_4:
.line 12
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 102,000000000H,2
.sym _wr_crc_resp,_wr_crc_resp,32,2,0
.globl _wr_crc_resp
.func 104
;>>>> void wr_crc_resp(void)
;>>>> uint m;
;>>>> uchar len;
******************************************************
* FUNCTION DEF : _wr_crc_resp
******************************************************
_wr_crc_resp:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR2
.sym _m,1,14,1,16
.sym _len,2,12,1,16
.line 5
;>>>> len = pcdata[0];
LARK AR2,2
MAR *0+
BLKD #_pcdata,*
.line 6
;>>>> len -= 2;
LAC *
SUBK 2
SACL *
.line 7
;>>>> m = ~crc16Calculate(pcdata,len);
LAC * ,AR1
SACL *+
LALK _pcdata+0
SACL *+
CALL _crc16Calculate
SBRK 2
CMPL
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 8
;>>>> pcdata[len++] = m&0x00ff;
LACK 255
AND *+,AR1
SACL * ,AR2
LAC *
ADDK 1
SACL *-,AR0
SUBK 1
ADLK _pcdata+0,0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL * ,AR2
.line 9
;>>>> pcdata[len] = m>>8;
RSXM
LAC *+,7,AR1
SACH * ,1,AR2
LAC * ,AR0
ADLK _pcdata+0,0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL * ,AR1
.line 10
;>>>> send_resp();
CALL _send_resp
EPI0_5:
.line 11
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 114,000000000H,3
.sym _wr_crc_send,_wr_crc_send,32,2,0
.globl _wr_crc_send
.func 116
;>>>> void wr_crc_send(void)
;>>>> uint m;
;>>>> uchar len;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -