Вначале присказка. Использую флэш MT29F64G08CBAAA. В документации написано: Minimum required ECC-24-bit ECC per 1080 bytes of data. Вроде как необходимо использовать БЧХ. Рассчитываю необходимую степень для расширения поля, получаю >1080*8=8640. Т.е. степень должна быть 14 и размер поля 2^14-1=16383. Если так, то степень генерирующего полинома 24*14=336.
Итак, вопросы.
1. Нет ошибок в моих рассуждениях выше?
2. Если нет, то как организовать умножение? Табличный метод требует два массива по 16384*2 байт. Т.е. всего на обе таблицы степеней и логарифмов потребуется 64к. Не пойдет, так как в железе стоит МК C8051F930 от silabs и у него всего 64к флэши на борту. Умножение с регистром сдвига как-то медленно будет, думаю. Во всех интернетах даются только примеры с маленькими полями. Или я не знаю, как искать. Для кодера и процедуры Ченя можно попытаться сделать умножение подобно табличному расчету CRC, там умножение на константу. Но однако и в этом методе при моей степени 336 необходимо либо 336 таблиц по ..., ну, наверно, по 16. В общем, не самый лучший вариант. К тому же в алгоритме Берлекэмпа-Месси уже умножение не на константу. Так как быть? Может литературу посоветуете?