printf_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:18 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("printf_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  	2,32
	.field  	_uart_in_use+0,32
	.field  	0,16			; _uart_in_use @ 0


DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("read"), DW_AT_symbol_name("_read")
	.dwattr DW$1, DW_AT_type(*DW$T$10)
	.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$10)
DW$3	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$29)
DW$4	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$11)
	.dwendtag DW$1


DW$5	.dwtag  DW_TAG_subprogram, DW_AT_name("setvbuf"), DW_AT_symbol_name("_setvbuf")
	.dwattr DW$5, DW_AT_type(*DW$T$10)
	.dwattr DW$5, DW_AT_declaration(0x01)
	.dwattr DW$5, DW_AT_external(0x01)
DW$6	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$68)
DW$7	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$29)
DW$8	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
DW$9	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$69)
	.dwendtag DW$5


DW$10	.dwtag  DW_TAG_subprogram, DW_AT_name("fflush"), DW_AT_symbol_name("_fflush")
	.dwattr DW$10, DW_AT_type(*DW$T$10)
	.dwattr DW$10, DW_AT_declaration(0x01)
	.dwattr DW$10, DW_AT_external(0x01)
DW$11	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$68)
	.dwendtag DW$10


DW$12	.dwtag  DW_TAG_subprogram, DW_AT_name("printf"), DW_AT_symbol_name("_printf")
	.dwattr DW$12, DW_AT_type(*DW$T$10)
	.dwattr DW$12, DW_AT_declaration(0x01)
	.dwattr DW$12, DW_AT_external(0x01)
DW$13	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$24)
DW$14	.dwtag  DW_TAG_unspecified_parameters
	.dwendtag DW$12


DW$15	.dwtag  DW_TAG_subprogram, DW_AT_name("scanf"), DW_AT_symbol_name("_scanf")
	.dwattr DW$15, DW_AT_type(*DW$T$10)
	.dwattr DW$15, DW_AT_declaration(0x01)
	.dwattr DW$15, DW_AT_external(0x01)
DW$16	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$24)
DW$17	.dwtag  DW_TAG_unspecified_parameters
	.dwendtag DW$15


DW$18	.dwtag  DW_TAG_subprogram, DW_AT_name("getchar"), DW_AT_symbol_name("_getchar")
	.dwattr DW$18, DW_AT_type(*DW$T$10)
	.dwattr DW$18, DW_AT_declaration(0x01)
	.dwattr DW$18, DW_AT_external(0x01)

DW$19	.dwtag  DW_TAG_subprogram, DW_AT_name("CONFIG_SetModePin"), DW_AT_symbol_name("_CONFIG_SetModePin")
	.dwattr DW$19, DW_AT_declaration(0x01)
	.dwattr DW$19, DW_AT_external(0x01)
DW$20	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$42)
DW$21	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$42)
	.dwendtag DW$19


DW$22	.dwtag  DW_TAG_subprogram, DW_AT_name("ULPD_SoftReqEnable"), DW_AT_symbol_name("_ULPD_SoftReqEnable")
	.dwattr DW$22, DW_AT_declaration(0x01)
	.dwattr DW$22, DW_AT_external(0x01)
DW$23	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$46)
	.dwendtag DW$22


DW$24	.dwtag  DW_TAG_subprogram, DW_AT_name("ULPD_SoftReqDisable"), DW_AT_symbol_name("_ULPD_SoftReqDisable")
	.dwattr DW$24, DW_AT_declaration(0x01)
	.dwattr DW$24, DW_AT_external(0x01)
DW$25	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$46)
	.dwendtag DW$24


DW$26	.dwtag  DW_TAG_subprogram, DW_AT_name("SSW_Grab"), DW_AT_symbol_name("_SSW_Grab")
	.dwattr DW$26, DW_AT_type(*DW$T$64)
	.dwattr DW$26, DW_AT_declaration(0x01)
	.dwattr DW$26, DW_AT_external(0x01)
DW$27	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$50)
	.dwendtag DW$26


