OpenCores
URL https://opencores.org/ocsvn/usb_nand_reader/usb_nand_reader/trunk

Subversion Repositories usb_nand_reader

[/] [usb_nand_reader/] [trunk/] [mini32/] [CMD_PageProgram.asm] - Rev 7

Compare with Previous | Blame | View Log

_cmd_chip_page_program:
;CMD_PageProgram.c,7 ::                 unsigned char cmd_chip_page_program(unsigned char* inBuffer, int addressCycles, int pageSize)
ADDIU   SP, SP, -16
SW      RA, 0(SP)
;CMD_PageProgram.c,9 ::                 int i = 0, b;
MOVZ    R30, R0, R0
SH      R30, 14(SP)
;CMD_PageProgram.c,10 ::                nand_send_command(NC_PAGE_PROGRAM_START);
SH      R27, 4(SP)
SH      R26, 6(SP)
SW      R25, 8(SP)
ORI     R25, R0, 128
JAL     _nand_send_command+0
NOP     
LW      R25, 8(SP)
LH      R26, 6(SP)
;CMD_PageProgram.c,11 ::                nand_send_address(inBuffer + 1, addressCycles);
ADDIU   R2, R25, 1
SW      R25, 8(SP)
MOVZ    R25, R2, R0
JAL     _nand_send_address+0
NOP     
;CMD_PageProgram.c,12 ::                do_delay(5);
ORI     R25, R0, 5
JAL     _do_delay+0
NOP     
LW      R25, 8(SP)
LH      R27, 4(SP)
;CMD_PageProgram.c,13 ::                while(i < pageSize)
L_cmd_chip_page_program0:
SEH     R3, R27
LH      R2, 14(SP)
SLT     R2, R2, R3
BNE     R2, R0, L__cmd_chip_page_program5
NOP     
J       L_cmd_chip_page_program1
NOP     
L__cmd_chip_page_program5:
;CMD_PageProgram.c,15 ::                USB_Polling_Proc();
SH      R27, 4(SP)
SH      R26, 6(SP)
SW      R25, 8(SP)
JAL     _USB_Polling_Proc+0
NOP     
LW      R25, 8(SP)
LH      R26, 6(SP)
LH      R27, 4(SP)
;CMD_PageProgram.c,16 ::                while(0 == (b = HID_Read()))
L_cmd_chip_page_program2:
JAL     _HID_Read+0
NOP     
ANDI    R2, R2, 255
SH      R2, 12(SP)
LH      R2, 12(SP)
BEQ     R2, R0, L__cmd_chip_page_program6
NOP     
J       L_cmd_chip_page_program3
NOP     
L__cmd_chip_page_program6:
;CMD_PageProgram.c,17 ::                USB_Break();
JAL     _USB_Break+0
NOP     
J       L_cmd_chip_page_program2
NOP     
L_cmd_chip_page_program3:
;CMD_PageProgram.c,19 ::                nand_write(inBuffer, b);
SH      R27, 4(SP)
SH      R26, 6(SP)
SW      R25, 8(SP)
LH      R26, 12(SP)
JAL     _nand_write+0
NOP     
LW      R25, 8(SP)
LH      R26, 6(SP)
LH      R27, 4(SP)
;CMD_PageProgram.c,20 ::                i += b;
LH      R3, 12(SP)
LH      R2, 14(SP)
ADDU    R2, R2, R3
SH      R2, 14(SP)
;CMD_PageProgram.c,21 ::                }
J       L_cmd_chip_page_program0
NOP     
L_cmd_chip_page_program1:
;CMD_PageProgram.c,22 ::                do_delay(5);
SH      R27, 4(SP)
SH      R26, 6(SP)
SW      R25, 8(SP)
ORI     R25, R0, 5
JAL     _do_delay+0
NOP     
;CMD_PageProgram.c,23 ::                nand_send_command(NC_PAGE_PROGRAM_END);
ORI     R25, R0, 16
JAL     _nand_send_command+0
NOP     
;CMD_PageProgram.c,24 ::                do_delay(100);
ORI     R25, R0, 100
JAL     _do_delay+0
NOP     
;CMD_PageProgram.c,25 ::                nand_wait_ready();
JAL     _nand_wait_ready+0
NOP     
;CMD_PageProgram.c,26 ::                return cmd_chip_read_status();
JAL     _cmd_chip_read_status+0
NOP     
LW      R25, 8(SP)
LH      R26, 6(SP)
LH      R27, 4(SP)
;CMD_PageProgram.c,27 ::                }
L_end_cmd_chip_page_program:
LW      RA, 0(SP)
ADDIU   SP, SP, 16
JR      RA
NOP     
; end of _cmd_chip_page_program

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.