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

📄 39vf400.asm

📁 dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,fir等的很多程序.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	PSHD	*
	RET

	.endfunc	336,000000000H,6

	.sym	_readOneCfg,_readOneCfg,32,2,0
	.globl	_readOneCfg

	.func	364
;>>>> 	void readOneCfg(uint loc)
******************************************************
* FUNCTION DEF : _readOneCfg
******************************************************
_readOneCfg:

LF6	.set	0

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

	.sym	_loc,-3+LF6,14,9,16
	.sym	_temp,1,30,1,16
	.sym	_i,2,14,1,16
	.sym	_addr,3,14,1,16
	.line	2
;>>>> 		uint *temp;
;>>>> 		uint i;
	.line	5
;>>>> 		uint addr = 0x8000;	 
	LARK	AR2,3
	MAR	*0+
	SPLK	#32768,*-
	.line	6
;>>>> 		cs_flash_0; 
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1024
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	LACK	65531
	AND	_PFDATDIR
	SACL	_PFDATDIR
	.line	7
;>>>> 		for(i=0;i<8;i++)
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L10
	SBRK	5-LF6
	RSXM ;;;
L9:
	.line	9
;>>>> 			temp =  (uint *)(addr+loc*8+i);
	LAC	* ,3
	ADRK	6-LF6
	ADD	*-
	ADD	*-
	SACL	* 
	.line	10
;>>>> 			cfgdata[loc*8+i] = *temp; 	
	LAR	AR3,* 
	SBRK	4-LF6
	LAC	* ,3
	ADLK	_cfgdata+0,0
	ADRK	5-LF6
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	7
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	SBRK	5-LF6
	BLZ	L9
L10:
	.line	12
;>>>> 		cs_flash_1;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1028
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
EPI0_6:
	.line	13
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	376,000000000H,4

	.sym	_writeOneDefaultCfg,_writeOneDefaultCfg,46,2,0
	.globl	_writeOneDefaultCfg

	.func	379
;>>>> 	uint writeOneDefaultCfg(uint loc)
******************************************************
* FUNCTION DEF : _writeOneDefaultCfg
******************************************************
_writeOneDefaultCfg:

LF7	.set	0

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

	.sym	_loc,-3+LF7,14,9,16
	.sym	_temp,1,30,1,16
	.sym	_i,2,14,1,16
	.sym	_flag,3,14,1,16
	.sym	_addr,4,14,1,16
	.line	2
;>>>> 		uint *temp;
;>>>> 		uint i;
;>>>> 		uint flag; 
	.line	6
;>>>> 		uint addr = 0x8000;	
	LARK	AR2,4
	MAR	*0+
	SPLK	#32768,* 
	.line	8
;>>>> 	    cs_flash_0;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1024
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	LACK	65531
	AND	_PFDATDIR
	SACL	_PFDATDIR
	.line	9
;>>>> 		for(i=0;i<112;i++)
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	112
	BGEZ	L12
L11:
	.line	11
;>>>> 			cfgdata[i] = *( (uint *)(0x8000+i) );		
;>>>> 		}	//将flash中数据cfg0~cfg13全部读出 
	LAC	* ,AR0
	ADLK	1,15
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_cfgdata+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	9
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	112
	BLZ	L11
L12:
	.line	13
;>>>> 		cs_flash_1;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1028
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	.line	15
;>>>> 		if(loc == 1)		para1def();
	SBRK	5-LF7
	LAC	* 
	SUBK	1
	BNZ	L13
	CALL	_para1def,AR1
	B	L14
L13:
	.line	16
;>>>> 		else if(loc == 2)	para2def();
	LAC	* 
	SUBK	2
	BNZ	L15
	CALL	_para2def,AR1
	B	L14
L15:
	.line	17
;>>>> 		else if(loc == 3)	para3def();
	LAC	* 
	SUBK	3
	BNZ	L16
	CALL	_para3def,AR1
	B	L14
L16:
	.line	18
;>>>> 		else if(loc == 5)	para5def();
	LAC	* 
	SUBK	5
	BNZ	L17
	CALL	_para5def,AR1
	B	L14
L17:
	.line	19
;>>>> 		else if(loc == 8)	para8def();
	LAC	* 
	SUBK	8
	BNZ	L18
	CALL	_para8def,AR1
	B	L14
L18:
	.line	20
;>>>> 		else if(loc == 10)	para10def();
	LAC	* 
	SUBK	10
	BNZ	L19
	CALL	_para10def,AR1
	B	L14
L19:
	.line	21
;>>>> 		else if(loc == 11)	para11def();
	LAC	* 
	SUBK	11
	BNZ	L20
	CALL	_para11def,AR1
	B	L14
L20:
	.line	22
;>>>> 		else if(loc == 12)	para12def();
	LAC	* 
	SUBK	12
	BNZ	L21
	CALL	_para12def,AR1
	B	L14
L21:
	.line	23
;>>>> 		else if(loc == 13)	para13def();	//将要缺省配置的数据写进缓存
	LAC	* 
	SUBK	13
	BNZ	L14
	CALL	_para13def,AR1
