8.11 LOCK - Memory Sections Access Protection
The device can be locked so that the memories cannot be read using the Unified Program and Debug Interface (UPDI). Locking protects Flash (all Boot Code, Application Code, and Application Data sections), SRAM, and the EEPROM, including the FUSE data, thereby preventing application data or code from being read through the debugger interface. Regular memory access from within the application remains enabled.
The CPU and UPDI can read the Lock Key, but it can be programmed or cleared only by UPDI. The device is locked by writing an invalid key to the Lock Key (LOCK.KEY) register.
| Memory Section | CPU Access | UPDI Access | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Flash | Yes | Yes | Yes | Yes |
| SRAM | Yes | Yes | Yes | Yes |
| EEPROM | Yes | Yes | Yes | Yes |
| SIGROW | Yes | No | Yes | No |
| BOOTROW | Yes(2) | Yes(2) | Yes | Yes |
| USERROW | Yes | Yes | Yes | Yes |
| FUSE | Yes | No | Yes | Yes |
| LOCK | Yes | No | Yes | Yes |
| Registers | Yes | Yes | Yes | Yes |
| Memory Section | CPU Access | UPDI Access | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Flash | Yes | Yes | No | No |
| SRAM | Yes | Yes | No | No |
| EEPROM | Yes | Yes | No | No |
| SIGROW | Yes | No | No | No |
| BOOTROW | Yes(2) | Yes(2) | No | No |
| USERROW | Yes | Yes | No | Yes(3) |
| FUSE | Yes | No | No | No |
| LOCK | Yes | No | No | No |
| Registers | Yes | Yes | No | No |
- Read operations marked No in the tables may appear successful, but the data are invalid. Therefore, any attempt at code validation through UPDI will fail for these memory sections.
- Write and read operations are possible only from the Boot section.
- In Locked mode, the USERROW can be written using the Fuse Write command, but the current USERROW values cannot be read.
