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

📄 tbtx.asm

📁 我在公司做的基于430F206的互感器现场效验仪.有原理图印板图及源程序,已定型.
💻 ASM
📖 第 1 页 / 共 3 页
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\TDS-EMU2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx -x0 TbTX.C C:\WINDOWS\TEMP\TbTX.if 
;	dspopt NOT RUN
;	C:\TDS-EMU2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\TbTX.if C:\WINDOWS\TEMP\TbTX.asm C:\WINDOWS\TEMP\TbTX.tmp 
	.port
	.bss	_len,1,1
	.bss	_reg_point2,1
	.bss	_reg_point1,1
	.bss	_bTbRxSoh,1
	.bss	_nTbRxChLen,1
	.bss	_nTbRxBegin,1
	.bss	_nTbRxEnd,1
	.bss	_bTbTxSoh,1
	.bss	_nTbTxBegin,1
	.bss	_nTbTxEnd,1
	.bss	_bNewSysRdData,1
	.bss	_bNewSysWrData,1
	.bss	_nNewSysDataRdPreAdr,1
	.bss	_nNewSysDataWrPreAdr,1
	.bss	_nTbRxCrc,1
	.bss	_nTbTxCrc,1
	.bss	_cc1,1
	.bss	_bRefurbish,1
	.bss	_KeyNode,7
	.bss	_ccc,20
	.bss	_nTbRxChBuf,256
	.bss	_nTbTxChBuf,256
	.bss	_nTbTxCh,256
	.bss	_nTbRxCh,256
	.file	"TbTX.C"
	.file	"C:\TDS-EMU2XX\tycl\tyclh.h"
	.sym	_Boolean,0,14,13,16

	.stag	_StructKeyNode,112
	.member	_nkey,0,14,8,16
	.member	_nPageType,16,14,8,16
	.member	_nCs,32,14,8,16
	.member	_nPage,48,14,8,16
	.member	_nCursor,64,14,8,16
	.member	_nCursorPreLine,80,4,8,16
	.member	_nCursorOldLine,96,4,8,16
	.eos
	.globl	_portffe4
	.globl	_portffe8
	.globl	_portffec
	.globl	_portfff0
	.globl	_portfff1
	.globl	_portfff4
	.globl	_portfff5
	.globl	_portfff6
	.globl	_portfff7
	.globl	_portfff8
	.globl	_portfff9
	.globl	_portfffa
	.globl	_portfffc
	.globl	_port4000
	.file	"TbTX.C"
	.globl	_reg_point1
	.globl	_reg_point2
	.globl	_len
	.globl	_cc1
	.globl	_ccc
	.globl	_KeyNode
	.globl	_bNewSysRdData
	.globl	_nNewSysDataRdPreAdr
	.globl	_bNewSysWrData
	.globl	_bRefurbish
	.globl	_nNewSysDataWrPreAdr
	.globl	_TbWrSysTab
	.globl	_TbRdSysTab
	.globl	_nTbRxCrc
	.globl	_bTbRxSoh
	.globl	_nTbRxBegin
	.globl	_nTbRxEnd
	.globl	_nTbRxChBuf
	.globl	_nTbRxChLen
	.globl	_nTbRxCh
	.globl	_bTbTxSoh
	.globl	_nTbTxBegin
	.globl	_nTbTxEnd
	.globl	_nTbTxChBuf
	.globl	_nTbTxCh
	.globl	_nTbTxCrc
	.globl	_TbTranRxData
	.globl	_TbTx_Data
	.text

	.sym	_ReadRom,_ReadRom,32,2,0
	.globl	_ReadRom

	.func	31
;>>>> 	void ReadRom(rom_area,ram_area,length)
;>>>> 	unsigned int rom_area[],ram_area[],length;
******************************************************
* FUNCTION DEF : _ReadRom
******************************************************
_ReadRom:

LF1	.set	0

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

	.sym	_rom_area,-3+LF1,30,9,16
	.sym	_ram_area,-4+LF1,30,9,16
	.sym	_length,-5+LF1,14,9,16
	.line	3
