Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Checksum
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
серый волк
я прошил и считал флешку при помощи FLASH Magic.
по адресу 0х14 заметил , что он уже туда засунул правильную checksum.
Вопрос к умельцам, покажите пож-та на простом примере, как я могу
в качестве изучения матчасти проверить что эта checksum реально правильная.
Спасибо
zltigo
Цитата(серый волк @ Sep 14 2007, 19:25) *
Вопрос

Ответ есть в документации. Просто сумма little endian всех векторов должна быть равна 0.
Alex03
серый волк И не плохо было бы в подобных вопросах камень упоминать или хотя бы "LPC", а то телепотов тут не так много. smile.gif
alexander55
Цитата(серый волк @ Sep 14 2007, 20:25) *
я прошил и считал флешку при помощи FLASH Magic.
по адресу 0х14 заметил , что он уже туда засунул правильную checksum.
Вопрос к умельцам, покажите пож-та на простом примере, как я могу
в качестве изучения матчасти проверить что эта checksum реально правильная.
Спасибо

В windows есть калькулятор инженерный, а там есть HEX представление. Можно, конечно, и на бумажке сложить.
серый волк
LPC2378

до вот что пытался складывать что то не как .
Наверно ручонки кривенькие.
alexander55
Цитата(серый волк @ Sep 17 2007, 18:48) *
до вот что пытался складывать что то не как .
Наверно ручонки кривенькие.

Маленький пример произвольный.
Пусть дамп первых 32 байт с 0x0 адреса следующий
00 01 02 03 04 05 06 07
08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f
03020100 + 07060504+....+1f1e1d1c =....
В калькуляторе учитываете только 8 цифр, т.е. если
800000000 - это 00000000.
Я считаю только один раз (для того, чтобы знать с чем работаю).
amw
Цитата(alexander55 @ Sep 18 2007, 08:08) *
Маленький пример произвольный.
Пусть дамп первых 32 байт с 0x0 адреса следующий
00 01 02 03 04 05 06 07
08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f
03020100 + 07060504+....+1f1e1d1c =....
В калькуляторе учитываете только 8 цифр, т.е. если
800000000 - это 00000000.
Я считаю только один раз (для того, чтобы знать с чем работаю).

Просумировать семь 32 разрядных слов (существующие вектора) и по пустому адресу (который не задействоват под вектор) записать ноль минус полученная сумма.
Итог таков, BootLoader в LPC просто сумирует все восемь слов и если результат равен нулю, то есть прошивка, иначе - запускать BootLoader.
серый волк
Господа, спасибо!
извиняйте за опоздание был в отпуске, на солнышко глядел да резет мозгов или что там вместо них делал...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.