⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash_nor_intel_br28f128l18t85.asm

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.clink
	.armfunc _flash_intel_28f256l18top_display_id_a9
	.state32
	.global	_flash_intel_28f256l18top_display_id_a9

DW$48	.dwtag  DW_TAG_subprogram, DW_AT_name("flash_intel_28f256l18top_display_id_a9"), DW_AT_symbol_name("_flash_intel_28f256l18top_display_id_a9")
	.dwattr DW$48, DW_AT_low_pc(_flash_intel_28f256l18top_display_id_a9)
	.dwattr DW$48, DW_AT_high_pc(0x00)
	.dwattr DW$48, DW_AT_begin_file("flash_NOR_INTEL_BR28F128L18T85.c")
	.dwattr DW$48, DW_AT_begin_line(0x90)
	.dwattr DW$48, DW_AT_begin_column(0x08)
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",145,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: flash_intel_28f256l18top_display_id_a9                     *
;*                                                                           *
;*   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 + 8 Auto + 4 Save = 12 byte                  *
;*****************************************************************************
_flash_intel_28f256l18top_display_id_a9:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        STMFD     SP!, {A3, A4, LR}
	.dwcfa	0x0e, 4
	.dwcfa	0x80, 14, 1
	.dwcfa	0x0e, 8
	.dwcfa	0x80, 3, 2
	.dwcfa	0x0e, 12
	.dwcfa	0x80, 2, 3
	.dwcfa	0x0e, 12
DW$49	.dwtag  DW_TAG_variable, DW_AT_name("ManufactureId"), DW_AT_symbol_name("_ManufactureId")
	.dwattr DW$49, DW_AT_type(*DW$T$28)
	.dwattr DW$49, DW_AT_location[DW_OP_breg13 0]
