OpenCores
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));
      }
    }
}

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.