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

 
 
> CRC в IAR и определение конечного адреса, Подготовка к написанию BootLoadera
SasaVitebsk
сообщение Sep 22 2007, 10:24
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Доброго времени суток.
Где-то по топикам видел (не записал к сожалению), что IAR может автоматически генерить и вставлять CRC в конец проги. Хочу свой BootLoader написать и там это мне обязательно понадобится. Отсюда вопросы.
1) Как и где эту опцию включить в IAR.
2) Как из проги обратится к этой CRC (видимо какая то глобальная переменная есть, которая LINKером генерится)
3) Какая формула CRC, а лучше таблица или п/п.

Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vladimir_ad
сообщение Sep 26 2007, 13:40
Сообщение #2





Группа: Новичок
Сообщений: 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 *) использовали.
;-)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 26 2007, 20:29
Сообщение #3


Гуру
******

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



Цитата(vladimir_ad @ Sep 26 2007, 16:40) *
А что, iar уже прямо так данные из flash берет?
Раньше для этого unsigned char __load_program_memory(unsigned char __flash *) использовали.
;-)
Даже и не сообразил сразу что ответить... Уже года 4 как.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
vladimir_ad
сообщение Sep 27 2007, 08:51
Сообщение #4





Группа: Новичок
Сообщений: 5
Регистрация: 25-09-07
Пользователь №: 30 828



Цитата(Сергей Борщ @ Sep 27 2007, 00:29) *
Даже и не сообразил сразу что ответить... Уже года 4 как.
Ух, ты! Как я проспал! Всегда использовал свои функции для загрузки. Спасибо!

В коде примера Сергея есть:
Цитата
crc ^= ((uint16_t)*ptr++) << 8;
Имхо при сдвиге crc биты должны добавляться по одному, а не байтами.


Мои загрузчики считают crc всей памяти секции приложения. В конце секции лежит crc и другие данные записанные моей внешней программой.
+Нет разницы чем компилировать приложение и на каком языке написано.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 27 2007, 09:10
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
vladimir_ad
сообщение Sep 27 2007, 10:51
Сообщение #6





Группа: Новичок
Сообщений: 5
Регистрация: 25-09-07
Пользователь №: 30 828



Цитата(Сергей Борщ @ Sep 27 2007, 13:10) *
Дальше вы видите цикл по восьми битам. ....
Вы не поняли. Пример не работает - crc всегда 0.
;-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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