Crossware

Table of Contents        Previous topic       Next topic       

Programming Flash Memory->Flash.ini and UserFlash.ini

FLASH.INI is supplied with the debugger.  It will be located in <installation directory>\ARM\init.  USERFLASH.INI is optionally supplied by you and should also be located in <installation directory>\ARM\init.

USERFLASH.INI can contain information on additional devices not included in FLASH.INI.  By using a different file, rather than modifying FLASH.INI, you can be sure that your additions will not be overwritten if you update or reinstall the debugger.

Here is a typical section from FLASH.INI:

[Am29PL160C]
; used on
ManufId=1
DeviceId=2245
Width=8
Width=16
CommandSet=2
SA= 000000
SA= 004000
SA= 006000
SA= 008000
SA= 040000
SA= 080000
SA= 0C0000
SA= 100000
SA= 140000
SA= 180000
SA=1C0000
End= 200000

[Am29PL160C] contains the name of the chip.  The actual name is unimportant but a name enclosed in square brackets marks the start of a new block of information.

The next line is a comment.  Lines beginning with a semi-colon are ignored.

ManufId=1 indicates that the device is an AMD device.

DeviceId=2245 is the id of AMD flash memory chip Am29PL160C.

This chip can be configured in 8 bit or 16 bit mode and so widths of 8 and 16 are listed.

CommandSet=2 indicates the commands supported by the device.  The debugger currently supports two command sets  1, 2 and 3.

Command set 1 consists of the original AMD commands and command set 2 is the same but with the addition of the Unlock Bypass facility.  (The Unlock Bypass facility allows for faster programming because the unlock command does not have to be given for each byte that is programmed).

Command set 3 is the Intel Strataflash command set.

The lines beginning with SA are the segment start addresses for the chip as a hexadecimal offset from the start of the chip.  The first segment starts at offset zero of course. The next segment for the Am29PL160C starts at offset 4000 hex. and so on.  The last segment starts at offset 1C0000 and continues up to offset 1FFFFF.  End=20000 tells the debugger that this last segment stops at 1FFFFF.

For chips that support the block erase command BA can be used instead of SA to define the block structure.  This will result in a faster download time because the blocks are larger than sectors.  The debugger will use the block erase command rather than the sector erase command.

Here is a typical flash.ini entry for a flash memory chip that supports the block erase command:

[SST39WF400A]
ManufId=BF
DeviceId=0X272F
Width=16
CommandSet=1
BA= 000000
BA= 010000
BA= 020000
BA= 030000
BA= 040000
BA= 050000
BA= 060000
BA= 070000
End= 080000