Zconf h как подключить
Пользователь
Регистрация: 16.02.2019
Сообщений: 14
как установить библиотеку zconf.h
В консоли при компиляции пишет fatal error: zconf.h: Нет такого файла или каталога
Изображения
| Снимок экрана от 2019-03-03 22-49-17.png (22.7 Кб, 77 просмотров) |
Регистрация: 15.02.2010
Сообщений: 15,654
Библиотека называется zlib, пакет с заголовками чсто называют zlib-devel
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| как установить библиотеку glut на windows 7 ? | datileo | Visual C++ | 5 | 10.11.2016 20:55 |
| Как установить библиотеку ? | MonkMoldova | Общие вопросы C/C++ | 7 | 04.04.2013 07:37 |
| Установить библиотеку | Колючка* | Компоненты Delphi | 12 | 12.02.2010 16:11 |
| Как установить библиотеку GMP для PHP? | motorway | PHP | 3 | 21.10.2009 16:58 |
библиотека Zlib
Помогите разобраться, скачал бибилиотеку zlib123.zip.
Написал програмку test.cpp:
#include
#include
#include «zlib/include/zlib.h»
#include «zlib/include/zconf.h»
void main ( void ) <
char * data = «Text for compression. abc/abc» ;
Byte * Compr , * UnCompr ;
unsigned long ComprLen , UncomprLen ;
Compr = ( Byte * ) malloc ( ComprLen ) ;
UnCompr = ( Byte * ) malloc ( UncomprLen ) ;
strcpy ( UnCompr , data ) ;
UncomprLen = sizeof ( UnCompr ) ;
printf ( » \t %d \r \n » , rc ) ;
> ;
Получаю ошибку линкера:
[Linker Error] Unresolved external ‘_compress’ referenced from TEST.OBJ
Как с этим бороться?
2 ответа
09 мая 2006 года
5.6K / / 13.08.2003
Originally posted by SN_ok
Помогите разобраться, скачал бибилиотеку zlib123.zip.
Написал програмку test.cpp:
#include
#include
#include «zlib/include/zlib.h»
#include «zlib/include/zconf.h»
void main ( void ) <
char * data = «Text for compression. abc/abc» ;
Byte * Compr , * UnCompr ;
unsigned long ComprLen , UncomprLen ;
Compr = ( Byte * ) malloc ( ComprLen ) ;
UnCompr = ( Byte * ) malloc ( UncomprLen ) ;
strcpy ( UnCompr , data ) ;
UncomprLen = sizeof ( UnCompr ) ;
printf ( » \t %d \r \n » , rc ) ;
> ;
Получаю ошибку линкера:
[Linker Error] Unresolved external ‘_compress’ referenced from TEST.OBJ
Как с этим бороться?
подключить библиотеку zlib (не знаю как там в винде — zlib.dll, zlib.lib, что то такое)
Zconf h как подключить
Не страшно использовать неинициализированную переменную?
Не знаю, как работает compress, но зуб даю, что если ей первым параметром передать 0 (и для надёжности обнулить еще и ComprLen), то она вернёт (или положит в ComprLen, или и то, и другое) необходимый размер буфера для сжатых данных.
Ну, а если память не жалко, а скорость жалко, то под буфер для сжатых данных можно сразу занимать столько же места, сколько занимают несжатые данные — почти наверняка этого хватит.
P.S. Побайтовое копирование из ComprLen в result смотрится, конечно, весьма эффектно, особенно с индексом, но есть ф-ция memcpy
P.P.S. Память после маллоков, особенно в функции, надо освобождать.
Сообщ. #11 , 03.04.10, 10:45
Рейтинг (т): 6
Цитата arj99 @ 03.04.10, 05:28
Так у TStringList есть свойство Text: все строки в одной объединенной.
TStringList *lst = new TStringList ;
int len = ZLibCompress(&lst->Text, result ); // выдает ошибку [C++ Error] Unit1.cpp(102): E2027 Must take address of a memory location
Добавлено 03.04.10, 10:46
Цитата Adil @ 03.04.10, 06:06
под буфер для сжатых данных можно сразу занимать столько же места, сколько занимают несжатые данные — почти наверняка этого хватит.
вы правы. принял к сведению
Добавлено 03.04.10, 10:47
Цитата Adil @ 03.04.10, 06:06
P.S. Побайтовое копирование из ComprLen в result смотрится, конечно, весьма эффектно, особенно с индексом, но есть ф-ция memcpy
Добавлено 03.04.10, 10:47
4a4ik
В данной статье будет описано каким образом подготовить все необходимые файлы для запуска Linux с FPGA фирмы Xilinx, а именно отладочной платы Zybo. С последующей записью необходимых файлов на QSPI и запуском готовой системы.
Разработка FPGA части будет производиться в Vivado 2019.1, компиляция необходимых файлов для Linux будет выполнена в виртуальной машине Oracle VM VirtualBox, на которой установлена Ubuntu.
Компиляция будет происходить без использования PetaLinux, как утверждают Xilinx — это платформа, которая содержит всё необходимое для запуска Linux на FPGA и облегчает внесение изменений. В данном руководстве всё будет собираться ручным образом, для того чтобы ближе взглянуть на работу встроенных систем.
Процесс загрузки системы описывается следующей схемой, взятой из UG1165 и UG873:
| Рис.1 структурная схема загрузки системы |
Boot ROM — выполнение инструкций содержащихся в специально отведённой памяти FPGA, они осуществляют изначальную инициализацию, выбирают носитель в котором будет произведён поиск FSBL и запускают его. Изменить этот код нельзя, остальные файлы необходимо подготовить.
Первым шагом следует создать проект в Vivado. Для проверки работоспособности платы и корректных настроек можно использовать готовый проект от Xilinx расположенный на github, он реализован на версии 2017.4. Но в данном руководстве используется версия 2019.1 и проект создаётся с нуля. Тем не менее там можно посмотреть правильные настройки для DDR и QSPI.
В отладочной плате Zybo используется XC7Z010CLG400С-1 его и следует выбрать при создании проекта. Xilinx рекомендует использовать готовые библиотеки для своих отладочных плат, при создании проекта, вместо конкретной микросхемы. Как они говорят это облегчает подключение различных интерфейсов, подробное описание здесь. Но для того чтобы не привязываться к конкретным библиотекам выберем отдельно необходимую микросхему.
| Рис.2 Выбор микросхемы |
Далее нужно создать Block Design. В левом меню, под «IP Integrator», нажимаем «Create Block Design», в создавшемся Block Design добавляем новое IP ядро «Zynq7 processing system», далее жмём в верхней части экрана «Run Block Automation» в появившемся окне нажимаем ok. После выполнения данных действий, процессор должен быть корректно подключен к своим основным выводам.
После этого нужно соединить выводы FCLK_CLK0 и M_AXI_GP0_ACLK, таким образом подаётся частота на AXI интерфейс, он использоваться не будет, но без этого нельзя скомпилировать проект.
| Рис.3 IP ядро процессора |
В данном руководстве не будет использоваться FPGA часть устройства, необходимо подключить лишь основные компоненты, большая часть из которых соединились автоматически. Но следует корректно настроить параметры тактовой частоты системы, QSPI и RAM память. Для простоты и уменьшения возможности ошибок желательно использовать готовый проект от Xilinx расположенный на github, но тем не менее далее будут приведены изменения которые необходимо сделать вручную при создании нового проекта.
Подключение и используемые компоненты можно посмотреть на схеме, которая находится в открытом доступе.
Двойным щелчком можно открыть настройки IP ядра процессора, для начала в разделе «Clock configuration» выставим корректное значение тактовой частоты процессора. Тактовые сигналы подаются на вывод PS_CLK_500, его и к чему он подсоединяется можно найти на странице 9:
| Рис.4 Генератор тактовой частоты процессора |
Как видно на процессор подаются тактовые сигналы с частотой 50 МГц.
Выставим это в Vivado:
| Рис.5 Настройка тактовой частоты процессора |
В качестве RAM используется 2 блока DDR3 памяти «MT41J128M16JT-125» (стр 12):
| Рис.6 RAM память |
В разделе «DDR Configuration» следует указать используемую память. Но её не окажется среди доступных, её там нет из-за того, что это устаревшая версия. Новая версия ничем не отличается от предыдущей, но в дополнение может работать при низком напряжении, её код «MT41K128M16JT-125», отличается лишь одной буквой. Её и следует выбрать.
| Рис.7 Настройка RAM |
Также желательно выставить задержку распространения сигнала, значения из тестового проекта представлены ниже, но начиная с Vivado 2018.1 при сохранении введённых настроек компилятор выдаст предупреждение об отрицательных значениях задержек, подробное описание проблемы находится здесь. Чтобы убрать ошибки нужно отрицательные значения изменить на 0.
| Рис.8 Настройка задержек на дорожках печатной платы |
Далее следует перейти в «MIO Configuration» изменить «Bank 1 I/O Voltage» на «LVCMOS 1.8V» и в том же окне под «Memory interfaces» поставить галочку напротив «Quad SPI Flash», галочку напротив «Feedback CLK», поменять скорость на fast для всех выводов и отключить «pullup»:
| Рис.9 Настройка интерфейсов |
U-boot сперва настраивает периферию, по умолчанию он будет инициализировать Ethernet, SDIO, из-за этого их нужно подключить, иначе U-boot зависнет. Отключить их можно в исходниках U-boot /configs/zynq_zybo_defconfig. Для конфигурации в Vivado параметры следующие:
| Рис.10 Настройка интерфейсов (2) |
| Рис.11 Настройка интерфейсов (3) |
Также для того чтобы общаться с Linux, следует подключить UART:
| Рис.12 Настройка интерфейсов (3) |
Далее нужно создать HDL wrapper — во вкладке Sources, правой кнопкой на «design_1» и нажать «Create HDL wrapper. » и оставить вариант по умолчанию с автоматическим созданием.
После этого нужно скомпилировать проект. Затем экспортировать его в SDK, нажав File -> Export -> Hardware. В появившемся окне нужно поставить галочку рядом с «Include bitstream» и нажать ок.
Последним шагом следует запустить SDK через File -> Launch SDK. В дальнейшем в Vivado вводить изменения больше не потребуется.
Внутри SDK, нужно создать FSBL. Он установит правильные настройки частоты и DDR вместе с QSPI. Также загрузит все файлы в RAM. Дополнительная информация: Видео от Xilinx про FSBL. Xilinx wiki FSBL, документация TRM UG585, UG821. Для этого следует создать новый проект File -> New -> Application project.
| Рис.13 Создание нового проекта |
В появившемся окне ввести имя проекта, нажать Next и выбрать «Zynq FSBL».
| Рис.14 Выбор FSBL |
FSBL позволяет запустить либо baremetal аппликацию либо сторонний загрузчик который запустит полноценную ОС, в нашем случае используется U-Boot для запуска Linux.
Далее большая часть работы будет происходить в Linux. Также нужно будет переносить файлы между двумя ОС, как это делать в Oracle VM описано здесь.
Все необходимые файлы можно найти на xilinx-wiki.atlassian.net.
Дополнительная информация про U-Boot и про компиляцию: Build U-Boot.
Проще всего скачивать файлы через Git, для того чтобы его установить нужно выполнить:
sudo apt-get install git-core