применяйте одинаковое выравнивание в программе для MSP и в программе на РС.
Про компилер от TI сказать ничего не могу, для MSP использую ИАР.
Для программ в контроллер и в РС используется один и тот-же заголовочный файл с описанием применяемых данных.
Описывать данные приблизительно так:
Перед описанием выравнивание делаете как надо, после - возвращаете назад.
Не делайте для MSP выравнивание по байтам (#pragma pack( 1 )) - код будет толстый и плохой
Код
/* -------------------------------------------------------------------------------------------------------- **
* Директива "#pragma pack()" работает одинакого в "MSP430 IAR C/EC++ Compiler" и "Borland C++Builder" и "VC"
* -------------------------------------------------------------------------------------------------------- */
#pragma pack( 2 ) // выравнивание по 2-м байтам - используем это выравнивание, в MSP дает оптимальный код
// ДЛЯ ВСЕХ КОМПИЛЯТОРОВ!!! Если несколько char-ов подряд в структуре, то компилятор размещает char-ы компактно,
// с выравниванием по байтам, только последний нечетный выравнивает по словам!
#define flt_cnt 4 // Количество каналов, обрабатываемых фильтром
#define bas_cnt 3 // Количество основных каналовавтокоррекций и т.д.
typedef struct // Константы, меняемые при регулировке
{ unsigned short Firm_number; // заводской номер прибора
unsigned short Firmware_ver; // Версия программного обеспечения прибора (printf( "\fВерсия программного\nобеспечения: v %x.%02x", ( Firmware_ver >> 8 ), Firmware_ver & 0xff );)
double Ku[flt_cnt]; // чувствительность по всем каналам
float Pr_ekv;
double M_press;
float accuracy_gase[bas_cnt]; // округление при выводе
float auto_zero_val[bas_cnt];
ser_io_koef net_param;
Temp_norma T_norma;
press_difference Press_diff;
FLAG ini_flag;
} Flash_Constant;
#pragma pack() // выравнивание по умолчанию