serial_send_a9.asm
来自「OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI」· 汇编 代码 · 共 1,611 行 · 第 1/5 页
ASM
1,611 行
;******************************************************************************
;* TMS470 C/C++ Codegen PC v4.1.4 *
;* Date/Time created: Wed Jun 25 14:12:19 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("serial_send_a9.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 4,32
.field _uart48Mhz+0,32
.field 0,32 ; _uart48Mhz @ 0
DW$1 .dwtag DW_TAG_subprogram, DW_AT_name("strlen"), DW_AT_symbol_name("_strlen")
.dwattr DW$1, DW_AT_type(*DW$T$242)
.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$244)
.dwendtag DW$1
DW$3 .dwtag DW_TAG_subprogram, DW_AT_name("atoi"), DW_AT_symbol_name("_atoi")
.dwattr DW$3, DW_AT_type(*DW$T$10)
.dwattr DW$3, DW_AT_declaration(0x01)
.dwattr DW$3, DW_AT_external(0x01)
.global _UartSerialType
.bss _UartSerialType,4,4
DW$4 .dwtag DW_TAG_variable, DW_AT_name("UartSerialType"), DW_AT_symbol_name("_UartSerialType")
.dwattr DW$4, DW_AT_location[DW_OP_addr _UartSerialType]
.dwattr DW$4, DW_AT_type(*DW$T$30)
.dwattr DW$4, DW_AT_external(0x01)
.global _uart48Mhz
.bss _uart48Mhz,4,4
DW$5 .dwtag DW_TAG_variable, DW_AT_name("uart48Mhz"), DW_AT_symbol_name("_uart48Mhz")
.dwattr DW$5, DW_AT_location[DW_OP_addr _uart48Mhz]
.dwattr DW$5, DW_AT_type(*DW$T$258)
.dwattr DW$5, DW_AT_external(0x01)
; C:\CCStudio_v3.3\tms470\cgtools\bin\acp470.exe -@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI26812
.sect ".text"
.align 4
.clink
.armfunc _SERI_toupper
.state32
.global _SERI_toupper
DW$6 .dwtag DW_TAG_subprogram, DW_AT_name("SERI_toupper"), DW_AT_symbol_name("_SERI_toupper")
.dwattr DW$6, DW_AT_low_pc(_SERI_toupper)
.dwattr DW$6, DW_AT_high_pc(0x00)
.dwattr DW$6, DW_AT_begin_file("serial_send_a9.c")
.dwattr DW$6, DW_AT_begin_line(0x10)
.dwattr DW$6, DW_AT_begin_column(0x06)
.dwpsn "serial_send_a9.c",17,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: SERI_toupper *
;* *
;* Regs Modified : A1,V9,SP,SR *
;* Regs Used : A1,V9,SP,SR *
;* Local Frame Size : 0 Args + 4 Auto + 0 Save = 4 byte *
;*****************************************************************************
_SERI_toupper:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #4
.dwcfa 0x0e, 4
;* A1 assigned to _car
DW$7 .dwtag DW_TAG_formal_parameter, DW_AT_name("car"), DW_AT_symbol_name("_car")
.dwattr DW$7, DW_AT_type(*DW$T$20)
.dwattr DW$7, DW_AT_location[DW_OP_reg0]
DW$8 .dwtag DW_TAG_variable, DW_AT_name("car"), DW_AT_symbol_name("_car")
.dwattr DW$8, DW_AT_type(*DW$T$20)
.dwattr DW$8, DW_AT_location[DW_OP_breg13 0]
STRB A1, [SP, #0] ; |17|
.dwpsn "serial_send_a9.c",18,1
LDRB V9, [SP, #0] ; |18|
CMP V9, #97 ; |18|
BLT L1 ; |18|
; |18|
;* --------------------------------------------------------------------------*
LDRB V9, [SP, #0] ; |18|
CMP V9, #122 ; |18|
BGT L1 ; |18|
; |18|
;* --------------------------------------------------------------------------*
.dwpsn "serial_send_a9.c",20,2
LDRB V9, [SP, #0] ; |20|
SUB V9, V9, #32 ; |20|
AND A1, V9, #255
B L2 ; |20|
; |20|
;* --------------------------------------------------------------------------*
L1:
.dwpsn "serial_send_a9.c",22,1
LDRB A1, [SP, #0] ; |22|
;* --------------------------------------------------------------------------*
L2:
.dwpsn "serial_send_a9.c",23,1
ADD SP, SP, #4 ; |22|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$6, DW_AT_end_file("serial_send_a9.c")
.dwattr DW$6, DW_AT_end_line(0x17)
.dwattr DW$6, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$6
.sect ".text"
.align 4
.clink
.armfunc _SERI_WaitEmptyTransmit
.state32
.global _SERI_WaitEmptyTransmit
DW$9 .dwtag DW_TAG_subprogram, DW_AT_name("SERI_WaitEmptyTransmit"), DW_AT_symbol_name("_SERI_WaitEmptyTransmit")
.dwattr DW$9, DW_AT_low_pc(_SERI_WaitEmptyTransmit)
.dwattr DW$9, DW_AT_high_pc(0x00)
.dwattr DW$9, DW_AT_begin_file("serial_send_a9.c")
.dwattr DW$9, DW_AT_begin_line(0x19)
.dwattr DW$9, DW_AT_begin_column(0x06)
.dwpsn "serial_send_a9.c",26,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: SERI_WaitEmptyTransmit *
;* *
;* 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 + 0 Auto + 4 Save = 4 byte *
;*****************************************************************************
_SERI_WaitEmptyTransmit:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 4
.dwpsn "serial_send_a9.c",28,2
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L3
;*
;* Loop source line : 28
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L3:
DW$L$_SERI_WaitEmptyTransmit$2$B:
LDR V9, CON1 ; |28|
LDR A1, [V9, #0] ; |28|
BL _UMOD_IsTransmitAndHoldRegNotEmpty ; |28|
; |28|
CMP A1, #0 ; |28|
BNE L3 ; |28|
; |28|
DW$L$_SERI_WaitEmptyTransmit$2$E:
;* --------------------------------------------------------------------------*
.dwpsn "serial_send_a9.c",29,1
.dwcfa 0x0e, 4
LDMFD SP!, {PC}
DW$10 .dwtag DW_TAG_loop
.dwattr DW$10, DW_AT_name("D:\src\boston_board_test\ARM\ti\serial_send_a9.asm:L3:1:1214374339")
.dwattr DW$10, DW_AT_begin_file("serial_send_a9.c")
.dwattr DW$10, DW_AT_begin_line(0x1c)
.dwattr DW$10, DW_AT_end_line(0x1c)
DW$11 .dwtag DW_TAG_loop_range
.dwattr DW$11, DW_AT_low_pc(DW$L$_SERI_WaitEmptyTransmit$2$B)
.dwattr DW$11, DW_AT_high_pc(DW$L$_SERI_WaitEmptyTransmit$2$E)
.dwendtag DW$10
.dwattr DW$9, DW_AT_end_file("serial_send_a9.c")
.dwattr DW$9, DW_AT_end_line(0x1d)
.dwattr DW$9, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$9
.sect ".text"
.align 4
.clink
.armfunc _SERI_Sendchar
.state32
.global _SERI_Sendchar
DW$12 .dwtag DW_TAG_subprogram, DW_AT_name("SERI_Sendchar"), DW_AT_symbol_name("_SERI_Sendchar")
.dwattr DW$12, DW_AT_low_pc(_SERI_Sendchar)
.dwattr DW$12, DW_AT_high_pc(0x00)
.dwattr DW$12, DW_AT_begin_file("serial_send_a9.c")
.dwattr DW$12, DW_AT_begin_line(0x21)
.dwattr DW$12, DW_AT_begin_column(0x06)
.dwpsn "serial_send_a9.c",34,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: SERI_Sendchar *
;* *
;* 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 *
;*****************************************************************************
_SERI_Sendchar:
;* --------------------------------------------------------------------------*
.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 _car
DW$13 .dwtag DW_TAG_formal_parameter, DW_AT_name("car"), DW_AT_symbol_name("_car")
.dwattr DW$13, DW_AT_type(*DW$T$20)
.dwattr DW$13, DW_AT_location[DW_OP_reg0]
DW$14 .dwtag DW_TAG_variable, DW_AT_name("car"), DW_AT_symbol_name("_car")
.dwattr DW$14, DW_AT_type(*DW$T$20)
.dwattr DW$14, DW_AT_location[DW_OP_breg13 0]
STRB A1, [SP, #0] ; |34|
.dwpsn "serial_send_a9.c",36,2
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L4
;*
;* Loop source line : 36
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L4:
DW$L$_SERI_Sendchar$2$B:
LDR V9, CON1 ; |36|
LDR A1, [V9, #0] ; |36|
BL _UMOD_TxFifoIsFull ; |36|
; |36|
CMP A1, #0 ; |36|
BNE L4 ; |36|
; |36|
DW$L$_SERI_Sendchar$2$E:
;* --------------------------------------------------------------------------*
.dwpsn "serial_send_a9.c",37,2
LDR V9, CON1 ; |37|
LDRB A1, [SP, #0] ; |37|
LDR A2, [V9, #0] ; |37|
BL _UMOD_Send ; |37|
; |37|
.dwpsn "serial_send_a9.c",38,1
.dwcfa 0x0e, 8
LDMFD SP!, {A4, PC}
DW$15 .dwtag DW_TAG_loop
.dwattr DW$15, DW_AT_name("D:\src\boston_board_test\ARM\ti\serial_send_a9.asm:L4:1:1214374339")
.dwattr DW$15, DW_AT_begin_file("serial_send_a9.c")
.dwattr DW$15, DW_AT_begin_line(0x24)
.dwattr DW$15, DW_AT_end_line(0x24)
DW$16 .dwtag DW_TAG_loop_range
.dwattr DW$16, DW_AT_low_pc(DW$L$_SERI_Sendchar$2$B)
.dwattr DW$16, DW_AT_high_pc(DW$L$_SERI_Sendchar$2$E)
.dwendtag DW$15
.dwattr DW$12, DW_AT_end_file("serial_send_a9.c")
.dwattr DW$12, DW_AT_end_line(0x26)
.dwattr DW$12, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$12
.sect ".text"
.align 4
.clink
.armfunc _SERI_Keypressed
.state32
.global _SERI_Keypressed
DW$17 .dwtag DW_TAG_subprogram, DW_AT_name("SERI_Keypressed"), DW_AT_symbol_name("_SERI_Keypressed")
.dwattr DW$17, DW_AT_low_pc(_SERI_Keypressed)
.dwattr DW$17, DW_AT_high_pc(0x00)
.dwattr DW$17, DW_AT_begin_file("serial_send_a9.c")
.dwattr DW$17, DW_AT_begin_line(0x2a)
.dwattr DW$17, DW_AT_begin_column(0x06)
.dwpsn "serial_send_a9.c",43,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: SERI_Keypressed *
;* *
;* 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 + 0 Auto + 4 Save = 4 byte *
;*****************************************************************************
_SERI_Keypressed:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 4
.dwpsn "serial_send_a9.c",44,2
LDR V9, CON1 ; |44|
LDR A1, [V9, #0] ; |44|
BL _UMOD_RxFifoIsNotEmpty ; |44|
; |44|
.dwpsn "serial_send_a9.c",45,1
.dwcfa 0x0e, 4
LDMFD SP!, {PC}
.dwattr DW$17, DW_AT_end_file("serial_send_a9.c")
.dwattr DW$17, DW_AT_end_line(0x2d)
.dwattr DW$17, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$17
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?