Other Parts Discussed in Thread: HALCOGEN, UNIFLASH
Are there any limits to how many times new code can be flashed to a Hercules Launchpad?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
QJ
Could you explain the difference between these flash banks. It looks like your are telling 1000 flashes only. I would really like to have some idea what happens when failure occurs. That is, how do I know when it has failed?
Daniel
Hi Daniel,
After Erasing and Reflashing for >> 1000 times, you will start to see bit errors occurring in the flash. This means that the margins of the flash cells are getting worse and worse, the flash weared out as QJ wrote.
I would expect that you will first see single bit errors, which can be corrected by the ECC logic. Usually there is some profiling done for these errors and these exceeded a certain limit in your applications (you have to specify) the appliance should signal that it has to be replaced. You could also think about "boosting" certain flash cells when you start to see single bit errors to increase the margin.
But please note, this will happen only if you reprogram the device very often, or after a long period in time. Usually you don't have to reprogram the device very often, once the firmware is set it will most likely not change and every appliance has a certain lifetime after which it should be replaced anyways. We usually specify 15 years (flash) data retention for these devices.
Best Regards,
Christian
Hi Dan,
For this kind of applications you should definitely use some kind of wear leveling algorithm to be ease on the flash memory.
On microcontrollers this is often done with EEPROM Emulation techniques, there is an EEPROM Emulation driver integrated in HALCoGen. The data would then come via a communication interface other than JTAG and all flash operations are done in system.
Or you could just use a specific amount of Flash Sectors and flash and erase these in a round robin scheme. Of cause you than have to implement an algorithm which detects which sector is currently in use. In this case you can decide if you want to flash the sectors via JTAG or in system.
Best Regards,
Christian
Hi Dan,
What I meant is to use the four EEPROM sectors in Flash Bank 7 in a round robin scheme to extend the life of the flash cells.
So at the...
This would then of cause require that your firmware can detect which sector contains valid data, e.g. use a key or a CRC.
You can realize the program and erase cycles either with CCS/UniFlash or with In-System programming using the F021 Flash API.
Best Regards,
Christian