scanner.asm

来自「dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,f」· 汇编 代码 · 共 3,856 行 · 第 1/5 页

ASM
3,856
字号
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx scanner.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\scanner.if 
;	dspopt NOT RUN
;	C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\scanner.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\scanner.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\scanner.tmp 
	.port
	.bss	_lastUid,8,1
	.bss	_currUid,8
	.bss	_scanReadCounter,1
	.bss	_scanner_mode,1
	.bss	_db_adr,1
	.bss	_trigger,1
	.bss	_ec,1
	.bss	_end_char,1
	.bss	_sep_char,1
	.bss	_sep_usr,1
	.bss	_scan_lock_time,1
	.bss	_sc,1
	.bss	_end_usr,1
	.bss	_mode,1
	.bss	_scan_data,1
	.bss	_db_format,1
	.bss	_db_n,1
	.bss	_db_use,1
	.file	"scanner.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	"scanner.c"
	.globl	_globalErrFlag
	.globl	_Day
	.globl	_Hour
	.globl	_Minute
	.globl	_Second
	.globl	_viccdata
	.globl	_labeldata
	.globl	_pcdata
	.globl	_cfgdata
	.globl	_deviceAddr
	.globl	_ISOModeSys
	.globl	_ISOFlagsSys
	.globl	_ISOMode
	.globl	_status_rx
	.globl	_bReadTag

	.sect	".cinit"
	.word	IS1,_lastUid
	.word	8
	.word	7
	.word	6
	.word	5
	.word	4
	.word	3
	.word	2
	.word	1
IS1	.set	8

	.sym	_lastUid,_lastUid,60,3,128,,8
	.word	IS2,_currUid
	.word	1
	.word	2
	.word	3
	.word	4
	.word	5
	.word	6
	.word	7
	.word	8
IS2	.set	8

	.sym	_currUid,_currUid,60,3,128,,8
	.globl	_readCfg12ScanMode
	.globl	_scanner12Mode
	.text

	.sym	_scannerComRec,_scannerComRec,32,3,0

	.func	74
;>>>> 	static void scannerComRec(void)
******************************************************
* FUNCTION DEF : _scannerComRec
******************************************************
_scannerComRec:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		feedWatchDog();	
;>>>> 		switch (pcdata[2])
	CALL	_feedWatchDog
	B	L1
L2:
	.line	6
;>>>> 		  	case 0x52: {Detec_Baud_pro();  break;}	//Baud Rate Detection	  	
	CALL	_Detec_Baud_pro,AR1
	B	L3
L4:
	.line	7
;>>>> 		  	case 0x63: {CPU_reset();	   break;}  	//cpu reset
	CALL	_CPU_reset,AR1
	B	L3
L5:
	.line	8
;>>>> 		  	case 0x65: {Get_DevInf_pro();  break;}	//Get Reader Information
	CALL	_Get_DevInf_pro,AR1
	B	L3
L6:
	.line	9
;>>>> 		  	case 0x69: {Reset_RF_pro();    break;}	//RF Reset
	CALL	_Reset_RF_pro,AR1
	B	L3
L7:
	.line	10
;>>>> 		  	case 0x6A: {RF_OnOff_pro();    break;}	//RF ON/OFF
	CALL	_RF_OnOff_pro,AR1
	B	L3
L8:
	.line	11
;>>>> 		  	case 0x6d: {getNoiseLevel();   break;}  	//get noise level
	CALL	_getNoiseLevel,AR1
	B	L3
L9:
	.line	12
;>>>> 		  	case 0x6e: {readerDiagnostic();break;}  	//reader diagnostic
	CALL	_readerDiagnostic,AR1
	B	L3
L10:
	.line	13
;>>>> 		  	case 0x71: {setOutput();	   break;}  	//set output
	CALL	_setOutput,AR1
	B	L3
L11:
	.line	14
;>>>> 		  	case 0x74: {getInput();		   break;}  	//get input
	CALL	_getInput,AR1
	B	L3
L12:
	.line	15
;>>>> 		  	case 0x80: {Read_Cfg_pro();    break;}	//Read Configuration
	CALL	_Read_Cfg_pro,AR1
	B	L3
L13:
	.line	16
;>>>> 		  	case 0x81: {Write_Cfg_pro();   break;}	//Write Configuration	  	
	CALL	_Write_Cfg_pro,AR1
	B	L3
L14:
	.line	17
;>>>> 		  	case 0x83: {Sdefault_Cfg_pro();break;}	//Set Default Configuration
	CALL	_Sdefault_Cfg_pro,AR1
	B	L3
L15:
	.line	18
;>>>> 		  	case 0x85: {Wr_Rtc_pro();      break;}
	CALL	_Wr_Rtc_pro,AR1
	B	L3
L16:
	.line	19
;>>>> 		  	case 0x86: {Rd_Rtc_pro();      break;}	  	
	CALL	_Rd_Rtc_pro,AR1
	B	L3
L17:
	.line	20
;>>>> 		  	case 0x88: {readIsoModeFalg(); break;}
	CALL	_readIsoModeFalg,AR1
	B	L3
L18:
	.line	21
;>>>> 		    default:   {default_pro();     break;}	//Unknown Command
	CALL	_default_pro,AR1
	B	L3
L1:
	.line	4
	LDPK	_pcdata+2
	ZALS	_pcdata+2
	SUBK	82
	BZ	L2
	SUBK	17
	BZ	L4
	SUBK	2
	BZ	L5
	SUBK	4
	BZ	L6
	SUBK	1
	BZ	L7
	SUBK	3
	BZ	L8
	SUBK	1
	BZ	L9
	SUBK	3
	BZ	L10
	SUBK	3
	BZ	L11
	SUBK	12
	BZ	L12
	SUBK	1
	BZ	L13
	SUBK	2
	BZ	L14
	SUBK	2
	BZ	L15
	SUBK	1
	BZ	L16
	SUBK	2
	BZ	L17
	B	L18
L3:
EPI0_1:
	.line	23
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	96,000000000H,1

	.sym	_readCfg12ScanMode,_readCfg12ScanMode,32,2,0
	.globl	_readCfg12ScanMode

	.func	97
;>>>> 	void readCfg12ScanMode()
******************************************************
* FUNCTION DEF : _readCfg12ScanMode
******************************************************
_readCfg12ScanMode:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+,AR2

	.sym	_temp,1,12,1,16
	.line	3
;>>>> 		uchar temp = 0;	
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	5
;>>>> 		scanner_mode = cfgdata[96] >> 8;
	RSXM
	LDPK	_cfgdata+96
	LAC	_cfgdata+96,7
	LDPK	_scanner_mode
	SACH	_scanner_mode,1
	.line	6
;>>>> 		scan_data = cfgdata[97] & 0xff;	
	LACK	255
	LDPK	_cfgdata+97
	AND	_cfgdata+97
	LDPK	_scan_data
	SACL	_scan_data
	.line	7
;>>>> 		db_adr = cfgdata[98] >> 8;
	LDPK	_cfgdata+98
	LAC	_cfgdata+98,7
	LDPK	_db_adr
	SACH	_db_adr,1
	.line	8
;>>>> 		db_n = cfgdata[98] & 0xff;
	LACK	255
	LDPK	_cfgdata+98
	AND	_cfgdata+98
	LDPK	_db_n
	SACL	_db_n
	.line	9
;>>>> 		scan_lock_time = cfgdata[99];
	BLKD	#_cfgdata+99,_scan_lock_time
	.line	10
;>>>> 		db_use = cfgdata[100] & 0xff;
	LACK	255
	LDPK	_cfgdata+100
	AND	_cfgdata+100
	LDPK	_db_use
	SACL	_db_use
	.line	11
;>>>> 		sep_char = cfgdata[101] >> 8;
	LDPK	_cfgdata+101
	LAC	_cfgdata+101,7
	LDPK	_sep_char
	SACH	_sep_char,1
	.line	12
;>>>> 		sep_usr = cfgdata[101] & 0xff;
	LACK	255
	LDPK	_cfgdata+101
	AND	_cfgdata+101
	LDPK	_sep_usr
	SACL	_sep_usr
	.line	13
;>>>> 		end_char = cfgdata[102] >> 8;
	LDPK	_cfgdata+102
	LAC	_cfgdata+102,7
	LDPK	_end_char
	SACH	_end_char,1
	.line	14
;>>>> 		end_usr = cfgdata[102] & 0xff;	
	LACK	255
	LDPK	_cfgdata+102
	AND	_cfgdata+102
	LDPK	_end_usr
	SACL	_end_usr
	.line	17
;>>>> 		mode = scanner_mode&0x07;
	LACK	7
	AND	_scanner_mode
	SACL	_mode
	.line	18
;>>>> 		trigger = scanner_mode>>7;
	LAC	_scanner_mode,8
	SACH	_trigger,1
	.line	19
;>>>> 		scan_data &= 0x63;
	LACK	99
	AND	_scan_data
	SACL	_scan_data
	.line	20
;>>>> 		db_format = db_use&0x0f;
	LACK	15
	AND	_db_use
	SACL	_db_format
	.line	22
;>>>> 		if(sep_char == 0x01)		sc = 0x0d0a;	//cr+lf
	LAC	_sep_char
	SUBK	1
	BNZ	L19
	SPLK	#3338,_sc
	B	L20
L19:
	.line	23
;>>>> 		else if(sep_char == 0x02)	sc = 0x0a;	//lf
	LAC	_sep_char
	SUBK	2
	BNZ	L21
	LACK	10
	SACL	_sc
	B	L20
L21:
	.line	24
;>>>> 		else if(sep_char == 0x04)	sc = 0x0d;	//cr
	LAC	_sep_char
	SUBK	4
	BNZ	L22
	LACK	13
	SACL	_sc
	B	L20
L22:
	.line	25
;>>>> 		else if(sep_char == 0x08)	sc = 0x07;	//tab
	LAC	_sep_char
	SUBK	8
	BNZ	L23
	LACK	7
	SACL	_sc
	B	L20
L23:
	.line	26
;>>>> 		else if(sep_char == 0x10)	sc = 0x3b;	//';'
	LAC	_sep_char
	SUBK	16
	BNZ	L24
	LACK	59
	SACL	_sc
	B	L20
L24:
	.line	27
;>>>> 		else if(sep_char == 0x20)	sc = 0x2c;	//','
	LAC	_sep_char
	SUBK	32
	BNZ	L25
	LACK	44
	SACL	_sc
	B	L20
L25:
	.line	28
;>>>> 		else if(sep_char == 0x40)	sc = 0x20;	//' '
	LAC	_sep_char
	SUBK	64
	BNZ	L26
	LACK	32
	SACL	_sc
	B	L20
L26:
	.line	29
;>>>> 		else if(sep_char == 0x80)	sc = sep_usr;	//sep_usr
	LAC	_sep_char
	SUBK	128
	BNZ	L27
	BLKD	#_sep_usr,_sc
	B	L20
L27:
	.line	30
;>>>> 		else 						sc = 0x2c;	//','	default
	LACK	44
	SACL	_sc
L20:
	.line	32
;>>>> 		if(end_char == 0x01)		ec = 0x0d0a;	//cr+lf
	LAC	_end_char
	SUBK	1
	BNZ	L28
	SPLK	#3338,_ec
	B	L29
L28:
	.line	33
;>>>> 		else if(end_char == 0x02)	ec = 0x0a;	//lf
	LAC	_end_char
	SUBK	2
	BNZ	L30
	LACK	10
	SACL	_ec
	B	L29
L30:
	.line	34
;>>>> 		else if(end_char == 0x04)	ec = 0x0d;	//cr
	LAC	_end_char
	SUBK	4
	BNZ	L31
	LACK	13
	SACL	_ec
	B	L29
L31:
	.line	35
;>>>> 		else if(end_char == 0x08)	ec = 0x07;	//tab
	LAC	_end_char
	SUBK	8
	BNZ	L32
	LACK	7
	SACL	_ec
	B	L29
L32:
	.line	36
;>>>> 		else if(end_char == 0x10)	ec = 0x3b;	//';'
	LAC	_end_char
	SUBK	16
	BNZ	L33
	LACK	59
	SACL	_ec
	B	L29
L33:
	.line	37
;>>>> 		else if(end_char == 0x20)	ec = 0x2c;	//','
	LAC	_end_char
	SUBK	32
	BNZ	L34
	LACK	44
	SACL	_ec
	B	L29
L34:
	.line	38
;>>>> 		else if(end_char == 0x40)	ec = 0x20;	//' '
	LAC	_end_char
	SUBK	64
	BNZ	L35
	LACK	32
	SACL	_ec
	B	L29
L35:
	.line	39
;>>>> 		else if(end_char == 0x80)	ec = end_usr;	//end_usr
	LAC	_end_char
	SUBK	128
	BNZ	L36
	BLKD	#_end_usr,_ec
	B	L29
L36:
	.line	40
;>>>> 		else 						ec = 0x0d0a;	//','	default
	SPLK	#3338,_ec
L29:
EPI0_2:
	.line	41
	MAR	* ,AR1
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	137,000000000H,2

	.sect	".cinit"
	.word	1,_scanReadCounter
	.word	0

	.sym	_scanReadCounter,_scanReadCounter,12,2,16
	.globl	_scanReadCounter
	.text

	.sym	_scanner12Mode,_scanner12Mode,32,2,0
	.globl	_scanner12Mode

	.func	139
;>>>> 	void scanner12Mode()
;>>>> 		int i,con;
;>>>> 		uchar addrType; 
******************************************************
* FUNCTION DEF : _scanner12Mode
******************************************************
_scanner12Mode:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+,AR2

	.sym	_i,1,4,1,16
	.sym	_con,2,4,1,16
	.sym	_addrType,3,12,1,16
	.line	6
;>>>> 		con = cfgdata[99]&0xff;	
	LACK	255
	LDPK	_cfgdata+99
	AND	_cfgdata+99
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	.line	7
;>>>> 		if( con >= 30)con = 30;
	SSXM
	LAC	* 
	SUBK	30
	BLZ	L37
	LACK	30
	SACL	* 
L37:
	.line	8
;>>>> 		globalErrFlag = 0x00;	//  clear iso error flag	
	LACK	0
	LDPK	_globalErrFlag
	SACL	_globalErrFlag
	.line	10
;>>>> 		if(status_rx==2)
	LDPK	_status_rx
	LAC	_status_rx
	SUBK	2
	BNZ	L38
	.line	12
;>>>> 			addrType = verifyType();		
	CALL	_verifyType,AR1
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	SACL	* 
	.line	13
;>>>> 		  	if(addrType)scannerComRec( ); 
	LAC	* 
	BZ	L39
	CALL	_scannerComRec,AR1
L39:
	.line	14
;>>>> 			status_rx = 0; 		
	LACK	0
	LDPK	_status_rx
	SACL	_status_rx
L38:
	.line	17
;>>>> 		if(scanReadCounter >= con)
;>>>> 			switch(scan_data)
	LDPK	_scanReadCounter
	ZALS	_scanReadCounter
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SUBS	* 
	BLZ	L40
	B	L41
L42:
	.line	21
;>>>> 				case 0x01:{snr();break;}
	CALL	_snr,AR1
	B	L43
L44:
	.line	22
;>>>> 				case 0x21:{snrTime();break;}
	CALL	_snrTime,AR1
	B	L43
L45:
	.line	23
;>>>> 				case 0x41:{snrComPrefix();break;}
	CALL	_snrComPrefix,AR1
	B	L43
L46:

⌨️ 快捷键说明

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