DW$50	.dwtag  DW_TAG_variable, DW_AT_name("DeviceId"), DW_AT_symbol_name("_DeviceId")
	.dwattr DW$50, DW_AT_type(*DW$T$28)
	.dwattr DW$50, DW_AT_location[DW_OP_breg13 4]
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",151,2
        ADR       A2, SL4               ; |151| 
        MOV       A1, #1                ; |151| 
        BL        _UART_Printf          ; |151| 
        ; |151| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",152,2
        MOV       A1, #234881024        ; |152| 
        ADD       A3, SP, #4            ; |152| 
        MOV       A2, SP                ; |152| 
        BL        _flash_intel_28f256l18top_read_id ; |152| 
        ; |152| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",155,2
        ADR       A2, SL5               ; |155| 
        MOV       A1, #1                ; |155| 
        LDR       A3, [SP, #0]          ; |155| 
        BL        _UART_Printf          ; |155| 
        ; |155| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",161,5
        ADR       A2, SL5               ; |161| 
        MOV       A1, #1                ; |161| 
        LDR       A3, [SP, #4]          ; |161| 
        BL        _UART_Printf          ; |161| 
        ; |161| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",167,5
        MOV       A1, #0                ; |167| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",168,1
	.dwcfa	0x0e, 12
        LDMFD     SP!, {A3, A4, PC}
	.dwattr DW$48, DW_AT_end_file("flash_NOR_INTEL_BR28F128L18T85.c")
	.dwattr DW$48, DW_AT_end_line(0xa8)
	.dwattr DW$48, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$48

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

DW$51	.dwtag  DW_TAG_subprogram, DW_AT_name("Write_FlashRegister"), DW_AT_symbol_name("_Write_FlashRegister")
	.dwattr DW$51, DW_AT_low_pc(_Write_FlashRegister)
	.dwattr DW$51, DW_AT_high_pc(0x00)
	.dwattr DW$51, DW_AT_begin_file("flash_NOR_INTEL_BR28F128L18T85.c")
	.dwattr DW$51, DW_AT_begin_line(0xab)
	.dwattr DW$51, DW_AT_begin_column(0x09)
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",172,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: Write_FlashRegister                                        *
;*                                                                           *
;*   Regs Modified     : A1,V9,SP                                            *
;*   Regs Used         : A1,A2,A3,A4,V9,SP                                   *
;*   Local Frame Size  : 0 Args + 16 Auto + 0 Save = 16 byte                 *
;*****************************************************************************
_Write_FlashRegister:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        SUB       SP, SP, #16
	.dwcfa	0x0e, 16
;* A1    assigned to _Address1
DW$52	.dwtag  DW_TAG_formal_parameter, DW_AT_name("Address1"), DW_AT_symbol_name("_Address1")
	.dwattr DW$52, DW_AT_type(*DW$T$28)
	.dwattr DW$52, DW_AT_location[DW_OP_reg0]
;* A2    assigned to _Data1
DW$53	.dwtag  DW_TAG_formal_parameter, DW_AT_name("Data1"), DW_AT_symbol_name("_Data1")
	.dwattr DW$53, DW_AT_type(*DW$T$32)
	.dwattr DW$53, DW_AT_location[DW_OP_reg1]
;* A3    assigned to _Address2
DW$54	.dwtag  DW_TAG_formal_parameter, DW_AT_name("Address2"), DW_AT_symbol_name("_Address2")
	.dwattr DW$54, DW_AT_type(*DW$T$28)
	.dwattr DW$54, DW_AT_location[DW_OP_reg2]
;* A4    assigned to _Data2
DW$55	.dwtag  DW_TAG_formal_parameter, DW_AT_name("Data2"), DW_AT_symbol_name("_Data2")
	.dwattr DW$55, DW_AT_type(*DW$T$32)
	.dwattr DW$55, DW_AT_location[DW_OP_reg3]
DW$56	.dwtag  DW_TAG_variable, DW_AT_name("Address1"), DW_AT_symbol_name("_Address1")
	.dwattr DW$56, DW_AT_type(*DW$T$28)
	.dwattr DW$56, DW_AT_location[DW_OP_breg13 0]
DW$57	.dwtag  DW_TAG_variable, DW_AT_name("Data1"), DW_AT_symbol_name("_Data1")
	.dwattr DW$57, DW_AT_type(*DW$T$32)
	.dwattr DW$57, DW_AT_location[DW_OP_breg13 4]
DW$58	.dwtag  DW_TAG_variable, DW_AT_name("Address2"), DW_AT_symbol_name("_Address2")
	.dwattr DW$58, DW_AT_type(*DW$T$28)
	.dwattr DW$58, DW_AT_location[DW_OP_breg13 8]
DW$59	.dwtag  DW_TAG_variable, DW_AT_name("Data2"), DW_AT_symbol_name("_Data2")
	.dwattr DW$59, DW_AT_type(*DW$T$32)
	.dwattr DW$59, DW_AT_location[DW_OP_breg13 12]
        STRH      A4, [SP, #12]         ; |172| 
        STR       A3, [SP, #8]          ; |172| 
        STRH      A2, [SP, #4]          ; |172| 
        STR       A1, [SP, #0]          ; |172| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",173,2
        LDRH      V9, [SP, #4]          ; |173| 
        LDR       A1, [SP, #0]          ; |173| 
        STR       V9, [A1, #0]          ; |173| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",174,2
        LDRH      V9, [SP, #12]         ; |174| 
        LDR       A1, [SP, #8]          ; |174| 
        STR       V9, [A1, #0]          ; |174| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",175,2
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",176,1
        ADD       SP, SP, #16
	.dwcfa	0x0e, 0
        BX        LR
	.dwattr DW$51, DW_AT_end_file("flash_NOR_INTEL_BR28F128L18T85.c")
	.dwattr DW$51, DW_AT_end_line(0xb0)
	.dwattr DW$51, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$51

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

DW$60	.dwtag  DW_TAG_subprogram, DW_AT_name("Flash_WriteOneBlock"), DW_AT_symbol_name("_Flash_WriteOneBlock")
	.dwattr DW$60, DW_AT_low_pc(_Flash_WriteOneBlock)
	.dwattr DW$60, DW_AT_high_pc(0x00)
	.dwattr DW$60, DW_AT_begin_file("flash_NOR_INTEL_BR28F128L18T85.c")
	.dwattr DW$60, DW_AT_begin_line(0xba)
	.dwattr DW$60, DW_AT_begin_column(0x0e)
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",187,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: Flash_WriteOneBlock                                        *
;*                                                                           *
;*   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 + 32 Auto + 4 Save = 36 byte                 *
;*****************************************************************************
_Flash_WriteOneBlock:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        STMFD     SP!, {LR}
	.dwcfa	0x0e, 4
	.dwcfa	0x80, 14, 1
        SUB       SP, SP, #32
	.dwcfa	0x0e, 36
;* A1    assigned to _blockAddr
DW$61	.dwtag  DW_TAG_formal_parameter, DW_AT_name("blockAddr"), DW_AT_symbol_name("_blockAddr")
	.dwattr DW$61, DW_AT_type(*DW$T$11)
	.dwattr DW$61, DW_AT_location[DW_OP_reg0]
DW$62	.dwtag  DW_TAG_variable, DW_AT_name("blockAddr"), DW_AT_symbol_name("_blockAddr")
	.dwattr DW$62, DW_AT_type(*DW$T$11)
	.dwattr DW$62, DW_AT_location[DW_OP_breg13 0]
DW$63	.dwtag  DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
	.dwattr DW$63, DW_AT_type(*DW$T$11)
	.dwattr DW$63, DW_AT_location[DW_OP_breg13 4]
DW$64	.dwtag  DW_TAG_variable, DW_AT_name("delayTime"), DW_AT_symbol_name("_delayTime")
	.dwattr DW$64, DW_AT_type(*DW$T$11)
	.dwattr DW$64, DW_AT_location[DW_OP_breg13 8]
DW$65	.dwtag  DW_TAG_variable, DW_AT_name("writeResult"), DW_AT_symbol_name("_writeResult")
	.dwattr DW$65, DW_AT_type(*DW$T$9)
	.dwattr DW$65, DW_AT_location[DW_OP_breg13 12]
DW$66	.dwtag  DW_TAG_variable, DW_AT_name("errNum"), DW_AT_symbol_name("_errNum")
	.dwattr DW$66, DW_AT_type(*DW$T$11)
	.dwattr DW$66, DW_AT_location[DW_OP_breg13 16]
DW$67	.dwtag  DW_TAG_variable, DW_AT_name("readValue"), DW_AT_symbol_name("_readValue")
	.dwattr DW$67, DW_AT_type(*DW$T$11)
	.dwattr DW$67, DW_AT_location[DW_OP_breg13 20]
DW$68	.dwtag  DW_TAG_variable, DW_AT_name("oneBlockSize"), DW_AT_symbol_name("_oneBlockSize")
	.dwattr DW$68, DW_AT_type(*DW$T$11)
	.dwattr DW$68, DW_AT_location[DW_OP_breg13 24]
DW$69	.dwtag  DW_TAG_variable, DW_AT_name("writeAddr"), DW_AT_symbol_name("_writeAddr")
	.dwattr DW$69, DW_AT_type(*DW$T$11)
	.dwattr DW$69, DW_AT_location[DW_OP_breg13 28]
        STR       A1, [SP, #0]          ; |187| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",188,15
        MOV       V9, #0                ; |188| 
        STR       V9, [SP, #4]          ; |188| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",189,15
        MOV       V9, #0                ; |189| 
        STR       V9, [SP, #8]          ; |189| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",191,18
        MOV       V9, #0                ; |191| 
        STRH      V9, [SP, #12]         ; |191| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",192,18
        MOV       V9, #0                ; |192| 
        STR       V9, [SP, #16]         ; |192| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",193,18
        MOV       V9, #0                ; |193| 
        STR       V9, [SP, #20]         ; |193| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",194,16
        MOV       V9, #15               ; |194| 
        STR       V9, [SP, #24]         ; |194| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",195,16
        MOV       V9, #201326592        ; |195| 
        STR       V9, [SP, #28]         ; |195| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",196,3
        LDR       A1, [SP, #28]         ; |196| 
        BL        _flash_intel_28f256l18top_unlock_one_block ; |196| 
        ; |196| 
        CMP       A1, #0                ; |196| 
        BEQ       L11                   ; |196| 
        ; |196| 
;* --------------------------------------------------------------------------*
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",197,7
        ADR       A2, SL1               ; |197| 
        MOV       A1, #1                ; |197| 
        BL        _UART_Printf          ; |197| 
        ; |197| 
;* --------------------------------------------------------------------------*
L11:    
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",201,7
        MOV       V9, #0                ; |201| 
        STR       V9, [SP, #4]          ; |201| 
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",201,12
        LDR       A1, [SP, #4]          ; |201| 
        LDR       V9, [SP, #24]         ; |201| 
        CMP       A1, V9                ; |201| 
        BCS       L14                   ; |201| 
        ; |201| 
;* --------------------------------------------------------------------------*
;*   BEGIN LOOP L12
;*
;*   Loop source line                : 201
;*   Loop closing brace source line  : 212
;*   Known Minimum Trip Count        : 1
;*   Known Maximum Trip Count        : 4294967295
;*   Known Max Trip Count Factor     : 1
;* --------------------------------------------------------------------------*
L12:    
DW$L$_Flash_WriteOneBlock$4$B:
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",203,3
        LDR       A1, [SP, #28]         ; |203| 
        BL        _flash_intel_28f256l18top_unlock_one_block ; |203| 
        ; |203| 
        CMP       A1, #0                ; |203| 
        BEQ       L13                   ; |203| 
        ; |203| 
DW$L$_Flash_WriteOneBlock$4$E:
;* --------------------------------------------------------------------------*
DW$L$_Flash_WriteOneBlock$5$B:
	.dwpsn	"flash_NOR_INTEL_BR28F128L18T85.c",204,7
        ADR       A2, SL1               ; |204| 
        MOV       A1, #1                ; |204| 
        BL        _UART_Printf          ; |204| 
        ; |204| 
DW$L$_Flash_WriteOneBlock$5$E:
;* --------------------------------------------------------------------------*

⌨️ 快捷键说明

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