L14:
	.line	25
;>>>> 		flag = Erase_One_Sector((uint*)0x8000);
	MAR	* ,AR1
	LALK	1,15
	SACL	*+
	CALL	_Erase_One_Sector
	MAR	*-,AR2
	LARK	AR2,3
	MAR	*0+
	SACL	* 
	.line	26
;>>>> 		if(flag == 0) return flag;	//擦除一块2k字
	LAC	* 
	BNZ	L23
	ZALS	* 
	B	EPI0_7
L23:
	.line	28
;>>>> 		addr = 0x8000;
	MAR	*+
	SPLK	#32768,* 
	.line	29
;>>>> 		for(i=0;i<112;i++)
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	112
	BGEZ	L25
	ADRK	2
L24:
	.line	31
;>>>> 			flag = Program_One_Word (cfgdata[i], (uint *)addr);
	LAC	* ,AR1
	SACL	*+,AR2
	SBRK	2
	LAC	* ,AR0
	ADLK	_cfgdata+0,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_Program_One_Word
	SBRK	2
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	SACL	* 
	.line	32
;>>>> 			if(flag == 0) return flag;
	LAC	* 
	BNZ	L26
	ZALS	* 
	B	EPI0_7
L26:
	.line	33
;>>>> 			addr++;
;>>>> 		}	//对224字节编程	
	MAR	*+
	LAC	* 
	ADDK	1
	SACL	* 
	.line	29
	SBRK	2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	112
	ADRK	2
	BLZ	L24
L25:
	.line	35
;>>>> 		return 1;
	LACK	1
EPI0_7:
	.line	36
	MAR	* ,AR1
	SBRK	6
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	414,000000000H,5

	.sym	_writeOneCfg,_writeOneCfg,46,2,0
	.globl	_writeOneCfg

	.func	418
;>>>> 	uint  writeOneCfg(uint loc)
******************************************************
* FUNCTION DEF : _writeOneCfg
******************************************************
_writeOneCfg:

LF8	.set	0

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

	.sym	_loc,-3+LF8,14,9,16
	.sym	_temp,1,30,1,16
	.sym	_i,2,14,1,16
	.sym	_flag,3,14,1,16
	.sym	_addr,4,14,1,16
	.line	2
;>>>> 		uint *temp;
;>>>> 		uint i;
;>>>> 		uint flag; 
	.line	6
;>>>> 		uint addr = 0x8000;	
	LARK	AR2,4
	MAR	*0+
	SPLK	#32768,* 
	.line	8
;>>>> 	    cs_flash_0;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1024
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	LACK	65531
	AND	_PFDATDIR
	SACL	_PFDATDIR
	.line	9
;>>>> 		for(i=0;i<112;i++)
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	112
	BGEZ	L28
L27:
	.line	11
;>>>> 			cfgdata[i] = *( (uint *)(0x8000+i) );	
;>>>> 		}	//将flash中数据cfg0~cfg13全部读出 
	LAC	* ,AR0
	ADLK	1,15
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_cfgdata+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	9
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	112
	BLZ	L27
L28:
	.line	13
;>>>> 		cs_flash_1;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1028
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	.line	15
;>>>> 		for(i=0;i<7;i++)cfgdata[loc*8+i] = 0;//先将要配置的数据清0
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	7
	BGEZ	L30
	SBRK	5-LF8
	RSXM ;;;
L29:
	LAC	* ,3
	ADLK	_cfgdata+0,0
	ADRK	5-LF8
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LACK	0
	SACL	* ,AR2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	7
	SBRK	5-LF8
	BLZ	L29
L30:
	.line	16
;>>>> 		for(i=0;i<14;i++)
	LACK	0
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	14
	BGEZ	L32
L31:
	.line	18
;>>>> 			if(i%2==0)cfgdata[loc*8+i/2] |= pcdata[4+i]<<8;		
	BIT	* ,15
	BBNZ	L33
	LAC	* ,AR0
	ADLK	_pcdata+4,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,8,AR1
	SACL	*+,AR2
	RSXM
	LAC	* ,14,AR1
	SACH	*+,1,AR2
	SBRK	5-LF8
	LAC	* ,3,AR1
	ADLK	_cfgdata+0,0
	MAR	*-
	ADD	*-,AR0
	SACL	* 
	LAR	AR3,* ,AR1
	LAC	* ,AR3
	OR	* 
	SACL	* 
	B	L34
L33:
	.line	19
;>>>> 			else	cfgdata[loc*8+i/2] |= pcdata[4+i];
;>>>> 		}	//将要改写的数据写入cfgdata
	LAC	* ,AR0
	ADLK	_pcdata+4,0
	SACL	* 
	LAR	AR3,* ,AR2
	RSXM
	LAC	* ,14,AR1
	SACH	*+,1,AR2
	SBRK	5-LF8
	LAC	* ,3,AR1
	ADLK	_cfgdata+0,0
	MAR	*-
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	OR	* 
	SACL	* 
L34:
	.line	16
	MAR	* ,AR2
	ADRK	5-LF8
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	14
	BLZ	L31
