En las notas de uso del bootloader dice:
In addition to the above, make certain that all configuration bit settings
between the bootloader firmware project, and the application firmware project,
match 100% exactly
Al cambiar los bits de configuración el bootloader si puede dejar de funcionar por diferentes razones, por ejemplo si configuras el oscilador usb a un valor diferente ya no se podra comunicar con la pc, etc. Por lo que se recomienda tener los mismos en el programa de aplicación, sobretodo para cuando se trabaja sin bootloader todo funcione igual.
Unlike previous PIC18 microcontrollers, devices of the PIC18F87J50 family do not use persistent memory registers to store configuration information. The configuration bytes are implemented as volatile memory, which means that configuration data must be programmed each time the device is powered up
Por ello, un bootloader por mucho que quiera no va a poner grabar nada en el config byteEl USB HID bootloader de microchip y muchos otros tienen esa opción de permitir la programación de los bits de configuración, Tal como se muestra en la imagen. Y revisando un poco el codigo fuente del firmware puedes ver la función que permite realizar la programación, utilizando los registros para el acceso a la flash.
void WriteConfigBits(void) //Also used to write the Device ID
{
static unsigned char i;
#ifdef __XC8__
TBLPTRU = 0x30;
TBLPTRH = (uint8_t)((uint16_t)PacketFromPC.Address >> 8);
TBLPTRH = (uint8_t)(PacketFromPC.Address);
#else
TBLPTR = (uint24_t)PacketFromPC.Address;
#endif
for(i = 0; i < PacketFromPC.Size; i++)
{
TABLAT = PacketFromPC.Data[i+(REQUEST_DATA_BLOCK_SIZE-PacketFromPC.Size)];
#ifdef __XC8__
#asm
tblwt
#endasm
#else //must be C18 instead
_asm tblwt _endasm
#endif
EECON1 = 0b11000100; //Config bits programming mode
UnlockAndActivate(CORRECT_UNLOCK_KEY);
#ifdef __XC8__
#asm
tblrdpostinc
#endasm
#else //must be C18 instead
_asm tblrdpostinc _endasm
#endif
}
}
Para cambiarlo va a necesitar si o si un pickit.Ahora que el bootloader no esta operativo, si va a necesitar un programador para volver a grabarlo.
Esto lo digo desconociendo si en ese micro es escribible el config byte en tiempo de ejecución.No solamente ese micro, esto se puede hacer en todos aquellos que permitan su autoprogramación. " Self-Programmable under Software Control".