Программирование PC gcc: заметки по использованию Mon, May 01 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


gcc: заметки по использованию Печать
Добавил(а) microsin   

Свободный компилятор gcc на платформе Windows входит в состав пакета MinGW. Здесь я решил записать все интересное, с чем довелось столкнуться.

1. Тип int является 32-разрядным (4 байта), short - 16-разрядным (2 байта).

2. Порядок байт в слове - сначала идет младший байт, потом старший. Точно так же, как и у AVR gcc.

3. По умолчанию в структурах включено выравнивание переменных структуры на 2 байта. При этом в блоках памяти получаются "дырки", которые могут доставить неудобство в смысле несовместимости с платформами, где выравнивание отсутствует. Чтобы отключить выравнивание, нужно применить ключевое слово __attribute__ для переменных, размер типа которых больше байта, например:

typedef struct
{
    uchar AA;                                         //размер переменной 1 байт
    uint16_t LightLevelOn __attribute__ ((packed));   //размер 2 байта, отключаем выравнивание
    uint16_t LightLevelOff __attribute__ ((packed));  //2 байта, отключаем выравнивание
    uchar IntLight;                                   //1 байт
    uchar MotionDetect;                               //1 байт
    uchar LightTime;                                  //1 байт
    uchar RiseStep;                                   //1 байт
    uchar FallStep;                                   //1 байт
    uchar AdcGain;                                    //1 байт
    uint16_t CRC __attribute__ ((packed));            //2 байта, отключаем выравнивание
}tParams;
 

Добавить комментарий


Защитный код
Обновить

Top of Page