DW$28	.dwtag  DW_TAG_subprogram, DW_AT_name("SSW_Release"), DW_AT_symbol_name("_SSW_Release")
	.dwattr DW$28, DW_AT_declaration(0x01)
	.dwattr DW$28, DW_AT_external(0x01)
DW$29	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$50)
	.dwendtag DW$28


DW$30	.dwtag  DW_TAG_subprogram, DW_AT_name("FPGA_EnableUART1"), DW_AT_symbol_name("_FPGA_EnableUART1")
	.dwattr DW$30, DW_AT_declaration(0x01)
	.dwattr DW$30, DW_AT_external(0x01)
DW$31	.dwtag  DW_TAG_variable, DW_AT_name("_ftable"), DW_AT_symbol_name("__ftable")
	.dwattr DW$31, DW_AT_type(*DW$T$107)
	.dwattr DW$31, DW_AT_declaration(0x01)
	.dwattr DW$31, DW_AT_external(0x01)
	.global	_uart_in_use
	.bss	_uart_in_use,2,2
DW$32	.dwtag  DW_TAG_variable, DW_AT_name("uart_in_use"), DW_AT_symbol_name("_uart_in_use")
	.dwattr DW$32, DW_AT_location[DW_OP_addr _uart_in_use]
	.dwattr DW$32, DW_AT_type(*DW$T$64)
	.dwattr DW$32, DW_AT_external(0x01)
	.global	_devUART
	.sect	".const"
	.align	4
_devUART:
	.field  	85,8			; _devUART[0]._name[0] @ 0
	.field  	65,8			; _devUART[0]._name[1] @ 8
	.field  	82,8			; _devUART[0]._name[2] @ 16
	.field  	84,8			; _devUART[0]._name[3] @ 24
	.field  	49,8			; _devUART[0]._name[4] @ 32
	.field  	0,8			; _devUART[0]._name[5] @ 40
	.space	4
	.field  	0,16			; _devUART[0]._flags @ 80
	.field  	_UART1open,32		; _devUART[0]._OPEN @ 96
	.field  	_UART1close,32		; _devUART[0]._CLOSE @ 128
	.field  	_UART1read,32		; _devUART[0]._READ @ 160
	.field  	_UART1write,32		; _devUART[0]._WRITE @ 192
	.field  	_UARTseek,32		; _devUART[0]._LSEEK @ 224
	.field  	_UARTunlink,32		; _devUART[0]._UNLINK @ 256
	.field  	_UARTrename,32		; _devUART[0]._RENAME @ 288
	.field  	85,8			; _devUART[1]._name[0] @ 320
	.field  	65,8			; _devUART[1]._name[1] @ 328
	.field  	82,8			; _devUART[1]._name[2] @ 336
	.field  	84,8			; _devUART[1]._name[3] @ 344
	.field  	50,8			; _devUART[1]._name[4] @ 352
	.field  	0,8			; _devUART[1]._name[5] @ 360
	.space	4
	.field  	0,16			; _devUART[1]._flags @ 400
	.field  	_UART2open,32		; _devUART[1]._OPEN @ 416
	.field  	_UART2close,32		; _devUART[1]._CLOSE @ 448
	.field  	_UART2read,32		; _devUART[1]._READ @ 480
	.field  	_UART2write,32		; _devUART[1]._WRITE @ 512
	.field  	_UARTseek,32		; _devUART[1]._LSEEK @ 544
	.field  	_UARTunlink,32		; _devUART[1]._UNLINK @ 576
	.field  	_UARTrename,32		; _devUART[1]._RENAME @ 608
	.field  	85,8			; _devUART[2]._name[0] @ 640
	.field  	65,8			; _devUART[2]._name[1] @ 648
	.field  	82,8			; _devUART[2]._name[2] @ 656
	.field  	84,8			; _devUART[2]._name[3] @ 664
	.field  	51,8			; _devUART[2]._name[4] @ 672
	.field  	0,8			; _devUART[2]._name[5] @ 680
	.space	4
	.field  	0,16			; _devUART[2]._flags @ 720
	.field  	_UART3open,32		; _devUART[2]._OPEN @ 736
	.field  	_UART3close,32		; _devUART[2]._CLOSE @ 768
	.field  	_UART3read,32		; _devUART[2]._READ @ 800
	.field  	_UART3write,32		; _devUART[2]._WRITE @ 832
	.field  	_UARTseek,32		; _devUART[2]._LSEEK @ 864
	.field  	_UARTunlink,32		; _devUART[2]._UNLINK @ 896
	.field  	_UARTrename,32		; _devUART[2]._RENAME @ 928

