реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Распаковка zip на стороне ATmega, Программирование больших ПЛИС - распаковка прошивок zip
ReAl
сообщение Jan 13 2011, 19:01
Сообщение #16


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Вход на упаковку. Минусами разбито на группы по восемь байт, как это нужно для байтов масок (в байтах масок каждому входному байту упаковщика (выходному байту распаковщика) соответствет один бит.
FA AC 11 00 00 00 00 00 - 00 00 04 18 21 E7 00 00 - 00 00 00 00 00 00 00 00 - 22 00 44 55 00 00 00 00 - 00 00 00 01

Выход упаковщика. Байты масок показаны в двичном коде с префиксом 0b
0b11100000 0xFA 0xAC 0x11 0b00111100 0x04 0x18 0x21 0xE7 0b00000000 0b10110000 0x22 0x44 0x55 0b00010000 0x01
При своей потрясающей простоте метод очень хорошо жмёт прошивки. Кажется, лучше, чем встроенный в квартус пожиматель / встроенный в циклоны разжиматель.

Там выше ужалось в 19 байт, тут в 16.
Перед массивом для разжимателя нужно указывать общую длину, так как алгоритм округляет число байтов вверх до кратного восьми.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 14 2011, 07:55
Сообщение #17


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ReAl @ Jan 14 2011, 00:01) *
При своей потрясающей простоте метод очень хорошо жмёт прошивки.
Перед массивом для разжимателя нужно указывать общую длину, так как алгоритм округляет число байтов вверх до кратного восьми.

Спасибо. Да, просто и со вкусом. И, как мне на первый взгляд кажется, отсутствуют "недопустимые" коды, т.е., нет избыточности. Конечно, если потерять хотя бы один байт, весь остаток кода будет испорчен. Но в ПЛИС даже часть правильного кода не нужна.
Надо взять на вооружение. Рояльти платить не требуется? sm.gif
И еще, по-моему, ничего страшного не произойдет, если послать в ПЛИС чуть больше кода. Лишние биты проигнорируются.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jan 14 2011, 09:07
Сообщение #18


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(ViKo @ Jan 14 2011, 12:55) *
Рояльти платить не требуется? sm.gif
Это не ко мне, я сам на тех же правах :-) А его можно поискать в окрестностях "спринтер"-ов или как там те ZX-клоны с ACEX-ом называются. По крайней мере, в те времена от чем-от таким занимался, форт-сопроцессор делал куда-то туда.

Цитата(ViKo @ Jan 14 2011, 12:55) *
И еще, по-моему, ничего страшного не произойдет, если послать в ПЛИС чуть больше кода. Лишние биты проигнорируются.
С FLEX8000/ACEX1K, кажется, я так и делал. Для FLEX8K вообще надо было послать несколько "лишних" байтов, точнее, обеспечить пару десятков тактов "для старта". Позже, вроде бы, софт сразу в прошивку несколько FF в конце стал добавлять.
По идее, после получения прошивки микросхема всё остальное просто должна игнорировать. Но в каждом конкретном случае надо бы смотреть.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
SysRq
сообщение Jan 16 2011, 08:30
Сообщение #19


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(StanislavF @ Nov 23 2010, 20:24) *
Код
void FPGA_sendpackedfile(uint_farptr_t buf, uint32_t buf_len)
//...
uint32_t L;
//...
  L =  - 1;
  while(L <= buf_len - 1)
//...
Ни разу не выполнится же ж. Сделайте signed.
Go to the top of the page
 
+Quote Post
Leka
сообщение Oct 20 2015, 22:16
Сообщение #20


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Битстрим (альтеровский *.rpd) по медленному радиоканалу передается, и распаковывается мелким софт-процессором без лишней памяти. Поэтому задача - сжать получше (с распаковщиком попроще). Ориентир на степень сжатия - как zip. Может кто оценки привести, как рассмотренные в этой ветке, и какие-либо другие алгоритмы, сжимают битстрим по сравнению с zip, для разной степени заполненности кристалла?
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016