реклама на сайте
подробности

 
 
> Кросскомпиляторный код, BCC и GCC
Злодей
сообщение Apr 30 2009, 07:41
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Вот такой вот код,
Код
inline uint32_t crc32_add( uint32_t crc, uint8_t byte  )
{
    crc ^= byte;
    
    for (uint8_t i=0; i<8; i++)
    {
        if (crc & 1)
    {
        crc = (crc>>1) ^ CRC32_POLYNOME;
    }
    else
    {
        crc >>= 1;
    }
    }
    
    return crc;
}

скомпилирован для двух платформ: BorlandCC для ПК и GCC для AVR.... На разных платформах разные результаты выполнения. Какими словами уточнить код, чтобы компиляторы наконец договорились?

Ещё два момента: я пока не знаю, кто из них на данный момент правильно работает. В борланде подключен \\avr\\include\\inttypes.h из WinAVR.

Спасибо smile.gif

Сообщение отредактировал Злодей - Apr 30 2009, 07:47
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Злодей
сообщение Apr 30 2009, 08:47
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Вчера пытался компилировать в GCC без оптимизации так он отказывался... Ставил везде-везде volatile - не помогало. В AVR Studio видно, что осталось от кода:

Код
uintX_t crc32_add( uintX_t crc, uint8_t byte  )
{
    crc ^= byte;
    uint8_t i = 8;
    do
    {
        crc >>= 1;
    }
    while(--i);

    return crc;
}

Вот этот кусок отсутствует полностью. Типа младший бит всегда 0 w00t.gif Нашлиииии! А как починить?
Код
if (crc & 1)
{
    crc = (crc>>1) ^ CRC32_POLYNOME;
}



Спасибо FormatCft, направил меня на путь истинный smile.gif

Сообщение отредактировал Злодей - Apr 30 2009, 08:54
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 30 2009, 09:40
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Злодей @ Apr 30 2009, 11:47) *
Вот этот кусок отсутствует полностью.

Йа Станиславский smile.gif Вы точно ходили, жмя F11 или смотрели *.lss или еще какую вредную шнягу ? biggrin.gif
Objdump доведет до коровьего бешенства.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Злодей   Кросскомпиляторный код   Apr 30 2009, 07:41
- - FormatCft   Цитата(Злодей @ Apr 30 2009, 13:41) Вот т...   Apr 30 2009, 07:44
- - MrYuran   А результат всегда одинаковый в обоих случаях? Код...   Apr 30 2009, 08:03
|- - Злодей   Цитата(MrYuran @ Apr 30 2009, 12:03) А ре...   Apr 30 2009, 08:09
|- - MrYuran   Цитата(Злодей @ Apr 30 2009, 12:09) Здесь...   Apr 30 2009, 08:16
|- - MrYuran   Цитата(Злодей @ Apr 30 2009, 12:47) Вчера...   Apr 30 2009, 09:19
- - Злодей   Помогите, пожалуйста исправить ошибку "left s...   Apr 30 2009, 09:46
|- - _Pasha   Цитата(Злодей @ Apr 30 2009, 12:41) Вот т...   Apr 30 2009, 09:46
|- - Злодей   Цитата(Злодей @ Apr 30 2009, 13:46) Помог...   Apr 30 2009, 10:04
|- - _Pasha   Цитата(Злодей @ Apr 30 2009, 13:04) Спаси...   Apr 30 2009, 10:20
- - alx2   Цитата(Злодей @ Apr 30 2009, 12:41) Вот т...   Apr 30 2009, 12:19
- - mdmitry   Часто необходимо приведение типа внутри кода (это ...   Apr 30 2009, 13:05
- - forever failure   Цитата(mdmitry @ Apr 30 2009, 19:05) Част...   Apr 30 2009, 14:49
|- - mdmitry   Цитата(forever failure @ Apr 30 2009, 18...   Apr 30 2009, 20:47
- - alx2   Цитата(Злодей @ Apr 30 2009, 12:41) На ра...   May 6 2009, 10:46
|- - Злодей   Цитата(alx2 @ May 6 2009, 14:46) Чем все ...   May 7 2009, 16:03
|- - Сергей Борщ   Цитата(Злодей @ May 7 2009, 19:03) Извини...   May 7 2009, 18:03
|- - alx2   Цитата(Злодей @ May 7 2009, 21:03) Пробле...   May 8 2009, 10:28
- - Злодей   Дело в том, что код у меня - индийский Эти сдви...   May 8 2009, 10:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016