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

 
 
> Error[Lc003]: IAR for ARM, попытка посчитать CRC
Мария Е
сообщение Oct 1 2014, 14:02
Сообщение #1


Участник
*

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



Всем привет!

И снова у меня проблемы с crc. Теперь с IAR ARM.
Пыталась двумя способами: через меню линкера и через файл линкера.
Через меню: не сходится с программным расчетом.
Что пробовала: разные алгоритмы: CRC16, CRC32 и разные настройки (Reverse, initial value и т.д.)
Код для программного расчета брала из EWARM IAR C/C++ Development Guide
Что непонятно: как указывать диапазон адресов из которых вычисляется CRC? (есть подозрение, что это несовпадение связано именно с несовпадением диапазонов данных, которые считаются) Совпадает ли он с диапазоном для Fill unused code memory? А если нет, то как его настроить, чтобы вычислялся только по коду, а не по пустому месту?
Через файл icf: постоянно возникает ошибка Error[Lc003]: expected "check", "define", "do", "export", "if", "include", "initialize", "keep", "place", or a placement label, D:\IAR_projects\ARM\concentrator_RE013_M0+\samd20g16_flash.icf 78
В icf файле определяю блок CHECKSUM, и пишу следующее из EWARM IAR C/C++ Development Guide
ielftool --fill=0xdd; 0x00000000 – 0x00010000;
--checksum=__checksum:2,crc16;0x00000000 – 0x00010000 concentrator_RE013_M0+.out.temp concentrator_RE013_M0+.out.
Пробовала просто fill, та же ошибка. Гуглила, не помогло(((
Что я делаю не так? crying.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Мария Е
сообщение Oct 3 2014, 07:00
Сообщение #2


Участник
*

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



Спасибо за ответ!
Мне в нем еще разбираться и разбираться)))
У меня IAR 7.20 и контроллер SAM D20.

А у меня вот такие настройки:
Прикрепленное изображение


0x4000 это адрес начала application section. Если делать заполнение с 0 до 0x4000, а в bootloader считать CRC от массива с таким же заполнением и длиной, то все сходится. Как только добавляю хоть одну страницу кода, не сходится. Если считать только одну страницу кода, тоже не сходится. Если считать страницу кода после таблицы векторов прерываний, не сходится.


И еще вопрос от блондинки, никак не могу понять что значит aligment 4 для CRC16. Понимаю, что глупый вопрос, но вот так)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 3 2014, 12:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Мария Е @ Oct 3 2014, 13:00) *
0x4000 это адрес начала application section. Если делать заполнение с 0 до 0x4000,

Что значит "делать заполнение"?
Start address и End address - это начальный и конечный адреса области, для которой рассчитывается CRC.
А Fill pattern нужно ставить равным содержимому стёртой флеши. Обычно это FF или 00.

Цитата(Мария Е @ Oct 3 2014, 13:00) *
И еще вопрос от блондинки, никак не могу понять что значит aligment 4 для CRC16

То же самое, что и для чего-либо другого: величина выравнивания.
Go to the top of the page
 
+Quote Post



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

 


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


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