|
CRC в IAR и определение конечного адреса, Подготовка к написанию BootLoadera |
|
|
|
 |
Ответов
|
Sep 26 2007, 13:40
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-09-07
Пользователь №: 30 828

|
Цитата(igorAT @ Sep 24 2007, 17:12)  while(buf_size) { byte = (*buf); ... А что, iar уже прямо так данные из flash берет? Раньше для этого unsigned char __load_program_memory(unsigned char __flash *) использовали. ;-)
|
|
|
|
|
Sep 27 2007, 08:51
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-09-07
Пользователь №: 30 828

|
Цитата(Сергей Борщ @ Sep 27 2007, 00:29)  Даже и не сообразил сразу что ответить... Уже года 4 как. Ух, ты! Как я проспал! Всегда использовал свои функции для загрузки. Спасибо! В коде примера Сергея есть: Цитата crc ^= ((uint16_t)*ptr++) << 8; Имхо при сдвиге crc биты должны добавляться по одному, а не байтами. Мои загрузчики считают crc всей памяти секции приложения. В конце секции лежит crc и другие данные записанные моей внешней программой. +Нет разницы чем компилировать приложение и на каком языке написано.
|
|
|
|
|
Sep 27 2007, 09:10
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(vladimir_ad @ Sep 27 2007, 11:51)  Имхо при сдвиге crc биты должны добавляться по одному, а не байтами. Дальше вы видите цикл по восьми битам. Есть две схемы вычисления CRC, которые дают в итоге один и тот же численный результат. Нет разницы - добавлять по одному биту или сразу все. Более подробное объяснение с картинками мне попадалось у Б. Скляра в его "Цифровой связи". Цитата(vladimir_ad @ Sep 27 2007, 11:51)  Мои загрузчики считают crc всей памяти секции приложения. В конце секции лежит crc и другие данные записанные моей внешней программой. +Нет разницы чем компилировать приложение и на каком языке написано. Аналогично.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 27 2007, 10:51
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-09-07
Пользователь №: 30 828

|
Цитата(Сергей Борщ @ Sep 27 2007, 13:10)  Дальше вы видите цикл по восьми битам. .... Вы не поняли. Пример не работает - crc всегда 0. ;-)
|
|
|
|
Сообщений в этой теме
SasaVitebsk CRC в IAR и определение конечного адреса Sep 22 2007, 10:24 prottoss Цитата(SasaVitebsk @ Sep 22 2007, 18:24) ... Sep 22 2007, 10:30 zltigo Цитата(SasaVitebsk @ Sep 22 2007, 13:24) ... Sep 22 2007, 10:36 prottoss Processing
With the Processing options you can sp... Sep 22 2007, 10:57 SasaVitebsk Вроде понял
получилось
-J2,crc16,1,(CODE)E4-E6
Но... Sep 22 2007, 14:27 zltigo Можете завести свой сегмент и всегда линковать его... Sep 22 2007, 15:16  SasaVitebsk Цитата(zltigo @ Sep 22 2007, 18:16) Может... Sep 22 2007, 17:30   zltigo Цитата(SasaVitebsk @ Sep 22 2007, 20:30) ... Sep 22 2007, 17:40 SasaVitebsk Спасибо огромное. Sep 23 2007, 16:00 igorAT Доброго времени суток.
SasaVitebsk, если Вы разобр... Sep 24 2007, 13:12 Сергей Борщ Цитата(igorAT @ Sep 24 2007, 16:12) Кодvo... Sep 26 2007, 21:39 Waso Почему линкер при линковке требует больше места че... Nov 22 2007, 09:29 Сергей Борщ Цитата(Waso @ Nov 22 2007, 11:29) Почему ... Nov 22 2007, 11:03  Сергей Борщ Цитата(Сергей Борщ @ Nov 22 2007, 13:03) ... Nov 25 2007, 18:43 Waso Рецепт работает, благодарю!
Еще вопрос по CRC... Nov 27 2007, 09:13 Сергей Борщ Цитата(Waso @ Nov 27 2007, 11:13) В иаре ... Nov 27 2007, 11:01
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|