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

 
 
> CRC в IAR, не совпадает с программным расчетом
Мария Е
сообщение Jun 18 2013, 10:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 18-11-07
Из: Москва
Пользователь №: 32 424



Здравствуйте!
Использую IAR для AVR версии 6.3.3.1990
МК xmega32D4.
Для написания бутлоадера необходимо подсчитывать CRC прошивки. Хочу это сделать средствами линкера.
Прописываю в настройках:
Прикрепленное изображение


Рассчитываю программно в соответствии с документацией на линкер IAR
CODE

unsigned long ChecksumStart = 0x0000;
unsigned long ChecksumEnd = 0x8FFD;
...
unsigned short slow_crc16(unsigned short sum, unsigned char *p,unsigned int len)
{
while (len--)
{
int i;
unsigned char byte = *(p++);
for (i = 0; i < 8; ++i)
{
unsigned long osum = sum;
sum <<= 1;
if (byte & 0x80)
sum |= 1;
if (osum & 0x8000)
sum ^= 0x1021;
byte <<= 1;
}
}
return sum;
}
...
unsigned short calc = 0;
// Run the checksum algorithm
calc = slow_crc16(0, (unsigned char *) ChecksumStart,(ChecksumEnd - ChecksumStart+1));
// Rotate out the answer
unsigned char zeros[2] = {0, 0};
calc = slow_crc16(calc, zeros, 2);
...


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

P.S. Видела подобные проблемы и их обсуждения на форуме, но не поняла, есть ли решение

Сообщение отредактировал Мария Е - Jun 18 2013, 11:16
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Мария Е   CRC в IAR   Jun 18 2013, 10:20
- - Мария Е   Все заработало, когда переделала код в соответстви...   Jun 18 2013, 11:33
- - prottoss   Привет всем! Столкнулся с похожей проблемой. ...   Feb 1 2014, 08:14
|- - mempfis_   КодАлгоритм брал и из примеров в документации на л...   Feb 1 2014, 08:38
|- - prottoss   ЦитатаЯ вот таким кодом пользовался. В конце резул...   Feb 1 2014, 08:43
|- - mempfis_   Цитата(prottoss @ Feb 1 2014, 12:43) Да д...   Feb 1 2014, 08:54
|- - prottoss   Уважаемый mempfis_ Вы похоже не весь мой первый п...   Feb 1 2014, 09:06
|- - Сергей Борщ   Цитата(prottoss @ Feb 1 2014, 11:06) Прог...   Feb 1 2014, 09:17
|- - prottoss   Цитата(Сергей Борщ @ Feb 1 2014, 15:17) О...   Feb 1 2014, 09:25
||- - Сергей Борщ   Цитата(prottoss @ Feb 1 2014, 11:25) Еще ...   Feb 1 2014, 10:26
||- - prottoss   Цитата(Сергей Борщ @ Feb 1 2014, 16:26) Д...   Feb 1 2014, 10:46
|- - prottoss   Цитата(Сергей Борщ @ Feb 1 2014, 15:17) О...   Feb 1 2014, 14:52
- - Сергей Борщ   Значит вы и линкер считаете по разным алгоримам. И...   Feb 1 2014, 10:53
|- - prottoss   Цитата(Сергей Борщ @ Feb 1 2014, 16:53) З...   Feb 1 2014, 10:58
- - Сергей Борщ   Неужели сложно прогнать этот кусок прошивки (расче...   Feb 1 2014, 18:31
- - prottoss   Цитата(Сергей Борщ @ Feb 2 2014, 00:31) Н...   Feb 2 2014, 04:59
- - prottoss   Цитата(prottoss @ Feb 2 2014, 10:59) ...Н...   Feb 2 2014, 06:44
- - Сергей Борщ   Цитата(prottoss @ Feb 2 2014, 08:44) Прош...   Feb 2 2014, 09:00
- - prottoss   Цитата(Сергей Борщ @ Feb 2 2014, 15:00) А...   Feb 2 2014, 09:22


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

 


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


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