We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am using the LPC2300 (2378) board.
I need to permanently store a variety of settings so that they are available from startup to startup. These are stored in a struct. I have done the following for storing them:
// prep sector 9 (0x00010000) for writing command[0] = 50; // IAP Prepare Sectors for Write operation command[1] = 9; // Controller variables stored in sector 9 command[2] = 9; // (end sector is same - only use 1 sector) iap_entry=(IAP) IAP_LOCATION; // copy ram to flash command[0] = 51; // IAP Copy Ram to flash operation command[1] = 0x00010000; // address of sector 9 command[2] = (unsigned long)&parms; // parms location command[3] = sizeof(parms); command[4] = 12000; // clock speed iap_entry=(IAP) IAP_LOCATION;
I am accessing the data with a simple memcpy
memcpy( (void *)&gParms, (void *)0x00010000, sizeof(gParms) );
When I do a write and then do the memcpy the data isn't being stored/retrieved correctly.
What am I missing/ doing wrong?
Any help is greatly appreciated.
Thanks
Dave
OK I have read it - that's how I have gotten this far.
I need to disable the interrupts or move the code to RAM. Since I can't find anything yet on how to move the code to RAM I am trying to go with the disabling. The only thing I can find for disabling the interrupts is VICIntEnClr. My understanding of this is that if I do the following I should disable the irqs
unsigned long irqStatus; irqStatus = VICIntEnable; VICIntEnClr = irqStatus; // disable the active irqs // write data as I did above VICIntEnable = irqMask; /* reEnable Interrupt */
Am I hopelessly lost?