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.
Hi Experts,
I have some Questions regarding the FEE Driver Configuration.
(Q1) The TMS570LC4357 hast 128kbyte of FEE with 32 Virtual Sectors. with each sector taking 4000byte of Space. When configuring data blocks in a Virtual Sector the whole 4000bytes minus the Virtual Sector Header and minus the Databblock Headers can be used. Which would mean that there is less Space for Data the more Datablocks are configured. Is this correct?
(Q2) If the goal would be to change only 1 Dataset in a Datablock, would it be possible to read the block, change the Dataset and then rewrite the Datablock without erasing it before rewriting?
(Q3) Would it be possible to modify the FEE Driver so it would be possible to write bytes to FEE without using Datablocks and Datasets or is this configuration necessary due to Hardware constraints?
Thank you and best regards,
Max
Hi Max,
(Q2) If the goal would be to change only 1 Dataset in a Datablock, would it be possible to read the block, change the Dataset and then rewrite the Datablock without erasing it before rewritin
The bank 7 (EEPROM) consists of 32 physical flash sectors. One virtual sector can contain one or more contiguous flash physical sectors. A minimum of 2 virtual sectors are required. For example:
The size of each virtual sector (VS) is 24Kbytes. The header of virtual sector is 32-bytes, and each data block includes a header of 24 bytes. You are correct, only 24KB-32-24*#ofBlock can be used for payload.
(Q2) If the goal would be to change only 1 Dataset in a Datablock, would it be possible to read the block, change the Dataset and then rewrite the Datablock without erasing it before rewriting?
If you write a data to a data block, the driver will check if the block number exists in the EEPROM. If the VS doesn't have this block #, the data will be written to the first empty location in the active VS. If this block already exists in the VS, and the data to be written is different from the data of the block # in the VS, the new data will be programmed to the first empty location in the active VS and marked as valid data block, the previous data block is marked as Invalid block.
You don't need to issue flash erase operation. The FEE driver will take care of VS erase and VS copy in background.
When the current VS doesn't have sufficient space to update a data block, it will switch to next VS and copy all the valid data blocks in the current VS to the new VS, and new VS will be marked as Active VS, and new data block will be written to this new Active VS. The previous VS will be marked as Ready for Erase and will be erased in background.
Q3) Would it be possible to modify the FEE Driver so it would be possible to write bytes to FEE without using Datablocks and Datasets or is this configuration necessary due to Hardware constraints?
It is not constrained by HW. This is the basic concept of the FEE driver.