Hi Jiri,
Thanks for your swift response.
I'm trying to flash 8 bytes of data at a particular address.
I built the project, with release, and used to debug with the same release configuration, I can able to see the flash data, as I'm reading data from the same address and sending data over CAN so as to ensure for the successful flash. I can see the same in debug window too.
Now, if I try to flash the same compiled code from the bootloader, it is not able to flash the data as I can see the same old data. Everything else is working as expected. I can't see debug logic now as it is flashed from the bootloader.
I ensured the disabling interrupts using __asm("wrteei 0") ; command and the erase logic is as below.

Also, One thing I want to mention if I flash the debug code(110KB) (build with debug), which is having more size compared to the release version(77KB), I can able to see things working properly i,e, I can able to see the flash data as expected using CAN messages.
Kindly help in this regard.
Thanks in advance,
Raju