DW$33	.dwtag  DW_TAG_variable, DW_AT_name("devUART"), DW_AT_symbol_name("_devUART")
	.dwattr DW$33, DW_AT_location[DW_OP_addr _devUART]
	.dwattr DW$33, DW_AT_type(*DW$T$108)
	.dwattr DW$33, DW_AT_external(0x01)
DW$34	.dwtag  DW_TAG_variable, DW_AT_name("UartSerialType"), DW_AT_symbol_name("_UartSerialType")
	.dwattr DW$34, DW_AT_type(*DW$T$112)
	.dwattr DW$34, DW_AT_declaration(0x01)
	.dwattr DW$34, DW_AT_external(0x01)
;	C:\CCStudio_v3.3\tms470\cgtools\bin\acp470.exe -@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI24012 
	.sect	".text"
	.align	4
	.clink
	.armfunc _UART_reset
	.state32
	.global	_UART_reset

DW$35	.dwtag  DW_TAG_subprogram, DW_AT_name("UART_reset"), DW_AT_symbol_name("_UART_reset")
	.dwattr DW$35, DW_AT_low_pc(_UART_reset)
	.dwattr DW$35, DW_AT_high_pc(0x00)
	.dwattr DW$35, DW_AT_begin_file("printf_a9.c")
	.dwattr DW$35, DW_AT_begin_line(0x20)
	.dwattr DW$35, DW_AT_begin_column(0x06)
	.dwpsn	"printf_a9.c",36,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: UART_reset                                                 *
;*                                                                           *
;*   Regs Modified     : A1,V9,SP,SR                                         *
;*   Regs Used         : A1,V9,SP,SR                                         *
;*   Local Frame Size  : 0 Args + 4 Auto + 0 Save = 4 byte                   *
;*****************************************************************************
_UART_reset:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        SUB       SP, SP, #4
	.dwcfa	0x0e, 4
;* A1    assigned to _inBaseAddress
DW$36	.dwtag  DW_TAG_formal_parameter, DW_AT_name("inBaseAddress"), DW_AT_symbol_name("_inBaseAddress")
	.dwattr DW$36, DW_AT_type(*DW$T$3)
	.dwattr DW$36, DW_AT_location[DW_OP_reg0]
