Цитата(Сергей Борщ @ Apr 10 2015, 11:09)

Вы хотели сказать - использовать одну и ту же константу адреса для всех команд перехода из векторов? Экономия на спичках. выиграть максимум четыре слова программного кода, которые гораздо проще отыграть где-то в остальной программе.
Использовать не косвенный переход (LDR), а прямой - B. И выиграть не байты, а такты. Что в таких местах (прерывания) может быть очень актуально.
Мне случалось писать ISR с частотами до единиц МГц. Там каждый такт на счету.
Да и тут вроде разговор о прошивке сторонней программы посредством ISR. А как в той программе описана таблица векторов - заранее не известно я так понимаю.
Цитата(lavrik @ Apr 10 2015, 12:23)

Этот процесс (подсчета и перезаписи контрольной суммы векторов прерываний) будет автоматизирован при помощи софта, который будет подготавливать прошивку, переводя её из традиционного HEX-вида в необходимый и удобный для записи + ещё будет шифроваться ключом AES (пока не решили какой битности). Дешифровка прошивки будет производиться в программаторе, который будет знать ключ шифрования, программатор будет защищён от чтения.
Что помешает злоумышленнику воткнуться сниффером между вашим программатором и прошиваемым устройством и перехватить прошивку?
Цитата(Сергей Борщ @ Apr 10 2015, 11:09)

Каждый сам себе злобный Буратина. Или приведенный простой кусочек кода, который решает проблему контрольной суммы и делает программу чуть короче и быстрее, либо выдумываем себе трудность и героически ее преодолеваем. Имея на выходе результат заведомо худший, потому что добавляется один лишний переход здесь и какое-то дополнительное количество кода на чтение VIC_ADDRESS и дальнейшее ветвление по нему. Я не вижу абсолютно никакого смысла в этих лишних движениях в программе, кроме как сделать из маленькой быстрой программы большую медленную.
Какой лишний переход??? ISR располагаем сразу за таблицей прерываний, никакой VIC_ADDRESS не нужен (один источник прерывания).
Разработчики ARM7/9 видели смысл создать даже отдельный FIQ со своим контекстом только для того, чтобы как можно лучше минимизировать затраты времени на вход/выход в ISR.
А Вы не видите...
Для FIQ вообще всё шоколадно - вообще никакой
B даже не нужен - ISR для него сразу с вектора можно расположить, сдвинув вниз все остальные адреса.