Выравнивание структуры и
явное определение типа позволит вам сделать задуманное
Код
typedef struct st_abc
{ unsigned int a;
unsigned char b;
unsigned long c;
} st_abc;
/* pragma pack(1) задает выравнивание размером в 1 байт */
#pragma pack(1)
st_abc abc;
#pragma pack()
/* pragma pack() задает выравнивание "по-умолчанию",
умолчание зависит от разрядности доступа к памяти
конкретного CPU/MCU */
st_abc *pABC=&abc;
....
for (unsigned int i=0; i<sizeof(abc); i++)
{ EEPROM_write(&EEPROM_dprg[i], (unsigned char *)&pABC[i]);
}
...
Не знаю только правильно ли я предположил, что EEPROM_dprg это тоже указатель? А так RTFM, то бишь Help ИАРа.