4.2.5 Signatures

A signature value can be used by programming software to verify the program was built for the intended device before it is programmed.

Signatures are specified with each device and can be added to your program by simply including the <avr/signature.h> header file. This header will declare a constant unsigned char array in your code and initialize it with the three signature bytes, MSB first, that are defined in the device’s I/O header file. This array is then placed in the .signature section in the resulting linked ELF file. This header file should only be included once in an application.

The three signature bytes used to initialize the array are these defined macros in the device I/O header file, from MSB to LSB: SIGNATURE_2, SIGNATURE_1, SIGNATURE_0.