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

 
 
 
Reply to this topicStart new topic
> Перенести checksum, в начало
pokk
сообщение Jun 15 2018, 09:23
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



Считаю 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\.........


Про какой диапазон он ругается ?

Сообщение отредактировал pokk - Jun 15 2018, 09:26
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 15 2018, 10:11
Сообщение #2


Гуру
******

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



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

Декрементируйте 0x0803FFFC.
Go to the top of the page
 
+Quote Post
pokk
сообщение Jun 15 2018, 11:50
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



А раньше почему, он не ругался ? Ведь я же диапазон не трогал совсем, или он как-то изменился из за того что я изменил секцию .checksum ?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 15 2018, 12:23
Сообщение #4


Гуру
******

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



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

Без понятия. Вы говорите ему использовать CRC32 (он при этом считает 32-битными словами) и в то же время почему-то задаёте диапазон некратный 4 байтам. Так что он всё правильно ругается.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 15 2018, 12:35
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



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

Это что-то новое. CRC-32 считается побайтово. Другое дело, что, например, аппаратный блок CRC32 у STM32 умеет только по 4 байта. В общем, мимо кассы.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 15 2018, 13:28
Сообщение #6


Гуру
******

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



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

Это новое уже лет 10 как, не меньше. rolleyes.gif
По-байтно он будет считаться если ему указать это делать по-байтно. А ТС указывает это делать словами по 32 бита.
И вот какой там блок в STM32 - это точно мимо кассы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th April 2024 - 23:29
Рейтинг@Mail.ru


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