I am trying to understand the binary format of avr-objcpy,
In the man is written:
objcopy can be used to generate a raw binary file by using an output target of binary (e.g., use -O binary). When objcopy a raw binary file, it will essentially produce a memory dump of the contents of the input object file. symbols and relocation information will be discarded. The memory dump will start at the load address of the lowest section copied into the output file.
I tried it and the length of the file was 0x311e (exactly as the data size as I saw in .map file).
My question is how the avrdude knows what is the lowest address to start writing from? - if the bin file size is 0x311e and the data to be written size is 0x311e, there are no room for "meta data".