I am using an LM4F212E5QC on CCS 5.2 using StellarisWare. I am programming off-road vehicles.
We are using StellarisWare to read/write EE. So far we are writing just 8,16 and 32 bit values. The performance is quite satisfactory. I am now considering how to write 20 byte records to EE. We rarely hammer the EE. When a machine shuts down we may take a second to write of data to the EE.
My problem is that I am running the processors at 80 or 20MHz and I am using a 100usec paced loop for general functioning. Sporadically, generally many seconds seperation, if not hours apart, I will have to log a fault to EE. Our fault record is 20 bytes long.
On past processors this 20 byte write has required a manager of some type to manage writing the 20 bytes off without holding up control of the machine (the forever loop in main()).
So what is the 'copy buffer'? The chip and Stellaris manuals do not explain the concept well enough for me to get the idea. Very few examples use Stellarisware EE functions.
Can I write off 20 bytes non-blocking and just check later to see if the processor is done writing?
What happens if a second fault occurs while writing is active and I try to update a different portion of EE?
What if it is the same portion of EE?