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

 
 
> Вычисления контрольной суммы векторов прерывания, действительная сигнатура
TanT
сообщение Feb 20 2009, 05:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



И снова здравствуйте, возникла недопонимаение по поводу вычисления контрольной суммы векторов прерывания (LPC2378), дословно "Criterion for valid user code: The reserved ARM interrupt vector location (0x0000 0014)
should contain the 2’s complement of the check-sum of the remaining interrupt vectors.
This causes the checksum of all of the vectors together to be 0."

Просматриваю рабочий код с помощью FlashMagic , суммирую вектора прерывания ноль никак не получается. Собственно может я не то суммирую, поправьте, если ошибаюбсь: вектора прерывания - 4х байтные расположенны по адресам 0х00, 0х04, 0х08, 0х0С, 0х10, 0х14(зарезервирован - хранит действительную сигнатуру), 0х1С. В сумме должны дать ноль? unsure.gif

Прикрепленное изображение


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Rusoil
сообщение Feb 20 2009, 06:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-01-09
Пользователь №: 43 695



Алгоритм: суммируем 7 векторов(7х4байта) и потом от 0х0 отнимаем полученное число.

__vector:
00000000 E59FF018
__undef_handler:
00000004 E59FF018
__swi_handler:
00000008 E59FF018
__prefetch_handler:
0000000C E59FF018
__data_handler:
00000010 E59FF018
__vector_0x14:
00000014 B9206E50

__irq_handler:
00000018 E51FF120
__fiq_handler:
0000001C E59FF018


Cумма семи векторов = 0x46DF91B0.
0x00000000 - 0x46DF91B0 = B9206E50.

Сообщение отредактировал Rusoil - Feb 20 2009, 06:31
Go to the top of the page
 
+Quote Post
TanT
сообщение Feb 20 2009, 08:47
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Rusoil, спасиб, благодаря вашему примеру нашёл глюк в программке, которой считал сумму. суммировал вектора не стого конца, получал естественно бредятину. biggrin.gif


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:41
Рейтинг@Mail.ru


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