Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенести checksum, в начало
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
pokk
Считаю CRC от 0x08000100 до 0x0803FFFC, и checksum в конце ложиться.
Linker:
Код
place at address mem:__ICFEDIT_region_ROM_end__-3 { readonly section .checksum };

Тут считается, все равно и сходится с программный расчетом.

Теперь, хочу что бы рассчитанное значение checksum положилось по адресу 0x08000000
(это типа шапка для бутлодера)
Меняю в ликере:
Код
place at address mem:__ICFEDIT_region_ROM_start__ { readonly section .checksum };

И получаю ошибку IAR, о том что диапазон рассчитываемой checksum не делиться на 4 wacko.gif а раньше почему делилось ?
Цитата
ielftool error: The checksum range must be divisable by 4 in order to match the checksum unit size.
Error while running ielftool "--fill" "0xFF;0x8000100-0x803fffc" "--checksum" "__checksum:4,crc32:Li,0xffffffff;0x8000100-0x803fffc" "--verbose" "C:\STM32_project\Workspace\.........


Про какой диапазон он ругается ?
jcxz
Цитата(pokk @ Jun 15 2018, 12:23) *
Про какой диапазон он ругается ?

Декрементируйте 0x0803FFFC.
pokk
А раньше почему, он не ругался ? Ведь я же диапазон не трогал совсем, или он как-то изменился из за того что я изменил секцию .checksum ?
jcxz
Цитата(pokk @ Jun 15 2018, 14:50) *
А раньше почему, он не ругался ? Ведь я же диапазон не трогал совсем, или он как-то изменился из за того что я изменил секцию .checksum ?

Без понятия. Вы говорите ему использовать CRC32 (он при этом считает 32-битными словами) и в то же время почему-то задаёте диапазон некратный 4 байтам. Так что он всё правильно ругается.
scifi
Цитата(jcxz @ Jun 15 2018, 15:23) *
Вы говорите ему использовать CRC32 (он при этом считает 32-битными словами) и в то же время почему-то задаёте диапазон некратный 4 байтам. Так что он всё правильно ругается.

Это что-то новое. CRC-32 считается побайтово. Другое дело, что, например, аппаратный блок CRC32 у STM32 умеет только по 4 байта. В общем, мимо кассы.
jcxz
Цитата(scifi @ Jun 15 2018, 15:35) *
Это что-то новое. CRC-32 считается побайтово. Другое дело, что, например, аппаратный блок CRC32 у STM32 умеет только по 4 байта. В общем, мимо кассы.

Это новое уже лет 10 как, не меньше. rolleyes.gif
По-байтно он будет считаться если ему указать это делать по-байтно. А ТС указывает это делать словами по 32 бита.
И вот какой там блок в STM32 - это точно мимо кассы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.