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 + -
显示快捷键?