[an error occurred while processing this directive]
|
Сооб: 298 из 300 -288 +299 PVT.HARDW.MAX2PLUS
От : Dmitry Kuznetsov 2:5020/400 Thu 14 Mar 02 19:50
Кому: Andrey Teplyakov
Тема: Re: Сжать файл прошивки
From: Dmitry Kuznetsov Hello, Andrey Teplyakov >Есть мысль сжать прошивку Flex10K и грузить ее из FlashROM посредством Эта тема уже как-то обсуждалась, но очевидно достаточно давно, Короче, исходная прошивка делится на группы по 8 байт. Алгоритм легкий и занимает под себя пару байт под переменные Приветствую, Dmitry! 14 марта 2002г. (четверг) 19:50, Dmitry Kuznetsov писал к Andrey Teplyakov: DK> Эта тема уже как-то обсуждалась, но очевидно достаточно давно, Я пpобовал еще пpоще - вместо длинной цепочки нулей пишется байт ... Ошибки в работе чреваты ошибками в зарплате ... From: Dmitry Kuznetsov Hello, Vladimir Poletaev >Area : PVT.HARDW.MAX2PLUS Эт за какой год? > VP>> Кстати - зашивка под 50E довольно здоровая (98К), пришлось написать Позволил себе посравнивать ;-) Проектик для EPF10K10TI144 - назовем его условно П1. Способы упаковки Utilized Доля нулей С1 С2 С3 ZIP Способ С1 проигрывает из-за преобладания в основном Пока!
E-mail:
info@telesys.ru
On Wed, 13 Mar 2002 20:59:06 +0300, you wrote:
>однокристалки. Пробовал сжимать методом RLE - получилось 50%, это при загрузке
>ПЛИС около 60%. Какой бы еще не слишком мудреный метод применить (чтобы
>однокристалка при распаковке не слишком тормозила - 8МГц все-таки) и чтобы
>степень сжатия была повыше? Ресурсы, затрачиваемые на архивацию, не критичны.
поскольку самого обсуждения у меня не сохранилось.
По горячим следам я тогда поигрался с предложенными алгоритмами
на своих реальных прошивках и остановился на методе "пропуска
нулевых байтов" (как он у меня тогда обозначался).
К сожалению, не помню, кто же его тогда предложил :(
В сжатом потоке такая группа представлена кадром, состоящем из:
1) 1-го байта "карты ненулевых байтов" в котором по порядку
единицы установлены только для ненулевых байтов исходной
группы;
2) перечисления только "ненулевых байтов".
(кроме, естественно, неизбежных расходов типа счетчик байтов)
1) байт для хранения "карты",
2) байт маски с бегущей единицей (при переходе единицы через
бит переноса производится смена "карты".
Пока!
<< Вышел е:жик из тумана, лихо вставил всем в каналы!
Dmitry Kuznetsov, Moscow, http://www.orc.ru/~dkuzn/index.htm
[Team Беговая Черепаха] [Team LEXX] [Team TV6]
Resistance
*
--- ifmail v.2.15dev5
* Origin: HOT (2:5020/400)
Сооб: 299 из 300 -298 +300 PVT.HARDW.MAX2PLUS
От : Igor Evdokimov 2:461/67 Thu 14 Mar 02 20:21
Кому: Dmitry Kuznetsov
Тема: Сжать файл прошивки
DK> поскольку самого обсуждения у меня не сохранилось.
DK> По горячим следам я тогда поигрался с предложенными алгоритмами
DK> на своих реальных прошивках и остановился на методе "пропуска
DK> нулевых байтов" (как он у меня тогда обозначался).
DK> К сожалению, не помню, кто же его тогда предложил :(
с их количеством. Экономия до 2 pаз на больших кpисталлах.
С уважением, Igor. 20:21 14 марта 2002г. (четверг)
E-mail: ie@altron.com.ua
ICQ: 92960740
--- Флеймоскоп 3.00.Beta5+
* Origin: Polaris Kharkov UA (2:461/67)
Сооб: 298 из 300 -297 PVT.HARDW.MAX2PLUS
От : Dmitry Kuznetsov 2:5020/400 Sun 17 Mar 02 16:29
Кому: Vladimir Poletaev
Тема: Re: Сжать файл прошивки
On Sat, 16 Mar 2002 22:27:38 +0300, you wrote:
>Date : Mon Aug 23, 21:23 loc scn
>
>From : Vladimir Poletaev 2:5020/604.66
>To : Andrey Vasilyev
>Subj : FLEX10K - Passive Parallel Asynchronous
> VP>> упаковку. Только за счет нулей сжимается почти в 2 раза.
>
> AV> И сколько места занял pаспаковщик ?
> Hе считал - где-то десяток-другой байт. Принцип простой -
>последовательность
>из 3 и более нулей пакуется в двухбайтовую. Первый байт имеет фиксированное
>значение (префикс), второй - счетчик нулей. Если счетчик = 0, то считается,
>что
>это один байт префикса. В качестве префикса выбирается наиболее редко
>встречающийся байт. У меня получился 1F - он вообще не встречается в моем
>rbf-файле. Скорость загрузки из-за распаковки у меня не упала - если ставить
>проверку RDYnBSY, то это получится медленнее, чем просто писать не чаще, чем
>через 2 мкс.
Составные его фрагменты (скомпилированные отдельно): П2 и П3
(П2 - самый крупный и не влез в указанный чип из-за большого
числа портов и скомпилирован под 208-ногий корпус).
Исходный размер файла - 14751 байт.
С1 - RLE с префиксом (расчитывается статистически).
С2 - С картой ненулевых байтов (опубликован мной
и Ivan Mak под этим же сабжем немного ранее).
С3 - еще один вариантик (описание пока пропущено).
ZIP - для сравнения размер зазипованого файла.
П1 97% 0.492 11169 9343 10243 7525
П2 39% 0.736 7024 5739 5872 4468
П3 12% 0.852 3969 4028 3491 2341
коротких цепочки нулей в нагруженном проекте.
Способ С2 показал наилучший результат (имхо).
Способ С3 лидирует в примитивных проектах, но это
не дает ему права стать фаворитом гонки.
<< Вышел е:жик из тумана, лихо вставил всем в каналы!
Dmitry Kuznetsov, Moscow, http://www.orc.ru/~dkuzn/index.htm
[Team Беговая Черепаха] [Team LEXX] [Team TV6]
Ответы