Reprogramming full flash memory using IAP

Hi, i have problem using IAP to program full flash memory. I have found an example in the LPC INSIDE'R GUIDE but the Keil compiler can't compile. This is the code and the compiler output:

#include <LPC22xx.H>

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

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

/////// LINE 13 ////////////
int main (void) __arm //Compile this in ARM instruction set
{ unsigned char index;

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

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

command[0] = 0x36; //command code for "Read part ID"
iap_byfunction(command,result,0x7FFFFFF0); //Call IAP functions by function method

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

command[0] = 51; //write 512 bytes from address 0x40000100
command[1] = 0x0000A000; //to 0x0000A000 in flash memory;
command[2] = 0x40000100;
command[3] = 512;
command[4] = 12000; // see erase comment above
iap_byfunction(command,result,0x7FFFFFF0);

while(1) {;}

}

///// LINE 45 //////
void iap_byfunction (unsigned *cmd,unsigned *rslt,unsigned entry) __thumb //compile this in Thumb instruction set
__asm { mov r15,r2; } //////// LINE 47 //////// //move entry address into PC

}

Build target 'Target 1'
assembling Startup.s...
compiling main.c...
main.c(13): error: #130: expected a "{"
main.c(19): error: #513: a value of type "int" cannot be assigned to an entity of type "char *"
main.c(45): error: #130: expected a "{"
main.c(47): error: #20: identifier "r15" is undefined
main.c(47): warning: #1267-D: Implicit physical register R2 should be defined as a variable
main.c(47): error: #549: variable "R2" is used before its value is set
Target not created

Can somebody please help me why the compiler can't do this if it's ok.

Thanks.
Yaque.

More questions in this forum