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

📄 i2cmu.asm

📁 TI 281x DSP 各种通信接口驱动源代码
💻 ASM
字号:
;***************************************************************
;* TMS320C2000 ANSI C Codegen                     Version 3.01 *
;* Date/Time created: Wed Jan 30 17:43:27 2002                 *
;***************************************************************
FP	.set	XAR2
	.file	"i2cmu.c"
;	ac2000 -qq --version=28 --keep_unneeded_types -m --i_output_file C:\TEMP\TI257_2 --template_info_file C:\TEMP\TI257_3 --object_file ..\obj\i2cmu.obj --opt_shell 14 i2cmu.c -v28 -gs -k -al -as -ax -qq -fr ..\obj -fs ..\lst -ff ..\lst i2cmu.c 
	.sect	".text"
	.global	_vi2cmFree
	.sym	_vi2cmFree,_vi2cmFree, 46, 2, 0
	.func	15
;----------------------------------------------------------------------
;  15 | unsigned int vi2cmFree(VI2CM_IO *i2c)                                  
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _vi2cmFree                    FR SIZE:   1           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  1 Auto,  0 SOE     *
;***************************************************************

_vi2cmFree:
	.line	2
;* AR4   assigned to _i2c
	.sym	_i2c,10, 24, 17, 16, $$fake0
	.sym	_i2c,-1, 24, 1, 16, $$fake0
        ADDB      SP,#1
        MOV       *-SP[1],AR4           ; |16| 
	.line	3
;----------------------------------------------------------------------
;  17 | if(i2c->taskIndex == IDLE_STATE)                                       
;----------------------------------------------------------------------
        MOVZ      AR6,*-SP[1]           ; |17| 
        MOV       AL,*+XAR6[0]          ; |17| 
        BF        L1,NEQ                ; |17| 
        ; branch occurs ; |17| 
	.line	4
;----------------------------------------------------------------------
;  18 | return(1);                                                             
;  19 | else                                                                   
;----------------------------------------------------------------------
        MOVB      AL,#1                 ; |18| 
        B         L2,UNC                ; |18| 
        ; branch occurs ; |18| 
L1:    
	.line	6
;----------------------------------------------------------------------
;  20 | return(0);                                                             
;----------------------------------------------------------------------
        MOVB      AL,#0
L2:    
	.line	7
        SUBB      SP,#1                 ; |20| 
        LRETR
        ; return occurs
	.endfunc	21,000000000h,1


	.sect	".text"
	.global	_vi2cmCmd
	.sym	_vi2cmCmd,_vi2cmCmd, 32, 2, 0
	.func	23
;----------------------------------------------------------------------
;  23 | void vi2cmCmd(VI2CM_IO *i2c, I2C_COMMAND cmd)                          
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _vi2cmCmd                     FR SIZE:   2           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  2 Auto,  0 SOE     *
;***************************************************************

_vi2cmCmd:
	.line	2
;* AR4   assigned to _i2c
	.sym	_i2c,10, 24, 17, 16, $$fake0
;* AL    assigned to _cmd
	.sym	_cmd,0, 10, 17, 16, $$fake1
	.sym	_i2c,-1, 24, 1, 16, $$fake0
	.sym	_cmd,-2, 10, 1, 16, $$fake1
        ADDB      SP,#2
        MOV       *-SP[1],AR4           ; |24| 
        MOV       *-SP[2],AL            ; |24| 
	.line	3
;----------------------------------------------------------------------
;  25 | i2c->taskIndex=(0xff&cmd);                                             
;----------------------------------------------------------------------
        MOVZ      AR6,*-SP[1]           ; |25| 
        ANDB      AL,#0xff              ; |25| 
        MOV       *+XAR6[0],AL          ; |25| 
	.line	5
;----------------------------------------------------------------------
;  27 | if( cmd & 0xff00 )                                                     
;----------------------------------------------------------------------
        AND       AL,*-SP[2],#0xff00    ; |27| 
        BF        L3,EQ                 ; |27| 
        ; branch occurs ; |27| 
	.line	6
;----------------------------------------------------------------------
;  28 | i2c->I2CCSR |=I2C_ACKDT;                /* Issue ACK HI */             
;  29 | else                                                                   
;----------------------------------------------------------------------
        MOVZ      AR6,*-SP[1]           ; |28| 
        OR        *+XAR6[1],#0x0002     ; |28| 
        B         L4,UNC                ; |28| 
        ; branch occurs ; |28| 
L3:    
	.line	8
;----------------------------------------------------------------------
;  30 | i2c->I2CCSR &= (~I2C_ACKDT);            /* Issue ACK LO */             
;----------------------------------------------------------------------
        MOVZ      AR6,*-SP[1]           ; |30| 
        AND       *+XAR6[1],#0xfffd     ; |30| 
L4:    
	.line	9
        SUBB      SP,#2
        LRETR
        ; return occurs
	.endfunc	31,000000000h,2


	.sect	".text"
	.global	_vi2cmReadAck
	.sym	_vi2cmReadAck,_vi2cmReadAck, 46, 2, 0
	.func	34
;----------------------------------------------------------------------
;  34 | unsigned int vi2cmReadAck(VI2CM_IO *i2c)                               
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _vi2cmReadAck                 FR SIZE:   1           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  1 Auto,  0 SOE     *
;***************************************************************

_vi2cmReadAck:
	.line	2
;* AR4   assigned to _i2c
	.sym	_i2c,10, 24, 17, 16, $$fake0
	.sym	_i2c,-1, 24, 1, 16, $$fake0
        ADDB      SP,#1
        MOV       *-SP[1],AR4           ; |35| 
	.line	3
;----------------------------------------------------------------------
;  36 | return( i2c->I2CCSR & I2C_ACKSTAT );                                   
;----------------------------------------------------------------------
        MOVZ      AR6,*-SP[1]           ; |36| 
        AND       AL,*+XAR6[1],#0x0001  ; |36| 
	.line	4
        SUBB      SP,#1                 ; |36| 
        LRETR
        ; return occurs
	.endfunc	37,000000000h,1



;***************************************************************
;* TYPE INFORMATION                                            *
;***************************************************************
	.stag	$$fake0, 128
	.member	_taskIndex, 0, 14, 8, 16
	.member	_I2CCSR, 16, 14, 8, 16
	.member	_I2CDAT, 32, 14, 8, 16
	.member	_bitCntr, 48, 14, 8, 16
	.member	_init, 64, 144, 8, 22
	.member	_tick, 96, 144, 8, 22
	.eos
	.sym	_VI2CM_IO, 0, 8, 13, 128,$$fake0
	.etag	$$fake1, 16
	.member	_I2C_ISSUE_START, 2, 4, 16, 16
	.member	_I2C_ISSUE_RPTSTART, 16, 4, 16, 16
	.member	_I2C_ISSUE_STOP, 10, 4, 16, 16
	.member	_I2C_ISSUE_ACKHI, 534, 4, 16, 16
	.member	_I2C_ISSUE_ACKLO, 22, 4, 16, 16
	.member	_I2C_TXMIT_ENABLE, 34, 4, 16, 16
	.member	_I2C_RECV_ENABLE, 28, 4, 16, 16
	.eos
	.sym	_I2C_COMMAND, 0, 10, 13, 16,$$fake1

⌨️ 快捷键说明

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