Hi
you need to write long words (rather than individual bytes) but the technique is correct as you describe it.
In the uTasker project this is one of the strategies integrated into the frame work (the one called USE_PARAMETER_AREA in the parameter configuration options below)
#define USE_PARAMETER_BLOCK // enable a parameter block for storing and retrieving non-volatile information
#define USE_PAR_SWAP_BLOCK // we support a backup block which can be restored if desired (it is recommended to use this together with USE_PARAMETER_BLOCK
//#define PARAMETER_NO_ALIGNMENT // the driver doesn't need to respect byte write restrictions since the application does - this can improve memory utilisation when bytes writes are not supported by the hardware
//#define USE_PARAMETER_AREA // simple parameter area rather than parameter block
When USE_PARAMETER_AREA is enabled, the following API calls are available which manage it this way and is compatible for any Kinetis part (the user defines the Flash sectors making up the area):
// Called to retrieve the valid block of parameters from the parameter area
//
extern int fnGetPar(unsigned short usParameterReference, unsigned char *ucValue, unsigned short usLength);
// Called to set a byte or block of bytes to a parameter block
//
extern int fnSetPar(unsigned short usParameterReference, unsigned char *ucValue, unsigned short usLength);
// Called to delete a block in the parameter block or to manipulate parameter block itself
//
extern int fnDelPar(unsigned char ucDeleteType);
Regards
Mark
http://www.utasker.com/kinetis/TRK-KEA64.html
http://www.utasker.com/kinetis/FRDM-KEAZ64Q64.html