pokk 0 15 июня, 2018 Опубликовано 15 июня, 2018 (изменено) · Жалоба Считаю 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: а раньше почему делилось ? 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\......... Про какой диапазон он ругается ? Изменено 15 июня, 2018 пользователем pokk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Про какой диапазон он ругается ? Декрементируйте 0x0803FFFC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokk 0 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба А раньше почему, он не ругался ? Ведь я же диапазон не трогал совсем, или он как-то изменился из за того что я изменил секцию .checksum ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба А раньше почему, он не ругался ? Ведь я же диапазон не трогал совсем, или он как-то изменился из за того что я изменил секцию .checksum ? Без понятия. Вы говорите ему использовать CRC32 (он при этом считает 32-битными словами) и в то же время почему-то задаёте диапазон некратный 4 байтам. Так что он всё правильно ругается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Вы говорите ему использовать CRC32 (он при этом считает 32-битными словами) и в то же время почему-то задаёте диапазон некратный 4 байтам. Так что он всё правильно ругается. Это что-то новое. CRC-32 считается побайтово. Другое дело, что, например, аппаратный блок CRC32 у STM32 умеет только по 4 байта. В общем, мимо кассы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Это что-то новое. CRC-32 считается побайтово. Другое дело, что, например, аппаратный блок CRC32 у STM32 умеет только по 4 байта. В общем, мимо кассы. Это новое уже лет 10 как, не меньше. :rolleyes: По-байтно он будет считаться если ему указать это делать по-байтно. А ТС указывает это делать словами по 32 бита. И вот какой там блок в STM32 - это точно мимо кассы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться