Differences between compiled files

Hi,

I have compiled PX4 from the source and see that there are several files for the firmware.
In my case, those are

  • cubepilot_cubeorange_default.bin
  • cubepilot_cubeorange_default.elf
  • cubepilot_cubeorange_default.map
  • cubepilot_cubeorange_default.px4

They are quite different in terms of file size (e.g., .elf is 42 MB while .px4 is 1.8 MB).

What are the other differences between them?
Which one ends up uploaded to the board (I guess .px4)?
What are the purposes of generating the others?

Thank you