Цитата(KSN @ Jun 18 2009, 12:15)

Прилагаю файлы iar430a.7z и iar520.7z
Покажите исходник TX_SET8, возможно проблема в нем. Пока видно вот что:
Код
120 sum.dw = *((Uint32 __hugeflash *)(0x0000A2));
\ 0000008E EAE2 LDI R30, 162
\ 00000090 E0F0 LDI R31, 0
\ 00000092 BFFB OUT 0x3B, R31
\ 00000094 9187 ELPM R24, Z+
\ 00000096 9197 ELPM R25, Z+
\ 00000098 91A7 ELPM R26, Z+
\ 0000009A 91B6 ELPM R27, Z
121 data32 = *((Uint32 __hugeflash *)(0x0000A2));
Это чтение. Компилятор соптимизировал обе переменные в одну.
Далее развернут и встроен TX_SET8.
Это обработка одной копии:
\ ??CrossCallReturnLabel_28:
\ 0000009E 8786 STD Z+14, R24
\ 000000A0 8797 STD Z+15, R25
\ 000000A2 8BA0 STD Z+16, R26
\ 000000A4 8BB1 STD Z+17, R27
Это обработка второй. Дважды используется один байт из R25:
\ 00000000 8B82 STD Z+18, R24
\ 00000002 8B93 STD Z+19, R25
\ 00000004 8B94 STD Z+20, R25
\ 00000006 8BB5 STD Z+21, R27