URL
https://opencores.org/ocsvn/usb_nand_reader/usb_nand_reader/trunk
Subversion Repositories usb_nand_reader
[/] [usb_nand_reader/] [trunk/] [mini32/] [CMD_ReadPage.c] - Rev 7
Compare with Previous | Blame | View Log
#include "NandControl.h" #include "CMD.h" void cmd_chip_read_page(unsigned char* inBuffer, unsigned char* outBuffer, int len, int addressCycles) { nand_send_command(NC_READ_MODE); nand_send_address(inBuffer + 1, addressCycles); nand_send_command(NC_READ_PAGE); do_delay(5); while(!nand_is_ready()); //nand_read(outBuffer, len); /* Testing something */ { int i; for(i = 0; i < len; i += 64) { nand_read(outBuffer, 64); //HID_Write(outBuffer, 64); while(0 == HID_Write(outBuffer, 64)) USB_Break(); } } } /* inBUffer - buffer containing the instruction read from USB outBuffer - buffer to store page data (to be sent via USB) len - size of page in bytes including OOB addressCycles - numbre of address cycles for current chip */ void cmd_chip_read_page_cache_sequential(unsigned char* inBuffer, unsigned char* outBuffer, int len, int addressCycles) { int i = 0; int j = *(int*)(inBuffer + 6); nand_send_command(NC_READ_MODE); nand_send_address(inBuffer + 1, addressCycles); nand_send_command(NC_READ_PAGE); do_delay(5); nand_wait_ready(); while(j > 0) { nand_send_command( (j > 1)? NC_READ_PAGE_CACHE_SEQ : NC_READ_PAGE_CACHE_LAST); j--; //do_delay(5); nand_wait_ready(); //do_delay(5); for(i = 0; i < len; i += 64) { nand_read(outBuffer, 64); while(!HID_Write(outBuffer, 64)); USB_Break(); //while(HID_Write(outBuffer, 64)); } } }