📄 uart.asm
字号:
;******************************************************************************
;* TMS470 C/C++ Codegen PC v4.1.4 *
;* Date/Time created: Wed Jun 25 17:11:44 2008 *
;******************************************************************************
.compiler_opts --abi=ti_arm9_abi --endian=little --float_support=fpalib --quiet --silicon_version=5e
.state32
DW$CU .dwtag DW_TAG_compile_unit
.dwattr DW$CU, DW_AT_name("UART.c")
.dwattr DW$CU, DW_AT_producer("TMS470 C/C++ Codegen PC v4.1.4 Copyright (c) 1996-2006 Texas Instruments Incorporated")
.dwattr DW$CU, DW_AT_stmt_list(0x00)
.dwattr DW$CU, DW_AT_TI_VERSION(0x01)
;*****************************************************************************
;* CINIT RECORDS *
;*****************************************************************************
.sect ".cinit"
.align 4
.field IR_1,32
.field _UART_Base_Addr+0,32
.field -327680,32 ; _UART_Base_Addr[0] @ 0
.field -325632,32 ; _UART_Base_Addr[1] @ 32
.field -288768,32 ; _UART_Base_Addr[2] @ 64
IR_1: .set 12
.sect ".cinit"
.align 4
.field 4,32
.field _ULPDR_Base_Addr+0,32
.field -323584,32 ; _ULPDR_Base_Addr @ 0
.sect ".cinit"
.align 4
.field 4,32
.field _CLKM13_Base_Addr+0,32
.field -78336,32 ; _CLKM13_Base_Addr @ 0
.sect ".cinit"
.align 4
.field 4,32
.field _CONF_IOMultiplexing_Base_Addr+0,32
.field -126976,32 ; _CONF_IOMultiplexing_Base_Addr @ 0
.sect ".cinit"
.align 4
.field 4,32
.field _OCP_PER_SSW_MPU_CONF_Base_Addr+0,32
.field -276480,32 ; _OCP_PER_SSW_MPU_CONF_Base_Addr @ 0
DW$1 .dwtag DW_TAG_subprogram, DW_AT_name("Pin_Configure"), DW_AT_symbol_name("_Pin_Configure")
.dwattr DW$1, DW_AT_declaration(0x01)
.dwattr DW$1, DW_AT_external(0x01)
DW$2 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$11)
DW$3 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
DW$4 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
.dwendtag DW$1
DW$5 .dwtag DW_TAG_subprogram, DW_AT_name("vsprintf"), DW_AT_symbol_name("_vsprintf")
.dwattr DW$5, DW_AT_type(*DW$T$10)
.dwattr DW$5, DW_AT_declaration(0x01)
.dwattr DW$5, DW_AT_external(0x01)
.bss _UART_Base_Addr,12,4
DW$6 .dwtag DW_TAG_variable, DW_AT_name("UART_Base_Addr"), DW_AT_symbol_name("_UART_Base_Addr")
.dwattr DW$6, DW_AT_type(*DW$T$39)
.dwattr DW$6, DW_AT_location[DW_OP_addr _UART_Base_Addr]
.bss _FIFO_status,4,4
DW$7 .dwtag DW_TAG_variable, DW_AT_name("FIFO_status"), DW_AT_symbol_name("_FIFO_status")
.dwattr DW$7, DW_AT_type(*DW$T$10)
.dwattr DW$7, DW_AT_location[DW_OP_addr _FIFO_status]
.bss _DMA_status,4,4
DW$8 .dwtag DW_TAG_variable, DW_AT_name("DMA_status"), DW_AT_symbol_name("_DMA_status")
.dwattr DW$8, DW_AT_type(*DW$T$10)
.dwattr DW$8, DW_AT_location[DW_OP_addr _DMA_status]
.bss _ULPDR_Base_Addr,4,4
DW$9 .dwtag DW_TAG_variable, DW_AT_name("ULPDR_Base_Addr"), DW_AT_symbol_name("_ULPDR_Base_Addr")
.dwattr DW$9, DW_AT_type(*DW$T$11)
.dwattr DW$9, DW_AT_location[DW_OP_addr _ULPDR_Base_Addr]
.bss _CLKM13_Base_Addr,4,4
DW$10 .dwtag DW_TAG_variable, DW_AT_name("CLKM13_Base_Addr"), DW_AT_symbol_name("_CLKM13_Base_Addr")
.dwattr DW$10, DW_AT_type(*DW$T$11)
.dwattr DW$10, DW_AT_location[DW_OP_addr _CLKM13_Base_Addr]
.bss _CONF_IOMultiplexing_Base_Addr,4,4
DW$11 .dwtag DW_TAG_variable, DW_AT_name("CONF_IOMultiplexing_Base_Addr"), DW_AT_symbol_name("_CONF_IOMultiplexing_Base_Addr")
.dwattr DW$11, DW_AT_type(*DW$T$11)
.dwattr DW$11, DW_AT_location[DW_OP_addr _CONF_IOMultiplexing_Base_Addr]
.bss _OCP_PER_SSW_MPU_CONF_Base_Addr,4,4
DW$12 .dwtag DW_TAG_variable, DW_AT_name("OCP_PER_SSW_MPU_CONF_Base_Addr"), DW_AT_symbol_name("_OCP_PER_SSW_MPU_CONF_Base_Addr")
.dwattr DW$12, DW_AT_type(*DW$T$11)
.dwattr DW$12, DW_AT_location[DW_OP_addr _OCP_PER_SSW_MPU_CONF_Base_Addr]
.bss _data$1,256,4
; C:\CCStudio_v3.3\tms470\cgtools\bin\acp470.exe -@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI66412
.sect ".text"
.align 4
.clink
.armfunc _UART_Initialize
.state32
.global _UART_Initialize
DW$13 .dwtag DW_TAG_subprogram, DW_AT_name("UART_Initialize"), DW_AT_symbol_name("_UART_Initialize")
.dwattr DW$13, DW_AT_low_pc(_UART_Initialize)
.dwattr DW$13, DW_AT_high_pc(0x00)
.dwattr DW$13, DW_AT_begin_file("UART.c")
.dwattr DW$13, DW_AT_begin_line(0x16)
.dwattr DW$13, DW_AT_begin_column(0x06)
.dwpsn "UART.c",23,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: UART_Initialize *
;* *
;* Regs Modified : A1,A2,A3,A4,V9,SP,LR,SR *
;* Regs Used : A1,A2,A3,A4,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 4 Auto + 4 Save = 8 byte *
;*****************************************************************************
_UART_Initialize:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {A4, LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 8
.dwcfa 0x80, 3, 2
.dwcfa 0x0e, 8
;* A1 assigned to _dev_num
DW$14 .dwtag DW_TAG_formal_parameter, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
.dwattr DW$14, DW_AT_type(*DW$T$10)
.dwattr DW$14, DW_AT_location[DW_OP_reg0]
DW$15 .dwtag DW_TAG_variable, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
.dwattr DW$15, DW_AT_type(*DW$T$10)
.dwattr DW$15, DW_AT_location[DW_OP_breg13 0]
STR A1, [SP, #0] ; |23|
.dwpsn "UART.c",24,1
LDR A1, [SP, #0] ; |24|
BL _UART_IOMultiplex ; |24|
; |24|
.dwpsn "UART.c",25,1
LDR A1, [SP, #0] ; |25|
BL _UART_Open ; |25|
; |25|
.dwpsn "UART.c",26,1
LDR A1, [SP, #0] ; |26|
BL _UART_Configure ; |26|
; |26|
.dwpsn "UART.c",27,1
.dwcfa 0x0e, 8
LDMFD SP!, {A4, PC}
.dwattr DW$13, DW_AT_end_file("UART.c")
.dwattr DW$13, DW_AT_end_line(0x1b)
.dwattr DW$13, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$13
.sect ".text"
.align 4
.clink
.armfunc _UART_IOMultiplex
.state32
.global _UART_IOMultiplex
DW$16 .dwtag DW_TAG_subprogram, DW_AT_name("UART_IOMultiplex"), DW_AT_symbol_name("_UART_IOMultiplex")
.dwattr DW$16, DW_AT_low_pc(_UART_IOMultiplex)
.dwattr DW$16, DW_AT_high_pc(0x00)
.dwattr DW$16, DW_AT_begin_file("UART.c")
.dwattr DW$16, DW_AT_begin_line(0x20)
.dwattr DW$16, DW_AT_begin_column(0x06)
.dwpsn "UART.c",33,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: UART_IOMultiplex *
;* *
;* Regs Modified : A1,A2,A3,A4,V9,SP,LR,SR *
;* Regs Used : A1,A2,A3,A4,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 4 Auto + 4 Save = 8 byte *
;*****************************************************************************
_UART_IOMultiplex:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {A4, LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 8
.dwcfa 0x80, 3, 2
.dwcfa 0x0e, 8
;* A1 assigned to _dev_num
DW$17 .dwtag DW_TAG_formal_parameter, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
.dwattr DW$17, DW_AT_type(*DW$T$10)
.dwattr DW$17, DW_AT_location[DW_OP_reg0]
DW$18 .dwtag DW_TAG_variable, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
.dwattr DW$18, DW_AT_type(*DW$T$10)
.dwattr DW$18, DW_AT_location[DW_OP_breg13 0]
STR A1, [SP, #0] ; |33|
.dwpsn "UART.c",34,1
B L3 ; |34|
; |34|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L1:
.dwpsn "UART.c",39,5
LDR V9, CON1 ; |39|
MOV A3, #0 ; |39|
LDR V9, [V9, #0] ; |39|
MOV A2, #1 ; |39|
ADD A1, V9, #632 ; |39|
BL _Pin_Configure ; |39|
; |39|
.dwpsn "UART.c",40,2
LDR V9, CON1 ; |40|
LDR V9, [V9, #0] ; |40|
MOV A3, #0 ; |40|
MOV A2, #1 ; |40|
ADD A1, V9, #636 ; |40|
BL _Pin_Configure ; |40|
; |40|
.dwpsn "UART.c",41,7
B L4 ; |41|
; |41|
;* --------------------------------------------------------------------------*
L2:
.dwpsn "UART.c",49,5
LDR V9, CON1 ; |49|
MOV A3, #0 ; |49|
LDR V9, [V9, #0] ; |49|
MOV A2, #1 ; |49|
ADD A1, V9, #800 ; |49|
BL _Pin_Configure ; |49|
; |49|
.dwpsn "UART.c",50,2
LDR V9, CON1 ; |50|
LDR V9, [V9, #0] ; |50|
MOV A3, #0 ; |50|
MOV A2, #1 ; |50|
ADD A1, V9, #804 ; |50|
BL _Pin_Configure ; |50|
; |50|
.dwpsn "UART.c",51,2
LDR V9, CON1 ; |51|
LDR V9, [V9, #0] ; |51|
MOV A3, #0 ; |51|
MOV A2, #1 ; |51|
ADD A1, V9, #812 ; |51|
BL _Pin_Configure ; |51|
; |51|
.dwpsn "UART.c",52,2
LDR V9, CON1 ; |52|
LDR V9, [V9, #0] ; |52|
MOV A3, #0 ; |52|
MOV A2, #1 ; |52|
ADD A1, V9, #808 ; |52|
BL _Pin_Configure ; |52|
; |52|
.dwpsn "UART.c",54,7
B L4 ; |54|
; |54|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L3:
.dwpsn "UART.c",34,1
LDR V9, [SP, #0] ; |34|
CMP V9, #0 ; |34|
BEQ L4 ; |34|
; |34|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |34|
BEQ L1 ; |34|
; |34|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |34|
BEQ L2 ; |34|
; |34|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L4:
.dwpsn "UART.c",58,1
.dwcfa 0x0e, 8
LDMFD SP!, {A4, PC}
.dwattr DW$16, DW_AT_end_file("UART.c")
.dwattr DW$16, DW_AT_end_line(0x3a)
.dwattr DW$16, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$16
.sect ".text"
.align 4
.clink
.armfunc _UART_Open
.state32
.global _UART_Open
DW$19 .dwtag DW_TAG_subprogram, DW_AT_name("UART_Open"), DW_AT_symbol_name("_UART_Open")
.dwattr DW$19, DW_AT_low_pc(_UART_Open)
.dwattr DW$19, DW_AT_high_pc(0x00)
.dwattr DW$19, DW_AT_begin_file("UART.c")
.dwattr DW$19, DW_AT_begin_line(0x3f)
.dwattr DW$19, DW_AT_begin_column(0x06)
.dwpsn "UART.c",64,1
.dwfde DW$CIE
;*****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -