I would like to read and write to FLASH memory but am unable to get it working. Any help appreciated. Thanks!
Question 1: How to declare a variable into FLASH?
If I declare a variable as const, the compiler will put the variable into FLASH. It goes to the lower part of FLASH that isn't in the "user range". If I make a custom section of the FLASH in the linker file, it will create a section of FLASH in the map. Then I can use #pragma to designate where in FLASH the variable should be stored. The below code gets placed into 0xDDBF "TEST_ZONE" which is a 512 byte area of FLASH I have designated in the Project.prm file as a READ_WRITE area.
When I read a variable from FLASH, the value is 255 no matter what I set it to. Why is that?
Question 3: How to write variable to FLASH?
In the documentation, it lays out the steps to write to FLASH. It seems to have no effect on the values though.
FSTAT = FSTAT | 0b00010000;//Clears the flag.
FCDIV=19;// Sets the Flash ClockTPMS_FLASH_ERASE(myVar3);//Not a pointer, but the variable itself. This returns 0 on success.TPMS_FLASH_WRITE(&myVar3,&myBuffer,1);//This should replace the value at myVar with the value at myBuffer, 1 byte. It has no effect.