is there any logical error here ?? as i see the values inside the FMD and FMA registers changes correctly but for FMA value doesnt change
#define CMT 3
#define KEY_value 0x71D5
#define KEY_shift 16
void progBootCfg_reg(void)
{
// Write the desired boot configuration to the FMD register
FMD =0x00003C02 ; // configure the GPIO port and pin and polarity of pinb to check after booting to execute the bootloader if polarity is true
// Write the address of the register which we wish to commit from table page 533 in data sheet
FMA = 0x75100000;;
// Write to non-vol 0x75100000;atile register (KEY + COMT bit)
FMC |= ( (KEY_value <<KEY_shift) | (1<<CMT) ) ;
//Poll COMT bit in the FMC register until the commit operation is complete it returns zero by hardware when last commit is done
while( (GET_BIT(FMC,0)==1) && ( GET_BIT(FMC,3)==1 ) );
}