testuart232_ce1.asm

来自「这是DM642的R232串口通信程序」· 汇编 代码 · 共 331 行

ASM
331
字号
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                    PC Version 4.32 *
;* Date/Time created: Wed May 20 16:51:53 2009                                *
;******************************************************************************

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64xx                                          *
;*   Optimization      : Disabled                                             *
;*   Optimizing for    : Compile time, Ease of Development                    *
;*                       Based on options: no -o, no -ms                      *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Memory Model      : Small                                                *
;*   Calls to RTS      : Near                                                 *
;*   Pipelining        : Disabled                                             *
;*   Memory Aliases    : Presume are aliases (pessimistic)                    *
;*   Debug Info        : COFF Debug                                           *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss

	.file	"testuart232_CE1.c"
	.global	_buffer
	.bss	_buffer,4,4
	.sym	_buffer,_buffer, 18, 2, 32

	.sect	".cinit:c"
	.align	8
	.field  	(CIR - $) - 8, 32
	.field  	_sleepCount+0,32
	.field  	0,32			; _sleepCount @ 0

	.sect	".text"
	.global	_sleepCount
_sleepCount:	.usect	".bss:c",4,4
	.sym	_sleepCount,_sleepCount, 14, 2, 32

	.sect	".cinit"
	.align	8
	.field  	IR_1,32
	.field  	_$T0$1+0,32
	.field  	0,32			; _$T0$1._regs[0] @ 0
	.field  	87,32			; _$T0$1._regs[1] @ 32
	.field  	3,32			; _$T0$1._regs[2] @ 64
	.field  	0,32			; _$T0$1._regs[3] @ 96
IR_1:	.set	16

	.sect	".text"
	.bss	_$T0$1,16,4
	.sym	_$T0,_$T0$1, 8, 3, 128, _DM643_UART_Config
;	c:\ti\c6000\cgtools\bin\acp6x.exe -@C:\DOCUME~1\chenlei\LOCALS~1\Temp\TI2148_4 

	.sect	".text"
	.global	_sleepIsr
	.sym	_sleepIsr,_sleepIsr, 32, 2, 0
	.func	31

;******************************************************************************
;* FUNCTION NAME: _sleepIsr                                                   *
;*                                                                            *
;*   Regs Modified     : B4                                                   *
;*   Regs Used         : B3,B4,DP                                             *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_sleepIsr:
;** --------------------------------------------------------------------------*
	.line	2
	.line	3
           LDW     .D2T2   *+DP(_sleepCount),B4 ; |33| 
           NOP             4
           ADD     .D2     1,B4,B4           ; |33| 
           STW     .D2T2   B4,*+DP(_sleepCount) ; |33| 
           NOP             2
	.line	4
           RETNOP  .S2     B3,5              ; |34| 
           ; BRANCH OCCURS                   ; |34| 
	.endfunc	34,000000000h,0



	.sect	".text"
	.global	_main
	.sym	_main,_main, 36, 2, 0
	.func	47

;******************************************************************************
;* FUNCTION NAME: _main                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24, *
;*                           A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;*                           B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24, *
;*                           A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;*                           B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31      *
;*   Local Frame Size  : 8 Args + 0 Auto + 4 Save = 12 byte                   *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
	.line	2
           STW     .D2T2   B3,*SP--(16)      ; |48| 
           NOP             2
	.line	4
           CALL    .S1     _DM643_init       ; |50| 
           ADDKPC  .S2     RL0,B3,4          ; |50| 
RL0:       ; CALL OCCURS                     ; |50| 
	.line	7
           CALL    .S1     _UART_PC          ; |53| 
           ADDKPC  .S2     RL1,B3,4          ; |53| 
RL1:       ; CALL OCCURS                     ; |53| 
	.line	10
           CALL    .S1     _printf           ; |56| 
           MVKL    .S2     SL1+0,B4          ; |56| 
           MVKH    .S2     SL1+0,B4          ; |56| 
           STW     .D2T2   B4,*+SP(4)        ; |56| 
           ADDKPC  .S2     RL2,B3,1          ; |56| 
