Перейти к содержанию
    

Если нужно просто убедиться в целости линий адресов и данных, то достаточно пройти память по диагонали, т.е. 4 КБ.

А можно поподробнее?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть блок шифрования то нельзя ли выполнить команду DES? Но что-то не могу найти сколько циклов она выполняется, врядли 1.

1/2 цикла однако...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Суммы действительно хватит, скорее всего. Для примера, в тех же LPC214x целостность расположенной во Flash таблицы векторов прерываний контролируется именно так. Размер таблицы - восемь 32-разрядных слов. Загрузчик после включения питания суммирует их и получает 32-разрядный же результат. Возможные биты переполнения отбрасываются, и в результате должен получиться ноль. Любой другой результат указывает на повреждение таблицы векторов ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если нужно просто убедиться в целости линий адресов и данных, то достаточно пройти память по диагонали, т.е. 4 КБ.

 

А можно поподробнее?

Делаете 12-разрядный цикл и в нём двумя одновременно инкрементируемыми 12-разрядными счётчиками половин адреса выбираете байты и циклически суммируете их. Можно для верности пройтись ещё по паре диагоналей, установив в эти счётчики любые другие начальные значения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть блок шифрования то нельзя ли выполнить команду DES? Но что-то не могу найти сколько циклов она выполняется, врядли 1.

Возможно ляпну ерунду, но у xmega есть некая "крипто-хрень". Может ее озадачить?

1/2 цикла однако...

Дааа, DES быстрая однако.

 

Надо подумать :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Быстрее и надёжнее стандартного табличного CRC вы вряд ли изобретёте. ИМХО.
Для xmega оно, конечно, офтопик, но вот вроде бы быстрее:

http://w..._generators.pdf

http://sourceforge.net/projects/slicing-by-8/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо подумать :rolleyes:

 

А что, если загрузить R0-15 некой константой

затем N раз

 

R0=R0 XOR FLASH[N*8+0]

R1=R1 XOR FLASH[N*8+1]

...

R7=R7 XOR FLASH[N*8+7]

DES 0

 

В результате в R0-R7 получится некий рандомайз и к томуже быстрее чем просто KC (на 8-мь байт 8-мь чтений и один DES) !

 

Но будет ли оное надёжнее чем просто КС ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По быстродействию устраивает одно чтение байта и одна (максимум 2) операция с ним.

Можно попробовать код Флетчера, где то на форуме это уже обсуждалось.

В кратце

 

unsigned Crc1 = 0; // для большей надежности можно инициализировать какой либо константой

unsigned Crc2 = 0;

for (int i=0; i<n;i++)

{ Crc1 += Buf; // пи сложении переносы не учитываются

Crc2 += Crc1;

}

Crc2++; // позволяет избежать ситуаций Crc1 == Crc2==0, или Crc1 == Crc2==-1;

При размере переменных 8 бит, гарантировано считается блок на 256 байт. Для бОльшего блока необходима бОльшая разрядность.

Насколько бОльше не скажу, применял для коротких сообщений (20-25 байт) в восьмибитнике, но думаю вики поможет в этом вопросе

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно тестить внешнюю флеш на предмет самопроизвольной порчи и правильности монтажа оной.

ИМХО Да скорее всего никак. Вы представьте , что у Вас нет , предположим ,одной линии данных или адреса и что Вы получите прочитав из Flash данные, ничего не зная какие они должны быть? Ну пусть Вы их проссумируете , но это уже не те данные. Соответсвенно не та сумма

Ваш проц изначально должен знать , сумму или CRC , например "разбросанных" по адресному пространству 10 - 100 ячеек FLASH и уже на основании этого Вы с уверенностью сможете сказать - есть или нет ошибки в монтаже или прошивке FLASH и при необходимости вычислить линию адреса или данных с которой есть проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ваш проц изначально должен знать , сумму или CRC ...

А почему Вы решили что он её не знает???

Именно её то он и знает и должен сравнить оную с вновь рассчитанной.

 

и при необходимости вычислить линию адреса или данных с которой есть проблема.

Для этого есть техники у них и лупы и тестера и паяльники, пусть ищут.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему Вы решили что он её не знает???

Именно её то он и знает и должен сравнить оную с вновь рассчитанной.

 

 

Для этого есть техники у них и лупы и тестера и паяльники, пусть ищут.

Ну наверное потому, что Вы об этом не писали. К тому же и сейчас не понятно , что он знает CRC или КС.

А уж облегчить жизнь техникам - святое

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К тому же и сейчас не понятно , что он знает CRC или КС.

Какая разница? Чего надо то и будет знать.

Вопрос лишь в том как ему побыстрее определить что ему правильно подключили правильно прошитую внешнюю ROM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот , что-то уже прояснилось.

Раз уж процу ещё ничего не известно, тогда Вы можете заложить 2 направления

1. "Быстрый" - предварительная оценка , здесь можно делать что захотите , но что бы быстро. Например КС по 1 байту из каждого адреса или вообще страницы

2. "Медленный" - CRC всей FLASH , если предварительный выдал ошибку , тут уже всё равно спешить не куда , кому-то с этим надо будет разбираться и что-то мне подсказывает , что не Вам :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. "Быстрый" - предварительная оценка , здесь можно делать что захотите , но что бы быстро. Например КС по 1 байту из каждого адреса или вообще страницы

Т.е. Вы предлагаете что бы процессор считал правильной с флешку у которой в каждой странице правильно записан лишь один единственный байт?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...