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

📄 can.asm

📁 dsp320lf2407上的相关程序文件
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx can.c C:\WINDOWS\TEMP\can.if 
;	dspopt NOT RUN
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\can.if C:\WINDOWS\TEMP\can.asm C:\WINDOWS\TEMP\can.tmp 
	.port
	.file	"can.c"
	.file	"f2407_c.h"
	.globl	_portFF0F
	.globl	_portFFFF
	.file	"can.c"
	.globl	_port40
	.globl	_test_can
	.text

	.sym	_can_init,_can_init,32,2,0
	.globl	_can_init

	.func	10
;>>>> 	void can_init(void)
******************************************************
* FUNCTION DEF : _can_init
******************************************************
_can_init:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.line	3
;>>>> 		 *CAN_IFR=0xffff;
	LARK	AR3,28937
	SPLK	#65535,* 
	.line	7
;>>>> 		 *MCR=0x1000;   				/*set CCR=1*/
	SBRK	6
	SPLK	#4096,* 
L1:
	.line	8
;>>>> 		 while(((*GSR)&0x0010)!=0x0010); 	/*if CCE=0 then wait*/
	LARK	AR3,28935
	LACK	16
	AND	* 
	SUBK	16
	BNZ	L1
	.line	9
;>>>> 		 *BCR1=0x0023/*0x01ab*/;
	LACK	35
	SBRK	2
	SACL	*-
	.line	10
;>>>> 		 *BCR2=0x0003;		/*can clk=1Mhz, 10 TQs*/ 
	LACK	3
	SACL	*-
	.line	11
;>>>> 		 *MCR=(*MCR)&0xefff;          /*CCR=0;*/
	LACK	61439
	AND	* 
	SACL	* 
L2:
	.line	12
;>>>> 		 while(((*GSR)&0x0010)==0x0010);  /*if CCE=1 then wait*/  
	LARK	AR3,28935
	LACK	16
	AND	* 
	SUBK	16
	BZ	L2
	.line	16
;>>>> 		 *MDER=0xff80;			/*box0-5 disabled*/ 
	SBRK	7
	SPLK	#65408,* 
	.line	19
;>>>> 		 *MCR=(*MCR)|0x0100;		/*set CDR=1*/ 
	LACK	256
	ADRK	3
	OR	* 
	SACL	* ,AR4
	.line	23
;>>>> 		 *MSGID4H=0x0555;
	LARK	AR4,29217
	SPLK	#1365,*-
	.line	24
;>>>> 		 *MSGID4L=0xaaaa;		/*mailbox4 send*/
	SPLK	#43690,* 
	.line	25
;>>>> 		 *MSGCTRL4=0x0008;		/*1 byte data */
	LACK	8
	ADRK	2
	SACL	* 
	.line	26
;>>>> 		 *MBX4A=0x7777;
	ADRK	2
	SPLK	#30583,*+
	.line	27
;>>>> 		 *MBX4B=0x7777;
	SPLK	#30583,*+
	.line	28
;>>>> 		 *MBX4C=0x7777;
	SPLK	#30583,*+
	.line	29
;>>>> 		 *MBX4D=0x7777; 
	SPLK	#30583,* ,AR3
	.line	33
;>>>> 		 *MSGID0H=0x4555;		/*mailbox0 receive*/
	ADRK	254
	SPLK	#17749,*-
	.line	34
;>>>> 		 *MSGID0L=0xaaaa;		
	SPLK	#43690,* 
	.line	35
;>>>> 		 *MSGCTRL0=0x0008; 
	ADRK	2
	SACL	* 
	.line	36
;>>>> 		 *MBX0A=0xffff;
	ADRK	2
	SPLK	#65535,*+
	.line	37
;>>>> 		 *MBX0B=0xffff;
	SPLK	#65535,*+
	.line	38
;>>>> 		 *MBX0C=0xffff;
	SPLK	#65535,*+
	.line	39
;>>>> 		 *MBX0D=0xffff; 
	SPLK	#65535,* 
	.line	43
;>>>> 		 *LAM0_H=0x7fff;
	SBRK	252
	SPLK	#32767,*+
	.line	44
