https://www.edgefx.in/know-about-boot-loader-technique-for-programming-microcontroller/