SunSPOT API V3.0


com.sun.spot.peripheral.external
Class M25P05

java.lang.Object
  extended by com.sun.spot.peripheral.external.M25P05
All Implemented Interfaces:
IFlashMemoryDevice

public class M25P05
extends Object
implements IFlashMemoryDevice

Driver for the M25P05 flash memory chip as fitted to Sun SPOT external boards


Field Summary
static int SPI_CONFIG
           
 
Constructor Summary
M25P05(ISPI spi)
           
 
Method Summary
 void eraseChip()
          Erase all data in the chip
 void eraseSectorAtAddress(int address)
          Erase a sector
 int getNumberOfSectors()
          Get the number of sectors in the device.
 int getNumberOfSectorsInRegion(int startAddress, int length)
          Find the number of sectors in a region of the flash memory.
 int getPageSize()
          Get the page size for writing.
 int getSectorContainingAddress(int addr)
          Find the sector associated with a given address in the flash.
 int[] getSectorMap()
          Get a map of sector numbers to sector addresses
 int getSectorSize(int sectorNum)
          Get the size of a device sector
 int getSize()
          Get the capacity of the device
 boolean isWriteProtected()
          Check whether the device is write protected
 void read(int address, int numOfBytes, byte[] buffer, int offset)
          Read data from the M25P05 flash memory.
 boolean sectorErased(int address)
          Check whether a sector is erased.
 void setWriteProtection(boolean b)
          Set or clear the write protection
 boolean verify(int address, int numOfBytes, byte[] buffer)
          Verify data in the M25P05 flash memory.
 void write(int address, int numOfBytes, byte[] buffer, int offset)
          Write data into the flash memory.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SPI_CONFIG

public static final int SPI_CONFIG
See Also:
Constant Field Values
Constructor Detail

M25P05

public M25P05(ISPI spi)
Method Detail

read

public void read(int address,
                 int numOfBytes,
                 byte[] buffer,
                 int offset)
Read data from the M25P05 flash memory.

Specified by:
read in interface IFlashMemoryDevice
Parameters:
address - address in memory to start reading, in range 0 to 0xFFFF
numOfBytes - number of bytes to read, in range 0 to (0x10000-address)
buffer - the hold the data
offset - offset into buffer for first byte read

write

public void write(int address,
                  int numOfBytes,
                  byte[] buffer,
                  int offset)
Description copied from interface: IFlashMemoryDevice
Write data into the flash memory.

Specified by:
write in interface IFlashMemoryDevice
Parameters:
address - address in memory to start writing, no need to be page-aligned
numOfBytes - number of bytes to write, in range 0 to PAGE_SIZE
buffer - the data to write
offset - the offset into the buffer of the first byte to write

verify

public boolean verify(int address,
                      int numOfBytes,
                      byte[] buffer)
Verify data in the M25P05 flash memory.

Specified by:
verify in interface IFlashMemoryDevice
Parameters:
address - address in memory to start verifying, in range 0 to 0xFF00 but must be page-aligned
numOfBytes - number of bytes to write, in range 0 to PAGE_SIZE
buffer - the data to verify against
Returns:
true if data matches

eraseSectorAtAddress

public void eraseSectorAtAddress(int address)
Erase a sector

Specified by:
eraseSectorAtAddress in interface IFlashMemoryDevice
Parameters:
address - an address within sector to erase

sectorErased

public boolean sectorErased(int address)
Check whether a sector is erased.

Specified by:
sectorErased in interface IFlashMemoryDevice
Parameters:
address - an address within sector to check
Returns:
true if sector is erased

eraseChip

public void eraseChip()
Erase all data in the chip

Specified by:
eraseChip in interface IFlashMemoryDevice

getPageSize

public int getPageSize()
Get the page size for writing. Each call to write can write no more than one page.

Specified by:
getPageSize in interface IFlashMemoryDevice
Returns:
The page size in bytes

getSectorMap

public int[] getSectorMap()
Get a map of sector numbers to sector addresses

Specified by:
getSectorMap in interface IFlashMemoryDevice
Returns:
The map as an array of addresses where the array index is the sector number.

setWriteProtection

public void setWriteProtection(boolean b)
Set or clear the write protection

Parameters:
b - If b is true the device becomes write protected; if b is false the device becomes writable.

isWriteProtected

public boolean isWriteProtected()
Check whether the device is write protected

Returns:
true if it is write protected

getSize

public int getSize()
Get the capacity of the device

Specified by:
getSize in interface IFlashMemoryDevice
Returns:
The size of the memory in bytes

getSectorSize

public int getSectorSize(int sectorNum)
Get the size of a device sector

Specified by:
getSectorSize in interface IFlashMemoryDevice
Parameters:
sectorNum - The sector whose size is to be returned
Returns:
The size of a sector in bytes

getNumberOfSectors

public int getNumberOfSectors()
Description copied from interface: IFlashMemoryDevice
Get the number of sectors in the device.

Specified by:
getNumberOfSectors in interface IFlashMemoryDevice
Returns:
Number of sectors.

getSectorContainingAddress

public int getSectorContainingAddress(int addr)
Description copied from interface: IFlashMemoryDevice
Find the sector associated with a given address in the flash.

Specified by:
getSectorContainingAddress in interface IFlashMemoryDevice
Parameters:
addr - The address.
Returns:
The sector number.

getNumberOfSectorsInRegion

public int getNumberOfSectorsInRegion(int startAddress,
                                      int length)
Description copied from interface: IFlashMemoryDevice
Find the number of sectors in a region of the flash memory.

Specified by:
getNumberOfSectorsInRegion in interface IFlashMemoryDevice
Parameters:
startAddress - The start of the region.
length - The size of the region.
Returns:
The number of sectors.

SunSPOT API V3.0


Copyright © 2006, 2007 Sun Microsystems, Inc. All Rights Reserved.