Hello,
I am working on a project based on a C8051F353 from Silabs. This project needs some non-volatile variables to be stored, using internal Flash. I manage to read, write, and erase data to flash BUT: -a write needs an erase, and erase can't be performed on less than a page All data can be kept, by reading the concerned page, modify the requested data, erasing the page, and write the modified copy.
Since I have declared my non-volatile data into the main program as global variables with "code" prefix, this data is located into program in Flash. When I want to write to this data, I am so erasing and rewriting page of running program, which results in reset of device.
I would like to be able to place non-volatile data into a specific page appart from code, into flash. So that I won't affect program when updating data. I think the use of SEGMENTS would be the best for me, but I can't manage to place a specific segment in a specific page, but just at the end of code.
I somebody have a solution, or can give me a direction to fix this problem.
Thank you in advance.
... re the scratchpad?
Erik
Thank you for the answer,
Yes I read Device, C51, and LX51 datasheets but didn't find what I expect to do. The only time I find something related to scratch pad is in 11.2 Data memory part of the 8051F353 datasheet, which deal of RAM. I can't see how this feature is related to my wishes to store variables to Flash.
If there is a use of this scratch pad in my case, please explain me briefly how.
Thank you, Simon.
did not know that SILabs had chips with no scratchpad
View all questions in Keil forum