Locking ATmega328 from reading back the hex file I want to completely block the access to an ATmega328. How do I do this?

I have Atmel ICE, AVR studio 7 and Arduino.

Bootloader - optiboot_atmega328
Fuses(without lock) - 0x05, 0xDE, 0xFF

Steps I am executing:


Program fresh ATmega328 with bootloader using Atmel Studio.
Burn the fuses as mentioned above.
Go to Arduino and program the code.
Come back to Atmel Studio >> lock bits >> enable no further programming and verification.>> Fuse bits>> disable reset.


Is the above way OK? Or should I add something to the above?

I have programmed the fuse bit with "Further programming and verification disabled". I read out the hex file and it does not match even I programmed the same hex into a different micro and it didn't work. This seems to be fine. But will high Voltage programmer brick this wall?

Note: When I program the above fuse bit. I am unable to disable the RESET or SPI. It says one or more register differ

I want avoid a readback via high voltage programmer too.

I have too many people to steal my code I want to avoid it. Kindly help

Siddharth
Locking out programming prevents writing, and locking out verification prevents reading, via all programming methods.

Note that there is no way to prevent erasing the chip, which will clear both the lock bits and the flash.