Могу предложить рабочий вариант параметрического кодера-декодера БЧХ, разработанный небезизвестным Robert H. Morelos-Zaragoza. Правда для embedded его нужно немного ограничить, иначе размерности 1МБ просто не влезут в ОЗУ МК. Думаю "обрезание" под свои нужды ни у кого не составит труда. Если будут проблемы, обращайтесь.
Есть ряд измерений производительности для фукнции декодера, может быть кому-то будет интересно, может кто-то добавит свои результаты.
1)bch_decode() -версия Антона Алексеева
2)bch_bm() -версия Robert Morelos-Zaragoza
Результаты представлены в циклах процессора
Исследуемые процессоры: 8051 (60МГц), MSP430 (8МГц)и ARM (60МГц)
-------------------------------------------------------------------------------------------
bch_decode(1 ошибка)....................bch_bm(1 ошибка)....bch_bm(9 ошибок)
-------------------------------------------------------------------------------------------
8-бит 8051=7.629.594 (127ms)........=1.823.640 (30ms)...=3.503.256 (58ms)
16-бит MSP430=1.536.325 (192ms)..=Нехватка памяти...=Нехватка памяти
32-бит ARM= 412.356 (7ms)..............=170.761 (3ms)........=383.895 (7ms)
-------------------------------------------------------------------------------------------
Правды ради нужно сказать что у Антона в bch_decode() входит ряд подготовительных процедур, которые у Роберта вынесены за рамки.
Кроме того, алгоритм Антона оказался более заточен под embedd у функции кодера: в три раза быстрее, чем у Роберта.
Привожу вариант Роберта.
Думаю в данном топике на этом нужно ставить точку, так как мы отклонились от основной темы.
Прикрепленные файлы
bch_bm.c ( 14.65 килобайт )
Кол-во скачиваний: 10