Всем привет!
И снова у меня проблемы с 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, та же ошибка. Гуглила, не помогло(((
Что я делаю не так?