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

📄 image.asm

📁 该代码实现了 两次下载法在dspC6713平台上 烧写flash的操作过程
💻 ASM
📖 第 1 页 / 共 2 页
字号:
           STB     .D2T2   B6,*+B5[B4]       ; |85| 
           LDW     .D2T2   *+SP(4),B4        ; |85| 
           NOP             4
           ADD     .D2     1,B4,B4           ; |85| 
           CMPLT   .L2     B4,10,B0          ; |85| 
   [ B0]   B       .S1     L5                ; |85| 
           NOP             4
           STW     .D2T2   B4,*+SP(4)        ; |85| 
           ; BRANCH OCCURS                   ; |85| 
;** --------------------------------------------------------------------------*
L6:    
	.line	8
           RET     .S2     B3                ; |87| 
           ADD     .D2     8,SP,SP           ; |87| 
           NOP             4
           ; BRANCH OCCURS                   ; |87| 
	.endfunc	87,000000000h,8



	.sect	".text"
	.global	_test_read
	.sym	_test_read,_test_read, 32, 2, 0
	.func	89

;******************************************************************************
;* FUNCTION NAME: _test_read                                                  *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 16 Args + 8 Auto + 4 Save = 28 byte                  *
;******************************************************************************
_test_read:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_i,20, 2, 1, 8
	.sym	_data,21, 2, 1, 8
	.sym	_buffer_addr,24, 4, 1, 32
           STW     .D2T2   B3,*SP--(32)      ; |90| 
           NOP             2
	.line	5
           ZERO    .D1     A0                ; |93| 
           MVKH    .S1     0x800f0000,A0     ; |93| 
           STW     .D2T1   A0,*+SP(24)       ; |93| 
           NOP             2
	.line	7
           ZERO    .D2     B4                ; |95| 
           STB     .D2T2   B4,*+SP(20)       ; |95| 
           LDB     .D2T2   *+SP(20),B4       ; |95| 
           NOP             4
           CMPLT   .L2     B4,10,B0          ; |95| 
   [!B0]   B       .S1     L8                ; |95| 
           NOP             5
           ; BRANCH OCCURS                   ; |95| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L7:    
	.line	9
           LDB     .D2T2   *+SP(20),B4       ; |97| 
           LDW     .D2T2   *+SP(24),B5       ; |97| 
           NOP             4
           LDB     .D2T2   *+B5[B4],B4       ; |97| 
           NOP             4
           STB     .D2T2   B4,*+SP(21)       ; |97| 
           NOP             2
	.line	10
           MVKL    .S1     SL3+0,A0          ; |98| 
           MVKH    .S1     SL3+0,A0          ; |98| 
           STW     .D2T1   A0,*+SP(4)        ; |98| 
           LDW     .D2T2   *+SP(24),B4       ; |98| 
           MVKL    .S2     RL7,B3            ; |98| 
           NOP             3
           STW     .D2T2   B4,*+SP(8)        ; |98| 
           LDB     .D2T2   *+SP(21),B4       ; |98| 
           CALL    .S1     _printf           ; |98| 
           NOP             3
           STW     .D2T2   B4,*+SP(12)       ; |98| 
           MVKH    .S2     RL7,B3            ; |98| 
RL7:       ; CALL OCCURS                     ; |98| 
	.line	11
           LDB     .D2T2   *+SP(20),B4       ; |99| 
           NOP             4
           ADD     .D2     1,B4,B4           ; |99| 
           STB     .D2T2   B4,*+SP(20)       ; |99| 
           LDB     .D2T2   *+SP(20),B4       ; |99| 
           NOP             4
           CMPLT   .L2     B4,10,B0          ; |99| 
   [ B0]   B       .S1     L7                ; |99| 
           NOP             5
           ; BRANCH OCCURS                   ; |99| 
;** --------------------------------------------------------------------------*
L8:    
	.line	13
           LDW     .D2T2   *++SP(32),B3      ; |101| 
           NOP             4
           RET     .S2     B3                ; |101| 
           NOP             5
           ; BRANCH OCCURS                   ; |101| 
	.endfunc	101,000080000h,32



	.sect	".text"
	.global	_test_flash
	.sym	_test_flash,_test_flash, 32, 2, 0
	.func	104

;******************************************************************************
;* FUNCTION NAME: _test_flash                                                 *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 8 Args + 0 Auto + 4 Save = 12 byte                   *
;******************************************************************************
_test_flash:
;** --------------------------------------------------------------------------*
	.line	2
           STW     .D2T2   B3,*SP--(16)      ; |105| 
           NOP             2
	.line	3
           CALL    .S1     _ce1_config       ; |106| 
           MVKL    .S2     RL10,B3           ; |106| 
           MVKH    .S2     RL10,B3           ; |106| 
           MVK     .S1     0xffffff13,A4     ; |106| 
           NOP             2
RL10:      ; CALL OCCURS                     ; |106| 
	.line	7
           CALL    .S1     _flash_bootblock_detect ; |110| 
           MVKL    .S2     RL12,B3           ; |110| 
           MVKH    .S2     RL12,B3           ; |110| 
           NOP             2
           ZERO    .D1     A4                ; |110| 
RL12:      ; CALL OCCURS                     ; |110| 
           CALL    .S1     _printf           ; |110| 
           MVKL    .S1     SL4+0,A0          ; |110| 
           MVKH    .S1     SL4+0,A0          ; |110| 
           STW     .D2T1   A0,*+SP(4)        ; |110| 

           MVKL    .S2     RL13,B3           ; |110| 
||         STW     .D2T1   A4,*+SP(8)        ; |110| 

           MVKH    .S2     RL13,B3           ; |110| 
