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

📄 protocol.asm

📁 dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,fir等的很多程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
*******************************************************
* 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 + -