8.2 Code Protection
Program memory code protection is controlled using the CP bit,
            while data EEPROM memory code protection is controlled using the
                CPD bit. When code protection is enabled, all program
            memory and Data EEPROM locations read as ‘0’. Further programming is
            disabled for the program memory and Data EEPROM, until a Bulk Erase operation is
            performed on the configuration memory region. Program memory and Data EEPROM can still
            be programmed and read during program execution.
The User ID locations and Configuration Bytes can be programmed and read out regardless of the code protection settings.
The only way to disable code protection is to use the Bulk Erase Program Memory command
            with bit 4 of the payload set to ‘1’. This will disable code protection
            and erase all memory locations.
