Yes I have. Its easy, but you have to use up a whole page (unless you read - modify - write) I had lots of spare flash and was typically saving a configuration just a few times so these limitations didn't matter.
Code using IAP instructions below.
Accessing the stored structure is just a direct memory access.
The write cycle limitations have been well documented by those willing to offer an opinion but not answer your question !!!
Owen Mooney
#define IAP_LOCATION 0x7ffffff1
void savesetup(struct SETUP *setup){
typedef void (*IAP)(unsigned int [],unsigned int[]);
unsigned int command[5];
unsigned int result[2];
IAP iap_entry;
__ARMLIB_disableIRQ();
iap_entry=(IAP) IAP_LOCATION;
// get part ID
command[0]=54;
result[0]=0;
iap_entry(command, result);
// result in result[1]
// prepare to erase
command[0]=50;
command[1]=14;
command[2]=14;
iap_entry(command, result);
if (result[0] != 0) goto error;
// erase
command[0]=52;
command[1]=14;
command[2]=14;
command[3]=14745;
iap_entry(command, result);
if (result[0] != 0) goto error;
// prepare to program
iap_entry=(IAP) IAP_LOCATION;
command[0]=50;
command[1]=14;
command[2]=14;
iap_entry(command, result);
if (result[0] != 0) goto error;
// program
command[0]=51;
command[1]=0x1C000;
command[2]=(int)setup;
command[3]=512;
command[4]=14745;
iap_entry(command, result);
if (result[0] != 0) goto error;
__ARMLIB_enableIRQ();
return;
error:
__ARMLIB_enableIRQ();
printf("bum");
}
Hi!
Has someone used the flash memory of the lpc21xx for eeprom purposes?
Or is it more usefull to take an additive eeprom to the design? I only
want to store some parameters.
Thank you for feedback!
Martin
____________Message
Subject: Using flash memory instead of eeprom?
2005-01-31 by Owen Mooney
Attachments
- No local attachments were found for this message.