Hello.
We have an application that only ever makes use of protection level EEPROM_PROT_RW_LRO_URW, and it applies this level of protection soon after start-up if it notices that any blocks do not already have that level of protection.
On three devices (out of many), this start-up code has encountered an handful of assorted blocks that have protection level of EEPROM_PROT_NA_LNA_URW applied instead, even though we don't have any source code in our application that could make this change. An attempt to "downgrade" the protection level to the desired level of EEPROM_PROT_RW_LRO_URW on these particular units yields an error: EEPROM_RC_NOPERM (insufficient permissions).
Two questions (at least) come out of this:
- should I take any particular meaning from this impromptu change in block protection level - e.g. does it indicate that we have exhausted the available number of write cycles on this unit? - or is it more likely simply just some kind of random corruption?
- I don't see in the documentation if there is a sequence that should be followed when downgrading the protection level. Do I perhaps need to ensure that the block is unlocked before downgrading the protection level, or perhaps to I need to totally remove _all_ protection as an intermediate step before applying the wanted protection level?
Many thanks for any insights!