Взял HEX.
Дизассемблировал его с помощью AVR Studio.
А потом опять откомпилировал.
В результате получил HEX отличный от исходного.
Анализ показал, что студия в командах lds и sts младший байт адрес обнуляла. Хотя в исходном HEX-е эти байты отличны от нуля.
Короче, пришлось ручками править анализируя разницу в исходном и полученном HEX-ах