RL13:      ; CALL OCCURS                     ; |110| 
	.line	8
           CALL    .S1     _flash_erase      ; |111| 
           MVKL    .S2     RL14,B3           ; |111| 
           MVKH    .S2     RL14,B3           ; |111| 
           NOP             3
RL14:      ; CALL OCCURS                     ; |111| 
	.line	9
           CALL    .S1     _flash_bootblock_detect ; |112| 
           MVKL    .S2     RL16,B3           ; |112| 
           ZERO    .D1     A4                ; |112| 
           NOP             2
           MVKH    .S2     RL16,B3           ; |112| 
RL16:      ; CALL OCCURS                     ; |112| 
           CALL    .S1     _printf           ; |112| 
           MVKL    .S2     SL4+0,B4          ; |112| 
           MVKH    .S2     SL4+0,B4          ; |112| 
           STW     .D2T2   B4,*+SP(4)        ; |112| 

           MVKL    .S2     RL17,B3           ; |112| 
||         STW     .D2T1   A4,*+SP(8)        ; |112| 

           MVKH    .S2     RL17,B3           ; |112| 
RL17:      ; CALL OCCURS                     ; |112| 
	.line	10
           LDW     .D2T2   *++SP(16),B3      ; |113| 
           NOP             4
           RET     .S2     B3                ; |113| 
           NOP             5
           ; BRANCH OCCURS                   ; |113| 
	.endfunc	113,000080000h,16



	.sect	".text"
	.global	_test_pci
	.sym	_test_pci,_test_pci, 32, 2, 0
	.func	115

;******************************************************************************
;* FUNCTION NAME: _test_pci                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 16 Args + 16 Auto + 4 Save = 36 byte                 *
;******************************************************************************
_test_pci:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_device_addr,20, 14, 1, 32
	.sym	_memory_addr,24, 14, 1, 32
	.sym	_write_data,28, 4, 1, 32
	.sym	_data,32, 4, 1, 32
           STW     .D2T2   B3,*SP--(40)      ; |116| 
           NOP             2
	.line	3
           MVK     .S1     80,A0             ; |117| 
           STW     .D2T1   A0,*+SP(20)       ; |117| 
           NOP             2
	.line	4
           MVK     .S2     256,B4            ; |118| 
           STW     .D2T2   B4,*+SP(24)       ; |118| 
           NOP             2
	.line	5
           MVK     .S1     1234,A0           ; |119| 
           STW     .D2T1   A0,*+SP(28)       ; |119| 
           NOP             2
	.line	6
           MVK     .S1     111,A0            ; |120| 
           STW     .D2T1   A0,*+SP(32)       ; |120| 
           NOP             2
	.line	8
           LDW     .D2T1   *+SP(20),A4       ; |122| 

           CALL    .S1     _PCI_I2C_write    ; |122| 
||         LDW     .D2T1   *+SP(28),A6       ; |122| 

           LDW     .D2T2   *+SP(24),B4       ; |122| 
           MVKL    .S2     RL18,B3           ; |122| 
           MVKH    .S2     RL18,B3           ; |122| 
           NOP             2
RL18:      ; CALL OCCURS                     ; |122| 
           MV      .D1     A4,A1             ; |122| 
   [!A1]   B       .S1     L9                ; |122| 
           NOP             5
           ; BRANCH OCCURS                   ; |122| 
;** --------------------------------------------------------------------------*
	.line	10

           CALL    .S1     _PCI_I2C_read     ; |124| 
||         LDW     .D2T2   *+SP(24),B4       ; |124| 

           LDW     .D2T1   *+SP(20),A4       ; |124| 
           MVKL    .S2     RL19,B3           ; |124| 
           MVKH    .S2     RL19,B3           ; |124| 
           MVK     .S1     0x1,A6            ; |124| 
           NOP             1
RL19:      ; CALL OCCURS                     ; |124| 
           STW     .D2T1   A4,*+SP(32)       ; |124| 
;** --------------------------------------------------------------------------*
L9:    
           NOP             2
	.line	12
           MVKL    .S1     SL2+0,A0          ; |126| 
           MVKH    .S1     SL2+0,A0          ; |126| 
           STW     .D2T1   A0,*+SP(4)        ; |126| 
           LDW     .D2T2   *+SP(24),B4       ; |126| 
           MVKL    .S2     RL20,B3           ; |126| 
           NOP             3
           STW     .D2T2   B4,*+SP(8)        ; |126| 
           LDW     .D2T2   *+SP(32),B4       ; |126| 
           CALL    .S1     _printf           ; |126| 
           NOP             3
           STW     .D2T2   B4,*+SP(12)       ; |126| 
           MVKH    .S2     RL20,B3           ; |126| 
RL20:      ; CALL OCCURS                     ; |126| 
	.line	14
           LDW     .D2T2   *++SP(40),B3      ; |128| 
           NOP             4
           RET     .S2     B3                ; |128| 
           NOP             5
           ; BRANCH OCCURS                   ; |128| 
	.endfunc	128,000080000h,40


;******************************************************************************
;* STRINGS                                                                    *
;******************************************************************************
	.sect	".const"
SL1:	.string	"12345678",10,0
SL2:	.string	"PCI memory 0x%x data is:%d   ",10,0
SL3:	.string	"The memory 0x%x data is:%d   ",10,0
SL4:	.string	"Lower boot blockout detect is:%x",10,0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_printf
	.global	_intr_init
	.global	_emif_init
	.global	_ce1_config
	.global	_flash_erase
	.global	_flash_bootblock_detect
	.global	_PCI_I2C_read
	.global	_PCI_I2C_write

;******************************************************************************
;* TYPE INFORMATION                                                           *
;******************************************************************************
	.sym	_BOOLEAN, 0, 12, 13, 8

⌨️ 快捷键说明

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