L32:
	.line	21
;>>>> 		flag = Erase_One_Sector((uint*)0x8000);
	MAR	* ,AR1
	LALK	1,15
	SACL	*+
	CALL	_Erase_One_Sector
	MAR	*-,AR2
	LARK	AR2,3
	MAR	*0+
	SACL	* 
	.line	22
;>>>> 		if(flag == 0) return flag;	//擦除一块2k字
	LAC	* 
	BNZ	L35
	ZALS	* 
	B	EPI0_8
L35:
	.line	24
;>>>> 		addr = 0x8000;
	MAR	*+
	SPLK	#32768,* 
	.line	25
;>>>> 		for(i=0;i<112;i++)
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	112
	BGEZ	L37
	ADRK	2
L36:
	.line	27
;>>>> 			flag = Program_One_Word (cfgdata[i], (uint *)addr);
	LAC	* ,AR1
	SACL	*+,AR2
	SBRK	2
	LAC	* ,AR0
	ADLK	_cfgdata+0,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_Program_One_Word
	SBRK	2
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	SACL	* 
	.line	28
;>>>> 			if(flag == 0) return flag;
	LAC	* 
	BNZ	L38
	ZALS	* 
	B	EPI0_8
L38:
	.line	29
;>>>> 			addr++;
;>>>> 		}	//对224字节编程	
	MAR	*+
	LAC	* 
	ADDK	1
	SACL	* 
	.line	25
	SBRK	2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	112
	ADRK	2
	BLZ	L36
L37:
	.line	31
;>>>> 		return 1;
	LACK	1
EPI0_8:
	.line	32
	MAR	* ,AR1
	SBRK	6
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	449,000000000H,5

	.sym	_writeAllCfg,_writeAllCfg,46,2,0
	.globl	_writeAllCfg

	.func	451
;>>>> 	uint  writeAllCfg( )
;>>>> 		uint i;
;>>>> 		uint flag; 
******************************************************
* FUNCTION DEF : _writeAllCfg
******************************************************
_writeAllCfg:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+,AR2

	.sym	_i,1,14,1,16
	.sym	_flag,2,14,1,16
	.sym	_addr,3,14,1,16
	.line	5
;>>>> 		uint addr = 0x8000;	
	LARK	AR2,3
	MAR	*0+
	SPLK	#32768,* ,AR1
	.line	7
;>>>> 		flag = Erase_One_Sector((uint*)0x8000);
	LALK	1,15
	SACL	*+
	CALL	_Erase_One_Sector
	MAR	*-,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	.line	8
;>>>> 		if(flag == 0) return flag;	//擦除一块2k字	
	LAC	* 
	BNZ	L39
	ZALS	* 
	B	EPI0_9
L39:
	.line	10
;>>>> 		addr = 0x8000;
	MAR	*+
	SPLK	#32768,* 
	.line	11
;>>>> 		for(i=0;i<112;i++)
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	112
	BGEZ	L41
	ADRK	2
L40:
	.line	13
;>>>> 			flag = Program_One_Word (cfgdata[i], (uint *)addr);
	LAC	* ,AR1
	SACL	*+,AR2
	SBRK	2
	LAC	* ,AR0
	ADLK	_cfgdata+0,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_Program_One_Word
	SBRK	2
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	.line	14
;>>>> 			if(flag == 0) return flag;
	LAC	* 
	BNZ	L42
	ZALS	* 
	B	EPI0_9
L42:
	.line	15
;>>>> 			addr++;
;>>>> 		}	//对224字节编程		
	MAR	*+
	LAC	* 
	ADDK	1
	SACL	* 
	.line	11
	SBRK	2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	112
	ADRK	2
	BLZ	L40
L41:
	.line	17
;>>>> 		return 1;
	LACK	1
EPI0_9:
	.line	18
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	468,000000000H,4

	.sym	_readAllCfg,_readAllCfg,32,2,0
	.globl	_readAllCfg

	.func	469
;>>>> 	void readAllCfg(void)
;>>>> 		uint i;
******************************************************
* FUNCTION DEF : _readAllCfg
******************************************************
_readAllCfg:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+,AR2

	.sym	_i,1,14,1,16
	.line	4
;>>>> 		cs_flash_0;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1024
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	LACK	65531
	AND	_PFDATDIR
	SACL	_PFDATDIR
	.line	5
;>>>> 		for(i=0;i<112;i++)
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	112
	BGEZ	L44
L43:
	.line	7
;>>>> 			cfgdata[i] =  *( (uint*)(0x8000+i) );
	LAC	* ,AR0
	ADLK	1,15
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_cfgdata+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	5
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	112
	BLZ	L43
L44:
	.line	9
;>>>> 		cs_flash_1;
	LACK	64511
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	1028
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
EPI0_10:
	.line	10
	MAR	* ,AR1
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	478,000000000H,2
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	_para1def
	.global	_para2def
	.global	_para3def
	.global	_para5def
	.global	_para8def
	.global	_para10def
	.global	_para11def
	.global	_para12def
	.global	_para13def
	.end

⌨️ 快捷键说明

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