RL2:       ; CALL OCCURS                     ; |56| 
	.line	13
           MVKL    .S1     _IRQ_globalDisable,A3 ; |59| 
           MVKH    .S1     _IRQ_globalDisable,A3 ; |59| 
           NOP             1
           CALL    .S2X    A3                ; |59| 
           ADDKPC  .S2     RL3,B3,4          ; |59| 
RL3:       ; CALL OCCURS                     ; |59| 
	.line	16
 .long 0x10000000
           ZERO    .D1     A4                ; |62| 
	.line	17
           LDW     .D2T2   *++SP(16),B3      ; |63| 
           NOP             4
           RETNOP  .S2     B3,5              ; |63| 
           ; BRANCH OCCURS                   ; |63| 
	.endfunc	63,000080000h,16



	.sect	".text"
	.global	_UART_PC
	.sym	_UART_PC,_UART_PC, 32, 2, 0
	.func	67

;******************************************************************************
;* FUNCTION NAME: _UART_PC                                                    *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24, *
;*                           A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;*                           B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,DP,SP,A16,A17,A18,A19,A20,A21,A22,A23,  *
;*                           A24,A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19, *
;*                           B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31  *
;*   Local Frame Size  : 0 Args + 1036 Auto + 4 Save = 1040 byte              *
;******************************************************************************
_UART_PC:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_baudrate,4, 4, 1, 32
	.sym	_delaytime,8, 4, 1, 32
	.sym	_i,12, 4, 1, 32
	.sym	_hUart,16, 3, 1, 16
	.sym	_temp,18, 3, 1, 16
	.sym	_buffer0,24, 50, 1, 8000,, 1000
	.sym	_uartcfg,1024, 8, 1, 128, _DM643_UART_Config
           ADDK    .S2     -1040,SP          ; |68| 
           STW     .D2T2   B3,*+SP(1040)     ; |68| 
           NOP             2
	.line	9
           MVK     .S1     (_$T0$1-$bss),A3  ; |75| 
           ADD     .D1X    DP,A3,A3          ; |75| 
           LDNDW   .D1T1   *A3,A7:A6         ; |75| 
           LDNDW   .D1T1   *+A3(8),A5:A4     ; |75| 
           NOP             1
           MVK     .S1     1024,A3           ; |75| 
           ADD     .D1X    A3,SP,A3          ; |75| 
           STNDW   .D1T1   A7:A6,*A3         ; |75| 
           STNDW   .D1T1   A5:A4,*+A3(8)     ; |75| 
           NOP             2
	.line	17
           MVK     .D1     1,A3              ; |83| 
           STW     .D2T1   A3,*+SP(8)        ; |83| 
           NOP             2
	.line	20
           MVKL    .S2     0x9600,B4         ; |86| 
           MVKH    .S2     0x9600,B4         ; |86| 
           STW     .D2T2   B4,*+SP(4)        ; |86| 
           NOP             2
	.line	23
           CALL    .S1     _DM643_UART_open  ; |89| 
           LDH     .D2T2   *+SP(4),B4        ; |89| 
           MVK     .S1     1024,A3           ; |89| 
           ADDKPC  .S2     RL4,B3,0          ; |89| 
           ADD     .D1X    A3,SP,A6          ; |89| 
           ZERO    .S1     A4                ; |89| 
RL4:       ; CALL OCCURS                     ; |89| 
           STH     .D2T1   A4,*+SP(16)       ; |89| 
           NOP             2
	.line	26
           CALL    .S1     _malloc           ; |92| 
           ADDKPC  .S2     RL5,B3,3          ; |92| 
           MVK     .S1     0x800,A4          ; |92| 
RL5:       ; CALL OCCURS                     ; |92| 
           STW     .D2T1   A4,*+DP(_buffer)  ; |92| 
           NOP             2
	.line	29
           CALL    .S1     _DM643_UART_setParameter ; |95| 
           LDH     .D2T1   *+SP(16),A4       ; |95| 
           MVK     .S2     0x2580,B4         ; |95| 
           ADDKPC  .S2     RL6,B3,0          ; |95| 
           ZERO    .D1     A6                ; |95| 

           MVK     .S1     0x1,A8            ; |95| 
||         MVK     .D2     0x8,B6            ; |95| 
||         ZERO    .L2     B5                ; |95| 