;>>>> 	{	len=length;
	LARK	AR2,-5+LF1
	MAR	*0+
	BLDD	*+,#_len
	.line	4
;>>>> 		reg_point2=ram_area;
	BLDD	*+,#_reg_point2
	.line	5
;>>>> 		reg_point1=rom_area;
	BLDD	* ,#_reg_point1
	.line	7
;>>>> 		asm("	MAR		*,AR4		");
	MAR		*,AR4		
	.line	8
;>>>> 		asm("	ldpk	_reg_point2	");
	ldpk	_reg_point2	
	.line	9
;>>>> 		asm("	LAR	AR4,_reg_point2");
	LAR	AR4,_reg_point2
	.line	10
;>>>> 		asm("	ldpk	_reg_point1	");
	ldpk	_reg_point1	
	.line	11
;>>>> 		asm("	lacc	_reg_point1	");
	lacc	_reg_point1	
	.line	12
;>>>> 		asm("	RPT	_len	");
	RPT	_len	
	.line	13
;>>>> 		asm("	TBLR	*+,AR4	");
	TBLR	*+,AR4	
EPI0_1:
	.line	15
	MAR	* ,AR1
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	45,000000000H,1

	.sym	_TbTxInit,_TbTxInit,32,2,0
	.globl	_TbTxInit

	.func	47
;>>>> 	void TbTxInit()
;>>>> 	{long	i;
******************************************************
* FUNCTION DEF : _TbTxInit
******************************************************
_TbTxInit:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+,AR0

	.sym	_i,1,5,1,32
	.line	4
;>>>> 		bTbRxSoh=0;
	LACK	0
	LDPK	_bTbRxSoh
	SACL	_bTbRxSoh
	.line	5
;>>>> 		nTbRxChLen=0;
	SACL	_nTbRxChLen
	.line	6
;>>>> 		nTbRxBegin=0;
	SACL	_nTbRxBegin
	.line	7
;>>>> 		nTbRxEnd=0;
	SACL	_nTbRxEnd
	.line	8
;>>>> 		bTbTxSoh=0;
	SACL	_bTbTxSoh
	.line	9
;>>>> 		nTbTxBegin=0;
	SACL	_nTbTxBegin
	.line	10
;>>>> 		nTbTxEnd=0; 
	SACL	_nTbTxEnd
	.line	11
;>>>> 		reg_sspcr=0xcc0a;
	LACK	52234
	SACL	* 
	OUT	* ,0fff1h
	.line	12
;>>>> 		reg_sspcr=0xcc3a;
	LACK	52282
	SACL	* 
	OUT	* ,0fff1h,AR1
	.line	13
;>>>> 		bNewSysRdData=True;
	SPLK	#65535,_bNewSysRdData
	.line	14
;>>>> 		bNewSysWrData=False;
	LACK	0
	SACL	_bNewSysWrData
	.line	15
;>>>> 		nNewSysDataRdPreAdr=0;
	SACL	_nNewSysDataRdPreAdr
	.line	16
;>>>> 		nNewSysDataWrPreAdr=0;
	SACL	_nNewSysDataWrPreAdr
EPI0_2:
	.line	18
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	64,000000000H,3

	.sym	_TbGetRxCrc,_TbGetRxCrc,46,2,0
	.globl	_TbGetRxCrc

	.func	65
;>>>> 	Boolean TbGetRxCrc(unsigned int nTbRxChar[])
******************************************************
* FUNCTION DEF : _TbGetRxCrc
******************************************************
_TbGetRxCrc:

LF3	.set	0

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

	.sym	_nTbRxChar,-3+LF3,30,9,16
	.sym	_k,1,14,1,16
	.sym	_nTbRxChPre,2,14,1,16
	.line	3
;>>>> 	unsigned int k;
;>>>> 	unsigned int nTbRxChPre;
	.line	6
;>>>> 	  if(nTbRxBegin==nTbRxEnd) return(False);
	LDPK	_nTbRxBegin
	LAC	_nTbRxBegin
	SUB	_nTbRxEnd
	BNZ	L1
	LACK	0
	B	EPI0_3
L1:
	.line	7
;>>>> 	  for(;nTbRxBegin!=nTbRxEnd;nTbRxBegin++,nTbRxBegin &=0x00ff)
	LAC	_nTbRxBegin
	SUB	_nTbRxEnd
	BZ	L3
L2:
	.line	8
;>>>> 	  {  if(nTbRxChLen>256-1)
	LDPK	_nTbRxChLen
	ZALS	_nTbRxChLen
	SUBK	255
	BLEZ	L4
	.line	9
;>>>> 	     { nTbRxChLen=0;
	LACK	0
	SACL	_nTbRxChLen
	.line	10
;>>>> 		 nTbRxCrc=0;
	SACL	_nTbRxCrc
	.line	11
;>>>> 		 bTbRxSoh=False;
	SACL	_bTbRxSoh
L4:
	.line	13
;>>>> 	     nTbRxChPre=nTbRxChBuf[nTbRxBegin];
	LAC	_nTbRxBegin
	ADLK	_nTbRxChBuf+0,0
	MAR	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	.line	14
;>>>> 	     if(bTbRxSoh==True)
	ZALS	_bTbRxSoh
	RSXM
	SUBK	-1
	BNZ	L5
	.line	16
;>>>> 		  if (nTbRxChPre==SOH)
	LAC	* 
	SUBK	32382
	BNZ	L6
	.line	18
;>>>> 		   if(nTbRxChLen > 2)
	ZALS	_nTbRxChLen
	SUBK	2
	BLEZ	L7
	.line	20
;>>>> 		      nTbRxChLen=0;
	LACK	0
	SACL	_nTbRxChLen
	.line	21
;>>>> 		      bTbRxSoh = False;
	SACL	_bTbRxSoh
	.line	22
;>>>> 		      if(nTbRxCrc==0)
	LAC	_nTbRxCrc
	BNZ	L8
	.line	23
;>>>> 		       {return(True);}
	LACK	65535
	B	EPI0_3
L8:
	.line	24
;>>>> 		      nTbRxCrc = 0;
	LACK	0
	SACL	_nTbRxCrc
	.line	25
;>>>> 		      return(1);  /*break for, just finshed*/
;>>>> 		   else
	LACK	1
	B	EPI0_3
L7:
	.line	28
;>>>> 		   {  nTbRxChLen=0;
	LACK	0
	SACL	_nTbRxChLen
	.line	29
;>>>> 		      nTbRxCrc=0;
	SACL	_nTbRxCrc
	.line	30
;>>>> 		      bTbRxSoh=True;
	SPLK	#65535,_bTbRxSoh
	B	L11
L6:
	.line	33
;>>>> 		else if(nTbRxChLen>0 && nTbRxChPre==SOH_REAPT)
	LAC	_nTbRxChLen
	BZ	L10
	ZALS	* 
	SUBK	-32383
	BNZ	L10
	.line	34
;>>>> 		{   bTbRxSoh=False ;		/*input SOH_REAPT*/
	LACK	0
	SACL	_bTbRxSoh
	.line	35
;>>>> 		    Make_RxCrc SOH;
	LACK	32382
	XOR	_nTbRxCrc
	SACL	_nTbRxCrc
	.line	36
;>>>> 		    nTbRxChar[nTbRxChLen]=SOH;/*in "7E"*/
	LAC	_nTbRxChLen
	SBRK	5-LF3
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	SPLK	#32382,* 
	.line	37
;>>>> 		    nTbRxChLen++;
;>>>> 		else/*  'bsoh=True*/
	LAC	_nTbRxChLen
	ADDK	1
	SACL	_nTbRxChLen
	B	L11
L10:
	.line	41
;>>>> 		{   nTbRxCrc=0;
	LACK	0
	SACL	_nTbRxCrc
	.line	42
;>>>> 		    nTbRxChar[0]=nTbRxChPre;	/*in first data*/
	SBRK	5-LF3
	LAR	AR3,* 
	ADRK	5-LF3
	LAC	* ,AR3
	SACL	* ,AR2
	.line	43
;>>>> 		    nTbRxChLen=1;
	LACK	1
	SACL	_nTbRxChLen
	.line	44
;>>>> 		    bTbRxSoh=False;
	LACK	0
	SACL	_bTbRxSoh
	.line	45
;>>>> 		    Make_RxCrc nTbRxChPre;
	LAC	_nTbRxCrc
	XOR	* 
	SACL	_nTbRxCrc
	B	L11
L5:
	.line	49
;>>>> 	     else if(nTbRxChPre==SOH)/*in first SOH*/
	LAC	* 
	SUBK	32382
	BNZ	L12
	.line	50
;>>>> 	       {     bTbRxSoh=True;}
	SPLK	#65535,_bTbRxSoh
	B	L11
L12:
	.line	51
;>>>> 	     else if(nTbRxChLen>0)
	LAC	_nTbRxChLen
	BZ	L11
	.line	52
;>>>> 	     {	 bTbRxSoh=False;
	LACK	0
	SACL	_bTbRxSoh
	.line	53
;>>>> 		 nTbRxChar[nTbRxChLen]=nTbRxChPre; /*input a byte*/
	LAC	_nTbRxChLen
	SBRK	5-LF3
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	ADRK	5-LF3
	LAC	* ,AR3
	SACL	* ,AR2
	.line	54
;>>>> 	 	 nTbRxChLen++;
	LAC	_nTbRxChLen
	ADDK	1
	SACL	_nTbRxChLen
	.line	55
;>>>> 		 Make_RxCrc nTbRxChPre;
	LAC	_nTbRxCrc
	XOR	* 
	SACL	_nTbRxCrc
L11:
	.line	7
	LAC	_nTbRxBegin
	ADDK	1
	SACL	_nTbRxBegin
	ANDK	255
	SACL	_nTbRxBegin
	LAC	_nTbRxBegin
	SUB	_nTbRxEnd
	BNZ	L2
L3:
	.line	58
;>>>> 	   return(False);
	LACK	0
EPI0_3:
	.line	59
	MAR	* ,AR1
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	123,000000000H,3

	.sym	_TbSentTxCrc,_TbSentTxCrc,46,2,0
	.globl	_TbSentTxCrc

	.func	124
;>>>> 	Boolean TbSentTxCrc(unsigned int *Txdata,unsigned int Len)
******************************************************
* FUNCTION DEF : _TbSentTxCrc
******************************************************
_TbSentTxCrc:

LF4	.set	0

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

	.sym	_Txdata,-3+LF4,30,9,16
	.sym	_Len,-4+LF4,14,9,16
	.sym	_n,1,14,1,16
	.sym	_k,2,14,1,16
	.sym	_nTbTxChPre,3,14,1,16
	.sym	_nSaveTxEnd,4,14,1,16
	.sym	_reg_p,5,30,1,16
	.line	3
;>>>> 	unsigned int  n,k,nTbTxChPre,nSaveTxEnd,*reg_p;
	.line	5
;>>>> 	  nSaveTxEnd=nTbTxEnd;
	LARK	AR2,4
	MAR	*0+
	BLKD	#_nTbTxEnd,* 
	.line	6
;>>>> 	  if(nTbTxBegin>nTbTxEnd){n=nTbTxBegin-nTbTxEnd;}
	LDPK	_nTbTxBegin
	ZALS	_nTbTxBegin
	SUBS	_nTbTxEnd
	BLEZ	L14
	LAC	_nTbTxBegin
	SUB	_nTbTxEnd
	SBRK	3
	SACL	* 
	B	L15
L14:
	.line	7
;>>>> 	  else {n=256-nTbTxBegin+nTbTxEnd;}
	LACK	256
	SUB	_nTbTxBegin
	ADD	_nTbTxEnd
	SBRK	3
	SACL	* 
L15:
	.line	8
;>>>> 	  if(n<Len+6){return(False);}
;>>>> 	  else
	SBRK	5-LF4
	ZALS	* 
	ADDK	6
	ANDK	0FFFFh
	ADRK	5-LF4
	SUBS	* 
	BLEZ	L16
	LACK	0
	B	EPI0_4
L16:
	.line	12
;>>>> 		nTbTxChBuf[nTbTxEnd]=SOH;
	LAC	_nTbTxEnd
	ADLK	_nTbTxChBuf+0,0
	MAR	*+,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	SPLK	#32382,* ,AR2
	.line	13
;>>>> 		nTbTxEnd++;nTbTxEnd &=0x00ff;
	LAC	_nTbTxEnd
	ADDK	1
	SACL	_nTbTxEnd
	ANDK	255
	SACL	_nTbTxEnd
	.line	14
;>>>> 		nTbTxCrc=0;
	LACK	0
	SACL	_nTbTxCrc
	.line	15
;>>>> 		for(k=0;k<Len;k++)
	SACL	* 
	ZALS	* 
	SBRK	6-LF4
	SUBS	* 
	BGEZ	L18
	MAR	*+
L17:
	.line	16
;>>>> 		{ nTbTxChPre=*Txdata++;
	LAR	AR3,* ,AR3
	LAC	*+,AR2
	SAR	AR3,* 
	ADRK	6-LF4
	SACL	* 
	.line	17
;>>>> 		    if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
	LDPK	_nTbTxEnd
	LAC	_nTbTxEnd
	SUB	_nTbTxBegin
	BNZ	L19
	MAR	*+
	BLDD	* ,#_nTbTxEnd
	LACK	0
	B	EPI0_4
L19:
	.line	18
;>>>> 		    Make_TxCrc nTbTxChPre;
	LAC	* ,AR0
	XOR	_nTbTxCrc
	SACL	_nTbTxCrc
	.line	19
;>>>> 		    nTbTxChBuf[nTbTxEnd]=nTbTxChPre;
	LAC	_nTbTxEnd
	ADLK	_nTbTxChBuf+0,0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR3
	SACL	* ,AR2
	.line	20
;>>>> 		    nTbTxEnd++;nTbTxEnd &=0x00ff;
	LAC	_nTbTxEnd
	ADDK	1
	SACL	_nTbTxEnd
	ANDK	255
	SACL	_nTbTxEnd
	.line	21
;>>>> 		    if(nTbTxChPre ==SOH)
	LAC	* 
	SUBK	32382
	BNZ	L20
	.line	22
;>>>> 		    { if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
	LAC	_nTbTxEnd
	SUB	_nTbTxBegin
	BNZ	L21
	MAR	*+
	BLDD	* ,#_nTbTxEnd
	LACK	0
	B	EPI0_4
L21:
	.line	23
;>>>> 			nTbTxChBuf[nTbTxEnd]=SOH_REAPT;
	LAC	_nTbTxEnd
	ADLK	_nTbTxChBuf+0,0
	MAR	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	SPLK	#33153,* 
	.line	24
;>>>> 			nTbTxEnd++;nTbTxEnd &=0x00ff;
	LAC	_nTbTxEnd
	ADDK	1
	SACL	_nTbTxEnd
	ANDK	255
	SACL	_nTbTxEnd
L20:
	.line	15
	MAR	* ,AR2
	MAR	*-
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SBRK	6-LF4
	SUBS	*+
	BLZ	L17
L18:
	.line	28
;>>>> 		Make_TxCrc 0;
	.line	29
;>>>> 		if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
	LAC	_nTbTxEnd
	SUB	_nTbTxBegin
	BNZ	L22
	LARK	AR2,4
	MAR	*0+
	BLDD	* ,#_nTbTxEnd
	LACK	0
	B	EPI0_4
L22:
	.line	30
;>>>> 		nTbTxChBuf[nTbTxEnd]=nTbTxCrc;
	LAC	_nTbTxEnd
	ADLK	_nTbTxChBuf+0,0
	MAR	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_nTbTxCrc,* ,AR2
	.line	31
;>>>> 		nTbTxEnd++;nTbTxEnd &=0x00ff;
	LAC	_nTbTxEnd
	ADDK	1
	SACL	_nTbTxEnd
	ANDK	255
	SACL	_nTbTxEnd
	.line	32
;>>>> 		if(nTbTxChPre==SOH)
	LARK	AR2,3
	MAR	*0+
	LAC	* 
	SUBK	32382
	BNZ	L23
	.line	33
;>>>> 		{   if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
	LAC	_nTbTxEnd
	SUB	_nTbTxBegin
	BNZ	L24
	MAR	*+

⌨️ 快捷键说明

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