zombi 0 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Если нужно просто убедиться в целости линий адресов и данных, то достаточно пройти память по диагонали, т.е. 4 КБ. А можно поподробнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Если есть блок шифрования то нельзя ли выполнить команду DES? Но что-то не могу найти сколько циклов она выполняется, врядли 1. 1/2 цикла однако... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Суммы действительно хватит, скорее всего. Для примера, в тех же LPC214x целостность расположенной во Flash таблицы векторов прерываний контролируется именно так. Размер таблицы - восемь 32-разрядных слов. Загрузчик после включения питания суммирует их и получает 32-разрядный же результат. Возможные биты переполнения отбрасываются, и в результате должен получиться ноль. Любой другой результат указывает на повреждение таблицы векторов ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 212 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Если нужно просто убедиться в целости линий адресов и данных, то достаточно пройти память по диагонали, т.е. 4 КБ. А можно поподробнее? Делаете 12-разрядный цикл и в нём двумя одновременно инкрементируемыми 12-разрядными счётчиками половин адреса выбираете байты и циклически суммируете их. Можно для верности пройтись ещё по паре диагоналей, установив в эти счётчики любые другие начальные значения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sirko 0 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Возможно ляпну ерунду, но у xmega есть некая "крипто-хрень". Может ее озадачить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Если есть блок шифрования то нельзя ли выполнить команду DES? Но что-то не могу найти сколько циклов она выполняется, врядли 1. Возможно ляпну ерунду, но у xmega есть некая "крипто-хрень". Может ее озадачить? 1/2 цикла однако... Дааа, DES быстрая однако. Надо подумать :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Быстрее и надёжнее стандартного табличного CRC вы вряд ли изобретёте. ИМХО.Для xmega оно, конечно, офтопик, но вот вроде бы быстрее: http://w..._generators.pdf http://sourceforge.net/projects/slicing-by-8/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 26 августа, 2012 Опубликовано 26 августа, 2012 · Жалоба Надо подумать :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) ! Но будет ли оное надёжнее чем просто КС ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 27 августа, 2012 Опубликовано 27 августа, 2012 · Жалоба По быстродействию устраивает одно чтение байта и одна (максимум 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 байт) в восьмибитнике, но думаю вики поможет в этом вопросе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 27 августа, 2012 Опубликовано 27 августа, 2012 · Жалоба Нужно тестить внешнюю флеш на предмет самопроизвольной порчи и правильности монтажа оной. ИМХО Да скорее всего никак. Вы представьте , что у Вас нет , предположим ,одной линии данных или адреса и что Вы получите прочитав из Flash данные, ничего не зная какие они должны быть? Ну пусть Вы их проссумируете , но это уже не те данные. Соответсвенно не та сумма Ваш проц изначально должен знать , сумму или CRC , например "разбросанных" по адресному пространству 10 - 100 ячеек FLASH и уже на основании этого Вы с уверенностью сможете сказать - есть или нет ошибки в монтаже или прошивке FLASH и при необходимости вычислить линию адреса или данных с которой есть проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 27 августа, 2012 Опубликовано 27 августа, 2012 · Жалоба Ваш проц изначально должен знать , сумму или CRC ... А почему Вы решили что он её не знает??? Именно её то он и знает и должен сравнить оную с вновь рассчитанной. и при необходимости вычислить линию адреса или данных с которой есть проблема. Для этого есть техники у них и лупы и тестера и паяльники, пусть ищут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 27 августа, 2012 Опубликовано 27 августа, 2012 · Жалоба А почему Вы решили что он её не знает??? Именно её то он и знает и должен сравнить оную с вновь рассчитанной. Для этого есть техники у них и лупы и тестера и паяльники, пусть ищут. Ну наверное потому, что Вы об этом не писали. К тому же и сейчас не понятно , что он знает CRC или КС. А уж облегчить жизнь техникам - святое Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 27 августа, 2012 Опубликовано 27 августа, 2012 · Жалоба К тому же и сейчас не понятно , что он знает CRC или КС. Какая разница? Чего надо то и будет знать. Вопрос лишь в том как ему побыстрее определить что ему правильно подключили правильно прошитую внешнюю ROM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 28 августа, 2012 Опубликовано 28 августа, 2012 · Жалоба Ну вот , что-то уже прояснилось. Раз уж процу ещё ничего не известно, тогда Вы можете заложить 2 направления 1. "Быстрый" - предварительная оценка , здесь можно делать что захотите , но что бы быстро. Например КС по 1 байту из каждого адреса или вообще страницы 2. "Медленный" - CRC всей FLASH , если предварительный выдал ошибку , тут уже всё равно спешить не куда , кому-то с этим надо будет разбираться и что-то мне подсказывает , что не Вам Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 28 августа, 2012 Опубликовано 28 августа, 2012 · Жалоба 1. "Быстрый" - предварительная оценка , здесь можно делать что захотите , но что бы быстро. Например КС по 1 байту из каждого адреса или вообще страницы Т.е. Вы предлагаете что бы процессор считал правильной с флешку у которой в каждой странице правильно записан лишь один единственный байт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться