I cannot find any examples or app notes on using the EEPROM emulation on coldfire+ processors. I have used processor expert to configure the EEPROM and I wrote code that reads and writes to the section of flash that is the EEPROM area but it does not work.
Anyone know of a app note document or can give a working examle?
In the end I got back to this task as our product is near release. The problem is the memory was not partitioned, the partitioning process is a one time operation that sets the amount of dataflash that is used for EEPROM and how much is used for dataflash. The processor expert tool does not do this nor does it provide a function. Unfortunately I could not find an example of how to partition the memory and the documentation is very weak and would probably take me several days to a week to solve. So I used the Data flash and wrote my own wear leveling which took around a day.
Unfortunately for all the great features on the coldfire+ using the processor is more difficult than most I have used. Price v' features was why this processor was selected but the documentation and examples reduces it's feature set to what the software team (me in this case) have time to get working. Perhaps Freescale needs to add a few people to it's product support team to post examples on the web and provide better support from the tools like processor expert.
Yes, that's difficult, isn't it? The following product page:
"The ColdFire+ MCF51Jx portfolio is defined by two families that scale from 32 KB to 128 KB of flash with innovative FlexMemory, configurable embedded EEPROM."
There is no match for "eeprom" or "FlexMemory" in any of the MCF51J, MCF51M or MCF51Q Reference Manuals I've got downloaded. There's no App Notes either.
I've now found out that's because I had the MCF51JE and JM manuals, and these features are in the JF, JU, QF and QU parts.
Searching for "FlexMem" does get a match on CodeWarrior, specifically:
Additional Example Projects are available on the Web. They can be found in the Self-
Paced Training section on the Training & Support tab of the CW MCU Web page.
• Processor Expert Example Project for TWR-K60N512: Includes a CW MCU v10.1
... etc ... and then:
Example Projects for TWR-K40X256-KIT and TWR-K60N512-KIT: Includes CW
MCU v10.1 bare board (no RTOS) projects for TWR-K40X256-KIT and TWRK60N512KIT.
The projects for each kit include: adc_demo, can_loopback_node,
crc_demo, dac12bit_demo, flexbus, flexmem, gpio, hello_world, hscmp, i2c, lptmr,
mcg_demo, pdb_adc_demo, pmc, rtc, sci2can, slcd, tsi, USB_DCD, USB_device,
USB_dual_role, USB_HOST, USB_MAX3353.
That points to:
There's a file in there called "flexmem_demo.c" that might do what you want, but it is referencing registers like "FTFL_FCNFG" that I couldn't find in my manuals (but which are in the JF manuals). Searching for "FTFL_FCNFG" gets matches on the ARM-based K50 CPUs, and now looking above at the CW quote above shows it only refers to K40 and K60 parts and not ColdFire ones.
It looks like these features were first put into the "K" parts, and may have recently been added to the MCF51JF and other parts.
You may be able to adapt the Kinetis software I found above to work on the parts you have.
But your first approach should be to find why the Processor Expert code isn't working. That's meant to be the quick way to a working system and is worth pursuing.
If you search in the Processor Expert Forum for "FlexNVM you'll get 20 hits .Read them and ask questions there.