EmbeddedRelated.com
Forums

LPC2138 Flash Write Problem

Started by bm_seo June 25, 2008
(Apologies if posted twice, couldn't find message)

I am trying to get Flash write working on LPC2138 with no sucess.
Code is below. Any help appriciated.

typedef void (*IAP)(unsigned int [],unsigned int []);
IAP iap_bypointer;
void iap_byfunction (unsigned *cmd,unsigned *rslt,unsigned entry);

unsigned int command[5];
unsigned int result[5];
char Ram_Arry[512] = "Hello World";
char *Ram_Pointer;

void flash_write(void)
{
unsigned char index;

iap_bypointer = (IAP) 0x7FFFFFF1;			//set IAP entry address in function
pointer

//Ram_Pointer = &Ram_Arry[0];
Ram_Pointer = 0x40005000;

for (index = 0; index<0x0B; index++)		//Copy data to be written to flash
into the RAM
{
	*Ram_Pointer = Ram_Arry[index];
	Ram_Pointer++;
}
//Ram_Pointer = &Ram_Arry[0];

command[0] = 0x36; 	//command code for "Read part ID"
iap_bypointer(command,result);

command[0] = 50;	//Prepare sector ten for a write operayion
command[1] = 10;
command[2] = 10;
iap_bypointer(command,result);

command[0] = 52;  //erase sector ten
command[1] = 10;
command[2] = 10;
command[3] = 60000;  //Cclk == 60Mhz Pll is disabled in startup code
iap_bypointer(command,result);

command[0] = 50;  //Prepare sector ten for a write operayion
command[1] = 10;
command[2] = 10;
iap_bypointer(command,result);

command[0] = 51;          //write 512 bytes from address 0x40005000
command[1] = 0x00018000;  //to 0x00018000 in flash memory;
command[2] = 0x40005000;
command[3] = 512;
command[4] = 60000;						   

while(1)
{
;
}

}


Op Wed, 25 Jun 2008 13:22:56 +0200 schreef bm_seo  
<brian.murphy.seo@gmail.com>:
> I am trying to get Flash write working on LPC2138 with no sucess. > Code is below. Any help appriciated.
What parts fail and what parts succeed and how did you determine that? -- Gemaakt met Opera's revolutionaire e-mailprogramma: http://www.opera.com/mail/
On Wed, 25 Jun 2008 06:22:56 -0500, "bm_seo" <brian.murphy.seo@gmail.com> wrote:

>(Apologies if posted twice, couldn't find message) > >I am trying to get Flash write working on LPC2138 with no sucess. >Code is below. Any help appriciated. > >typedef void (*IAP)(unsigned int [],unsigned int []); >IAP iap_bypointer; >void iap_byfunction (unsigned *cmd,unsigned *rslt,unsigned entry); > >unsigned int command[5]; >unsigned int result[5]; >char Ram_Arry[512] = "Hello World"; >char *Ram_Pointer;
>void flash_write(void)
Is this procedure being executed from RAM? If not, that is your problem.