Соответствует ли микроконтроллер PIC16f877a системе порядка байтов с прямым порядком байтов? - PullRequest
1 голос
/ 09 июля 2020

Я скомпилировал этот простой код на компиляторе XC8 и загрузил шестнадцатеричный файл в Picsimlab - плату симулятора (плата 4) с микроконтроллером PIC16f877a.

    unsigned int x = 1;
    char *ptr = (char *) &x;

    if (*ptr == 1)
    {

        clcd_print("little Endian", LINE1(0));
    }
    else
    {
        clcd_print("big Endian", LINE1(0));
    } 

вывод: little endian

Итак, можем ли мы сделать вывод, что компилятор Xc8 следует системе прямого порядка байтов для программирования PIC16f877a? Означает ли это также, что PIC16f877a сохраняет переменные в своей памяти данных, используя систему упорядочивания байтов с обратным порядком байтов? *

1 Ответ

6 голосов
/ 09 июля 2020

Посмотрите руководство пользователя компилятора XC8 . В главе 5.4.2 вы могли прочитать о порядке байтов целочисленных переменных:

Все целочисленные значения представлены в формате с прямым порядком байтов с младшим значащим байтом (LSB) в нижнем адресе

Little endian используется по умолчанию и используется только endianism для всех x c компиляторов.

Семейство PIC16 - это 8-битный контроллер, поэтому сам контроллер не имел заботиться о порядке байтов.

...