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