AnsweredAssumed Answered

EEPROM Emulation Start Address Question

Question asked by Colecago on Dec 21, 2011
Latest reply on Dec 21, 2011 by Colecago
I've been using the STM32F100C6 on a project at my work.  We had no experience in ARM before so we contracted a associate of one of our engineers to write the start up code (just initializing all I/O, setting up timers, PWM, EEPROM, etc).  Well everything is looking good, project is getting closer to being finished and I was trying to figure out a way to initialize the Fake EEPROM (I'll call it FEEPROM) to a known value, or erase the micro and if I see all 0xFFFF when I look through my stored vars to initialize them.  Anyways, I was using the ST-Link GUI and I could not find the darn things.  Digging around led me to look at the EEPROM.h file where start address is
EEPROM_START_ADDRESS    ((uint32_t)0x08010000)
and I only have a 32KB part, and it works.  So I adjusted the memory size ST-Link was looking at and sure enough there it was.

I assume more than one micro uses the same core but only certain parts of the memories are tested and such, so I'd rather not use that part of the memory if I can't guarantee it works long-term, but when looking through the example code written by ST they take in account the micro type for page size but don't do anything about the start address based on micro, and the example is supposed to work on low density/medium density/high density/connectivity products.  Some of those micros may include memory in the range that overlaps that.  Are you supposed to change that start address to wherever you want in your memory, or is this a protected range?  Should I keep it that way for my 32KB micro?  Is that range safe for me even though its beyond the sold capacity of the micro?