
Dear Guennadi Liakhovetski,
In message Pine.LNX.4.64.0809030014190.12823@axis700.grange you wrote:
If you were first setting the flag to "invalid, write in progress", then wrote the environment, then reset the flag to "valid, write completed successfully", then yes, writing per one write would be essentially different.
But that's exactly what we are doing. The flag value for "invalid, write in progress" is 0xFF and is set as soon as we start to destroy the valid data by erasing the flash.
In short, I think, CRC provides sufficient protection of data integrity.
CRC32 is not a perfect test. Yes, it's good enough for most ordinary cases, but when we can design in additional robustness we should do this. And we should not give up what we already have without very good reasons.
Best regards,
Wolfgang Denk