I was thinking of optimizing flashing microcontrollers. I just thought in case if I make very minute change in my software can I flash only that part of software where the changes happened. It will save time and also the flash memory in terms of number of cycles.
How do you plan to find which parts changed? It could be a few tweaks here and there and I don´t think any standard tool will be able to do that, and if it will most likely require a lot of scripting to make work.
Nearly all software changes end up changing the length of the code, so that all the code after the change would have to me moved up or down anyhow.
More complicated software will put sections of code into blocks for different functions, and those can be flashed separately. Sometimes you get blocks for data separate from code, and if there is a bootloader, that can't overwrite itself. However, any structure like that reduces flexibility.
More than the write cycles I want to save time. For flashing it takes about some 5 minutes. The numbers will be in hundreds. More than anything else I want to know the feasibility.
5 minutes? Are you writing 10GB?
Really, please tell us what MCU you are writing to, and with what kind of interface you are using.
Bevause writing even a largish MCU flash (which I would consider 1MB) in 300s is so damn slow that some would call it a glacial speed.
I am sorry I will verify again since I have two separate tools for flashing. Theoretically how to estimate the time for flashing for example 500kb at a baudrate of 250kbps. The interface I am using is CAN. The hardware is freescale.