Firmware Files, what each files do?

Hello, I cannot differentiate between these files:

bootloader.bin → Pure binary of the bootloader (no firmware) - intermediate output.
bootloader.elf → Raw ELF file output from compile - intermediate output.
bootloader.dfu → DFU file of the bootloader - not useful.
firmware.bin → Pure binary of the firmware (no bootloader). OpenMV IDE’s BIN loader uses this.
firmware.elf → Raw ELF file output from compile - intermediate output.
firmware.dfu → DFU file of the firmware - not useful.
openmv.bin → Pure binary of the bootloader+firmware - intermediate output.
openmv.dfu → DFU file of the bootloader+binary. OpenMV IDE’s DFU loader uses this.
uvc.bin
uvc.dfu
uvc.elf

All I know is to upload only firmware.bin through the IDE.
When is bootloader, openmv and uvc used?
Also what are elf, bin and dfu files?

Sorry for stupid question.

Um, the comments you posted mention what most are for. They are just build outputs we keep track of. You needn’t think to much about what the other ones are. DFU files can be loaded via a DFU tool. The elf file is the raw compile output. And the bin file is the binary that can be flashed. The bootloader+firmware=openmv. The uvc is a different firmware image that puts the camera into UVC mode.