SunSPOT API V5.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 getLastSectorAvailableToJava()
          Answer the last flash sector available to Java.
 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 getSectorAddress(int sectorNum)
          Get the address of a sector.
 int getSectorContainingAddress(int addr)
          Find the sector associated with a given address in the flash.
 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

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.

getLastSectorAvailableToJava

public int getLastSectorAvailableToJava()
Description copied from interface: IFlashMemoryDevice
Answer the last flash sector available to Java.

Specified by:
getLastSectorAvailableToJava in interface IFlashMemoryDevice
Returns:
sector number

getSectorAddress

public int getSectorAddress(int sectorNum)
Description copied from interface: IFlashMemoryDevice
Get the address of a sector. The first sector is numbered zero.

Specified by:
getSectorAddress in interface IFlashMemoryDevice
Parameters:
sectorNum - The sector whose address is to be returned
Returns:
the sector address

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 V5.0


Copyright � 2006-2008 Sun Microsystems, Inc. All Rights Reserved.