This is an example for the Kinetis KE02Z devices, showing how to program the
EEPROM with initial values when the flash is programmed. The example works
on the FRDM-KE02Z40M board, and was written with Kinetis Design Studio (KDS)
v3.0.0. The example also uses Processor Expert (PEx) to configure the UART
and erase/program the EEPROM. The EEPROM programming works with the P&E
Micro Multilink Universal debugger, as well as the P&E Micro OpenSDA debugger
app for the FRDM-KE02Z40M board.
To program the EEPROM with initial values, the application declares constants
for the EEPROM locations, and initializes these in the source code in eeprom.c.
Compiler pragmas/attributes are used to force the linker to place these
constants in EEPROM, using the m_eeprom memory section defined in the linker
command file \Project_Settings\Linker_Files\ProcessorExpert.ld. The P&E
Micro flash programming algorithms initialize the EEPROM in 4Byte words.
Therefore, any initialized EEPROM locations should be in aligned 4Byte words.
This example initializes the first 4Bytes in the EEPROM as 0, 64, 128, 192.
The example uses a terminal program to display EEPROM information. It connects
to the OpenSDA COM port on the FRDM-KE02Z40M board using UART1 from the KE02Z.
The terminal settings are:
Baud Rate: 38,400
Flow Control: None
The example prints 5 bytes of EEPROM to the terminal after reset: the 4
initialized bytes, plus the following EEPROM byte which was not initialized.
Then the example increments the first byte, and decrements the second byte,
and writes the new values back to EEPROM. The other 3 bytes are not changed.
Then the application prints the new EEPROM values of all 5 bytes. Everytime
the MCU is reset, it will print the existing EEPROM data and then the changed
data. Below is the example output from the terminal after initially
programming the KE02Z, and then doing a single reset:
KE02Z EEPROM example
EEPROM values after reset = 0 64 128 192 255
EEPROM values after updating = 1 63 128 192 255
KE02Z EEPROM example
EEPROM values after reset = 1 63 128 192 255
EEPROM values after updating = 2 62 128 192 255