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