crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику larry ::: Спасибо сказали: 8 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
4.1.2018, 17:45 Сборка Qt для Raspeberry PI zero
Добрый день, форумчане.
Пытаюсь собрать Qt 5.8 для кросс компиляции для Raspberry Pi zero по мануалу https://wiki.qt.io/RaspberryPi2EGLFS. Вернее собрать-собрал, но нельзя собрать программу - не может найти файл stubs-soft.h. Насколько я понял он генерируется при добавлении -mfloat-abi=softfp. Я просмотрел все мейкфайлы в модулях, но там указан -mfloat-abi=hard, т.е. для аппаратной поддержки, а моя плата поддерживает только софтварная...Как мне задать, что используется софтварная? Пытался передать в ./configure, но это генерирует ошибку...Собираю под Linux Mint 18.3 (в ней пока нуб, но учусь).
Подскажите плиз, как сделать рабочую сборку....Спасибо.

:) походу это я натупил, т.к. тулчейн для сборки предназначен для железа с поддержкой хардварной плавающей точки. Буду пробовать дальше....
97WzugSKd31, DaLgAMYeVr1, gHzcXItj3a1, hxr3Wawd9g1,
18.11.2017, 8:38 [РЕШЕНО]CRC16 для Modbus
Спасибо большое за проверку. Буду проверять где лохонулся....тоже пришел к такому варианту, т.к. уже перелопатил много вариантов.
DaLgAMYeVr1,
17.11.2017, 21:55 [РЕШЕНО]CRC16 для Modbus
Добрый день, форумчане.
Возник вопрос по расчету контрольной суммы для modbus. Нашел такую функцию:

quint16 crc(QByteArray& data, quint8 size)
{
    uint crc = 0xFFFF;
    
    for (int pos = 0; pos < size; pos++)
    {
        crc ^= (quint16)data.at(pos);          // XOR byte into least sig. byte of crc
        
        for (int i = 8; i != 0; i--)
        {    // Loop over each bit
            if ((crc & 0x0001) != 0)
            {      // If the LSB is set
                crc >>= 1;                    // Shift right and XOR 0xA001
                crc ^= 0xA001;
            }
            else                            // Else LSB is not set
                crc >>= 1;                    // Just shift right
        }
    }
    // Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
    return crc;
}


Но никак не могу понять, почему в одном случае расчитывает правильно, а в другом не правильно.
Например отправляю запрос устройству следующего вида:

// crc = 71D9
    const char* data = "01040040000a";


и функция возвращает результат, который закоментирован (в калькуляторе тоже самое, т.е. все верно).

Получаю ответ на этот запрос:

// crc = D0AE
const char* data = "0104143a11e6ee3b16c44d39e24257381730ba3d862437";


но расчет контрольной суммы не совпадает...по калькулятору совпадает как в комментарии....

В чем может быть трабла?
Спасибо.
97WzugSKd31, 9or6UxhWRa1, DaLgAMYeVr1,

RSS Текстовая версия Сейчас: 24.4.2024, 6:25