DW$37	.dwtag  DW_TAG_variable, DW_AT_name("inBaseAddress"), DW_AT_symbol_name("_inBaseAddress")
	.dwattr DW$37, DW_AT_type(*DW$T$3)
	.dwattr DW$37, DW_AT_location[DW_OP_breg13 0]
        STR       A1, [SP, #0]          ; |36| 
	.dwpsn	"printf_a9.c",37,3
        LDR       V9, [SP, #0]          ; |37| 
        LDRB      A1, [V9, #84]         ; |37| 
        ORR       A1, A1, #2            ; |37| 
        STRB      A1, [V9, #84]         ; |37| 
	.dwpsn	"printf_a9.c",38,3
;* --------------------------------------------------------------------------*
;*   BEGIN LOOP L1
;*
;*   Loop source line                : 38
;*   Known Minimum Trip Count        : 1
;*   Known Maximum Trip Count        : 4294967295
;*   Known Max Trip Count Factor     : 1
;* --------------------------------------------------------------------------*
L1:    
DW$L$_UART_reset$2$B:
	.dwpsn	"printf_a9.c",38,10
        LDR       V9, [SP, #0]          ; |38| 
        LDRB      V9, [V9, #88]         ; |38| 
        CMP       V9, #1                ; |38| 
        BNE       L1                    ; |38| 
        ; |38| 
DW$L$_UART_reset$2$E:
;* --------------------------------------------------------------------------*
	.dwpsn	"printf_a9.c",41,3
;* --------------------------------------------------------------------------*
;*   BEGIN LOOP L2
;*
;*   Loop source line                : 41
;*   Known Minimum Trip Count        : 1
;*   Known Maximum Trip Count        : 4294967295
;*   Known Max Trip Count Factor     : 1
;* --------------------------------------------------------------------------*
L2:    
DW$L$_UART_reset$4$B:
	.dwpsn	"printf_a9.c",41,10
        LDR       V9, [SP, #0]          ; |41| 
        LDRB      V9, [V9, #32]         ; |41| 
        AND       V9, V9, #7            ; |41| 
        CMP       V9, #7                ; |41| 
        BNE       L2                    ; |41| 
        ; |41| 
DW$L$_UART_reset$4$E:
;* --------------------------------------------------------------------------*
	.dwpsn	"printf_a9.c",43,3
	.dwpsn	"printf_a9.c",44,1
        ADD       SP, SP, #4
	.dwcfa	0x0e, 0
        BX        LR

DW$38	.dwtag  DW_TAG_loop
	.dwattr DW$38, DW_AT_name("D:\src\boston_board_test\ARM\ti\printf_a9.asm:L2:1:1214374338")
	.dwattr DW$38, DW_AT_begin_file("printf_a9.c")
	.dwattr DW$38, DW_AT_begin_line(0x29)
	.dwattr DW$38, DW_AT_end_line(0x29)
DW$39	.dwtag  DW_TAG_loop_range
	.dwattr DW$39, DW_AT_low_pc(DW$L$_UART_reset$4$B)
	.dwattr DW$39, DW_AT_high_pc(DW$L$_UART_reset$4$E)
	.dwendtag DW$38


DW$40	.dwtag  DW_TAG_loop
	.dwattr DW$40, DW_AT_name("D:\src\boston_board_test\ARM\ti\printf_a9.asm:L1:1:1214374338")
	.dwattr DW$40, DW_AT_begin_file("printf_a9.c")
	.dwattr DW$40, DW_AT_begin_line(0x26)
	.dwattr DW$40, DW_AT_end_line(0x26)
DW$41	.dwtag  DW_TAG_loop_range
	.dwattr DW$41, DW_AT_low_pc(DW$L$_UART_reset$2$B)
	.dwattr DW$41, DW_AT_high_pc(DW$L$_UART_reset$2$E)
	.dwendtag DW$40

	.dwattr DW$35, DW_AT_end_file("printf_a9.c")
	.dwattr DW$35, DW_AT_end_line(0x2c)
	.dwattr DW$35, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$35

	.sect	".text"
	.align	4
	.clink
	.armfunc _UART_configure
	.state32
	.global	_UART_configure

DW$42	.dwtag  DW_TAG_subprogram, DW_AT_name("UART_configure"), DW_AT_symbol_name("_UART_configure")
	.dwattr DW$42, DW_AT_low_pc(_UART_configure)
	.dwattr DW$42, DW_AT_high_pc(0x00)
	.dwattr DW$42, DW_AT_begin_file("printf_a9.c")
	.dwattr DW$42, DW_AT_begin_line(0x30)
	.dwattr DW$42, DW_AT_begin_column(0x06)
	.dwpsn	"printf_a9.c",52,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: UART_configure                                             *
;*                                                                           *
;*   Regs Modified     : A1,V9,SP,SR                                         *
;*   Regs Used         : A1,V9,SP,SR                                         *
;*   Local Frame Size  : 0 Args + 4 Auto + 0 Save = 4 byte                   *
;*****************************************************************************
_UART_configure:

⌨️ 快捷键说明

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