;>>>> 		 *LAM0_L=0xffff;
	SPLK	#65535,*+
	.line	45
;>>>> 		 *LAM1_H=0x7fff;
	SPLK	#32767,*+
	.line	46
;>>>> 		 *LAM1_L=0xffff;
	SPLK	#65535,* 
	.line	47
;>>>> 		 *MCR=(*MCR)&0xfeff;  	/*CDR=0;*/
	LACK	65279
	SBRK	11
	AND	* 
	SACL	* ,AR1
EPI0_1:
	.line	50
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	59,000000000H,1

	.sym	_test_can,_test_can,46,2,0
	.globl	_test_can

	.func	63
;>>>> 	unsigned int test_can(void)
;>>>> 		 unsigned int data_rec1,data_rec2,data_rec3,data_rec4;
******************************************************
* FUNCTION DEF : _test_can
******************************************************
_test_can:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,5
	LAR	AR0,*0+

	.sym	_data_rec1,1,14,1,16
	.sym	_data_rec2,2,14,1,16
	.sym	_data_rec3,3,14,1,16
	.sym	_data_rec4,4,14,1,16
	.line	4
;>>>> 		 can_init();
	CALL	_can_init
	.line	6
;>>>> 		 *MDER=(*MDER)|0x0001;		/*enable mailbox0*/
	LARK	AR3,28928
	LACK	1
	MAR	* ,AR3
	OR	* 
	SACL	*+
	.line	9
;>>>> 		 *TCR=(*TCR)|0x0040;			/*TRS4=1*/ 
	LACK	64
	OR	* 
	SACL	* 
L3:
	.line	16
;>>>> 		 while(((*TCR)&0x4000)!=0x4000);  	/*if TA4=0 then wait*/
	LARK	AR3,28929
	LACK	16384
	AND	* 
	SUBK	16384
	BNZ	L3
	.line	17
;>>>> 		 *TCR=(*TCR)|0x4000;					/*set TA4=1*/ 
	LACK	16384
	OR	* 
	SACL	* 
L4:
	.line	21
;>>>> 		 while(((*RCR)&0x0010)!=0x0010);		/*if RMP0=0 then wait*/
	LARK	AR3,28930
	LACK	16
	AND	* 
	SUBK	16
	BNZ	L4
	.line	22
;>>>> 		 *RCR=(*RCR)|0x0010;		/*RMP0=1*/ 
	LACK	16
	OR	* 
	SACL	* ,AR4
	.line	25
;>>>> 		 data_rec1=*MBX0A;
	LARK	AR4,29188
	LAC	*+,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	*+,AR4
	.line	26
;>>>> 		 data_rec2=*MBX0B;
	LAC	*+,AR2
	SACL	*+,AR4
	.line	27
;>>>> 		 data_rec3=*MBX0C;
	LAC	*+,AR2
	SACL	*+,AR4
	.line	28
;>>>> 		 data_rec4=*MBX0D;
	LAC	* ,AR2
	SACL	* 
	.line	30
;>>>> 		 if(data_rec1!=0x2222)return(0);
	SBRK	3
	LAC	* 
	SUBK	8738
	BZ	L5
	LACK	0
	B	EPI0_2
L5:
	.line	31
;>>>> 		 if(data_rec2!=0x5555)return(0);
	MAR	*+
	LAC	* 
	SUBK	21845
	BZ	L6
	LACK	0
	B	EPI0_2
L6:
	.line	32
;>>>> 		 if(data_rec3!=0xaaaa)return(0);
	MAR	*+
	ZALS	* 
	RSXM
	SUBK	-21846
	BZ	L7
	LACK	0
	B	EPI0_2
L7:
	.line	33
;>>>> 		 if(data_rec4!=0xeeee)return(0);
	MAR	*+
	ZALS	* 
	SUBK	-4370
	BZ	L8
	LACK	0
	B	EPI0_2
L8:
	.line	34
;>>>> 		 return(1);
	LACK	1
EPI0_2:
	.line	35
	MAR	* ,AR1
	SBRK	6
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	97,000000000H,5
	.end

⌨️ 快捷键说明

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