RL6:       ; CALL OCCURS                     ; |95| 
	.line	33

           ZERO    .D2     B4                ; |99| 
||         MVK     .S2     6000,B5           ; |99| 

           CMPLT   .L2     B4,B5,B0          ; |99| 
   [!B0]   BNOP    .S1     L2,4              ; |99| 
           STW     .D2T2   B4,*+SP(12)       ; |99| 
           ; BRANCH OCCURS                   ; |99| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L1:    
	.line	35

           LDB     .D2T2   *+SP(12),B4       ; |101| 
||         MV      .D1X    B4,A3

           NOP             3
           ADD     .D1X    A3,SP,A3          ; |101| 
           STB     .D1T2   B4,*+A3(24)       ; |101| 
           NOP             2
	.line	36
           LDW     .D2T2   *+SP(12),B4       ; |102| 
           NOP             4
           ADD     .D2     1,B4,B4           ; |102| 
           CMPLT   .L2     B4,B5,B0          ; |102| 
   [ B0]   BNOP    .S1     L1,4              ; |102| 
           STW     .D2T2   B4,*+SP(12)       ; |102| 
           ; BRANCH OCCURS                   ; |102| 
;** --------------------------------------------------------------------------*
L2:    
	.line	37
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L3:    
	.line	42

           CALL    .S1     _DM643_UART_getChar ; |108| 
||         LDH     .D2T1   *+SP(16),A4       ; |108| 

           LDW     .D2T1   *+DP(_buffer),A6  ; |108| 
           MVK     .S2     0x3e8,B4          ; |108| 
           ADDKPC  .S2     RL7,B3,2          ; |108| 
RL7:       ; CALL OCCURS                     ; |108| 
           STH     .D2T1   A4,*+SP(18)       ; |108| 
           NOP             2
	.line	47
           CALL    .S1     _DM643_UART_putChar ; |113| 
           LDH     .D2T1   *+SP(16),A4       ; |113| 
           ADD     .D2     SP,24,B5          ; |113| 
           MVK     .S2     0x100,B4          ; |113| 
           ADDKPC  .S2     RL8,B3,0          ; |113| 
           MV      .D1X    B5,A6             ; |113| 
RL8:       ; CALL OCCURS                     ; |113| 
	.line	50
           CALL    .S1     _DM643_waitusec   ; |116| 
           ADDKPC  .S2     RL9,B3,3          ; |116| 
           MVK     .S1     0x3e8,A4          ; |116| 
RL9:       ; CALL OCCURS                     ; |116| 
	.line	52
           BNOP    .S1     L3,5              ; |118| 
           ; BRANCH OCCURS                   ; |118| 
;** --------------------------------------------------------------------------*
	.endfunc	120,000080000h,1040


;******************************************************************************
;* MARK THE END OF THE SCALAR INIT RECORD IN CINIT:C                          *
;******************************************************************************

CIR:	.sect	".cinit:c"
;******************************************************************************
;* STRINGS                                                                    *
;******************************************************************************
	.sect	".const"
SL1:	.string	10,"*** All tests PASS ***",10,0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_printf
	.global	_IRQ_globalDisable
	.global	_DM643_init
	.global	_DM643_waitusec
	.global	_DM643_UART_open
	.global	_DM643_UART_getChar
	.global	_DM643_UART_putChar
	.global	_DM643_UART_setParameter
	.global	_malloc

;******************************************************************************
;* TYPE INFORMATION                                                           *
;******************************************************************************
	.sym	_Int16, 0, 3, 13, 16
	.sym	_DM643_UART_Handle, 0, 3, 13, 16
	.sym	_Int32, 0, 4, 13, 32
	.sym	_Uint32, 0, 14, 13, 32
	.sym	_Uint32, 0, 14, 13, 32
	.stag	_DM643_UART_Config, 128
	.member	_regs, 0, 52, 8, 128, , 4
	.eos
	.sym	_DM643_UART_Config, 0, 8, 13, 128,_DM643_UART_Config
	.sym	_DM643_UART_Config, 0, 8, 13, 128,_DM643_UART_Config
	.sym	_Int8, 0, 2, 13, 8

⌨️ 快捷键说明

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