I have an Arduino UNO R2 containing an atmega8u2 for the bootloader(recognized by FLIP as at90usb82). Due to the fact that there is no pre-compiled firmware version(HEX file) for this specific microcontroller, I tried to compiled it myself on windows using the following installation:

Retrieving EMUG29PS4 5.8 source code from git and running "make all" through winZsh using the following configuration:

MCU = at90usb82
ARCH = AVR8
BOARD = NONE
F_CPU = 16000000

It successfully compiled but before proceeding to flash the microcontroller I tried to compile for an already existing MCU(atmega32u4) to verify that the HEX I produced is identical to the pre-compiled 5.8 firmware provided in git.

After compilation completed I noticed that my produced HEX file is not identical to atmega32u4.hex
Thus, I'm wondering if there is any other configuration settings that I'm missing than changing the MCU parameter.

Hi,
The reason for the differences is that I compile with a difference gcc version on a different operating system.
I compile on Linux Mint 18.1 with the avr-gcc compiler provided in the official repository.

I will try flashing the ones I produced and let you know if it worked for at90usb82

However, it's funny that both in my Windows and Linux setup I produce the same hex files using different gcc version.
How do you explain that?It seems like source code is different..I find partial matches within the compiled HEX files, meaning that some part of the code is he some and some other is not.