This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

page_erase() problem

I need to store my boards network ID into nonvolatile memory. I have been using the page_erase() and write_flash_chk():


page_erase(PAGE_START, 0xFF, FDM);
write_flash_chk(PAGE_START, NewAddr, FDM);


where
 PAGE_START = 0x0400 
and my timing is set up as

//FLASH WRITE CONFIGURATION
USEC = 0x0C;	//tFWT = 32.5 us
MSECH = 0x4E;	//MSEC for tFET = 10 ms
MSECL = 0x20;	// @32 MHz
FTCON = 0xFF;	//FWR = 0x0F & FER = 0x0F

That worked fine until I changed my Serial ISR to implement a ring buffer, which has nothing to do with my memory writing function.

I know it is diffucult to debug a problem without seeing the code, but can anyone suggest things to look out for or a better way to store variables in flash memory?

Thanks

Parents
  • I am a little confused about the memory layout, becasue I am new to the 8051 environment. I am using the MSC1210Y5. By configuring HCR0, I have partitioned 1kb for Data flash memory and 31kb for program flash memory. I am assuming the C51 compiler won't differenciate between the two, so I have to tell it where to start the code?

Reply
  • I am a little confused about the memory layout, becasue I am new to the 8051 environment. I am using the MSC1210Y5. By configuring HCR0, I have partitioned 1kb for Data flash memory and 31kb for program flash memory. I am assuming the C51 compiler won't differenciate between the two, so I have to tell it where to start the code?

Children