Перейти к содержанию
    

Altera DE1-Soc + Linux + NiosII + Qt какие библиотеки нужны?

Всем привет! Имеется плата DE1-Soc с двух ядерным кортексом и ~85-ю тысячами логики. С сайта terasic был скачан и установлен образ с графическим линуксом. Из репозиториев (не из исходников!) при помощи танцев с бубнами был установлен Qt и полностью настроен. Приложения собираются и запускаются. Какие библиотеки необходимо доустановить Qt для взаимодействия с логикой, т.е. с NiosII и подключенной к нему периферией???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет! Имеется плата DE1-Soc с двух ядерным кортексом и ~85-ю тысячами логики. С сайта terasic был скачан и установлен образ с графическим линуксом. Из репозиториев (не из исходников!) при помощи танцев с бубнами был установлен Qt и полностью настроен. Приложения собираются и запускаются. Какие библиотеки необходимо доустановить Qt для взаимодействия с логикой, т.е. с NiosII и подключенной к нему периферией???

что в вашем понимание "для взаимодействия с логикой"?

если с устройствами в линуксе, то открываете устройство стандартными вызовами и общаетесь с устройством (при наличии прав в системе)

если с логикой в плане ФПГА, то через какие-нить мосты или шины (это стык проц-фпга) и драйвера, либо самописные, либо из ниоса.. естесно, со стороны ФПГА д.б. что-то типа блока регистров или подобного..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Будет собран проект с qsys, который будет включать в себя подключенное ядро и порт светодиодов (led). Так вот и вопрос как обращаться к led из программы, написанной на Qt. В примерах есть #include <sys/mman.h>

#include "hwlib.h"

#include "socal/socal.h"

#include "socal/hps.h"

#include "socal/alt_gpio.h",

но у меня нет этих библиотек. Сейчас в описаниях нашел вроде они будут в папках самого Quartus после его установки от 13.1 версии и выше. Завтра посмотрю

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... Имеется плата DE1-Soc .... Какие библиотеки необходимо доустановить Qt для взаимодействия с логикой, т.е. с NiosII и подключенной к нему периферией???

 

Приветствую! Тоже сейчас разбираюсь с платой DE1-SoC. Очень помогают вот эти статьи:

https://zhehaomao.com/blog/fpga/2014/05/24/sockit-10.html

https://habrahabr.ru/company/metrotek/blog/235707/

https://habrahabr.ru/company/metrotek/blog/248145/

В частности, в статье, на которую указывает первая ссылка, рассказывается как установить связь между вашим приложением, выполняемом в пространстве пользователя Linux и аппаратурой в FPGA.

Если я правильно понял, у вас Linux крутится на HPS, а в FPGA еще ядро NIOS, для которого своя программа нужна?

А графический интерфейс как организован? Через ETHERNET на ПК или есть какой-то модуль с дисплеем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Qt нет никакого специального механизма, относящегося к Altera HPS. Вот я пишу консольные программы на Qt для Altera SoC, а с ПЛИС работаю через специальный драйвер, как работал бы с любым прочим устройством. Сначала надо усвоить структуру, что они хоть и лежат в "одном корпусе", но как они связаны между собой? И тогда станет всё очевидно, а Qt тут ни при чем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Вот я пишу консольные программы на Qt для Altera SoC ...

В каком смысле консольные? Я думал, что Qt предназначено для создания графического интерфейса пользователя.

Как раз сейчас размышляю над тем, как организовать отображение данных и графический пользовательский интерфейс на своем устройстве.

Данные это графики, в основном FFT принятого сигнала.

Устройство состоит из DE10-Nano + Linux, вот такого ЖКИ:

https://www.terraelectronica.ru/catalog_inf...hp?CODE=1919182

который соединен с DE10-Nano через HDMI,

а также, усилителя аналогового сигнала, подаваемого затем на АЦП, стоящем на DE10-Nano.

Так вот, чтобы рисовать свои графики, я думаю использовать Qt.

С радостью послушаю (почитаю) советы людей, уже применявших SoC + Qt. Стоит ли вообще в данном случае связыаться с Qt?

Может существует иной путь для создания графического пользовательского интерфейса на SoC?

Насколько я понял из вот из этого:

https://rocketboards.org/foswiki/Documentat...sVideoAndHmiIps

на SoC нету аппаратной поддержки OpenGL, и отрисовка будет производиться прогрммно, нагружая HPS.

Если кто пробовал, расскажите, будет ли рисование графика на Qt тормозить?

Изменено пользователем Gleb80

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на SoC нету аппаратной поддержки OpenGL, и отрисовка будет производиться прогрммно, нагружая HPS.

на SOC вообще нет графического контроллера - контроллер графики организуется в ФПГА части, в простейшем случае просто мост между HPS и экраном, в навороченном варианте в ФПГА реализуются функции аппаратного ускорения

на том же рокетсбоард выложены демки Андроида для Altera SoC (исходники платные), что указывает на возможность такой реализации

 

Если кто пробовал, расскажите, будет ли рисование графика на Qt тормозить?

я гонял графику для SoC на интерфейсах i80 и rgb - QT вполне нормально отрисовывает на небольших разрешениях, Иксы с браузером тоже более-менее нормально..

тормоза будут однозначно на ресурсоемких вещах - флеш в браузере, видео с распаковкой и прочие штучки, где требуются аппаратные кодеки для работы с видео и графикой

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на том же рокетсбоард выложены демки Андроида для Altera SoC (исходники платные), что указывает на возможность такой реализации

Спасибо за подсказку, гляну, что там есть...

 

я гонял графику для SoC на интерфейсах i80 и rgb - QT вполне нормально отрисовывает на небольших разрешениях

Если я правильно понял, то у Вас на HPS крутился Linux, на него был установлен Qt. В FPGA находились IP-ядра, занимающиеся отрисовкой на ЖКИ (Frame Reader и т.п.). Linux с графическим интерфейсом, отображаемым на том же ЖКИ?

Какую плату Вы использовали - terasic или что-то самодельное?

Если можно, расскажите по-подробней как и что там было сделано...

 

Сам я сейчас склоняюсь к такому решению - консольный Linux, в FPGA находится FFT корка и графическая аппаратура. FFT по DMA передает данные в DDR, мое собственное приложение, крутящееся в Linuxе эти данные забирает, на их основе формирует картинку и помещает ее во Frame Buffer, находящийся в DDR, откуда Frame Reader (IP-ядро), через f2h-axi-master это считывает и выдает картинку на ЖКИ.

Повторюсь, что рисовать нужно 2D графики, преимущественно спектр сигнала, захватываемого АЦП, ну и всякую сопутствующую информацию по-бокам. Обновлять кривую нужно будет где-то 10 раз в секунду. Кривая будет состоять из 512 точек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за подсказку, гляну, что там есть...

 

 

Если я правильно понял, то у Вас на HPS крутился Linux, на него был установлен Qt. В FPGA находились IP-ядра, занимающиеся отрисовкой на ЖКИ (Frame Reader и т.п.). Linux с графическим интерфейсом, отображаемым на том же ЖКИ?

Какую плату Вы использовали - terasic или что-то самодельное?

Если можно, расскажите по-подробней как и что там было сделано...

 

Сам я сейчас склоняюсь к такому решению - консольный Linux, в FPGA находится FFT корка и графическая аппаратура. FFT по DMA передает данные в DDR, мое собственное приложение, крутящееся в Linuxе эти данные забирает, на их основе формирует картинку и помещает ее во Frame Buffer, находящийся в DDR, откуда Frame Reader (IP-ядро), через f2h-axi-master это считывает и выдает картинку на ЖКИ.

Повторюсь, что рисовать нужно 2D графики, преимущественно спектр сигнала, захватываемого АЦП, ну и всякую сопутствующую информацию по-бокам. Обновлять кривую нужно будет где-то 10 раз в секунду. Кривая будет состоять из 512 точек.

 

Если вам не нужна крутая графика, а просто вывод графика или графиков, то это можно сделать и на ПЛИС https://www.youtube.com/watch?v=8O06kx9tA2w

https://www.youtube.com/watch?v=P2Jpszg-6YQ

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вам не нужна крутая графика...

Нужно приблизительно вот так:

 

ad-1-lo.jpg

 

а на предложенных видео отображается только результат БПФ и больше ничего лишнего )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно приблизительно вот так:

Я очень люблю Qt, но вынужден признать: в Вашем случае он совершенно не нужен для этой задачи.

Можно прекрасно налохматить такой простейший интерфейс без помощи Qt, тут даже кругов с заливкой нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно прекрасно налохматить такой простейший интерфейс без помощи Qt...

 

Тут согласен, но ведь нет пределов совершенству, GUI можно будет и по-красивей сделать. К тому же, будет большое разветвленное меню, а в его воздвижении, как я понимаю, Qt мне сильно поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извиняюсь, что долго отсутствовал. Решение по моему вопросу оказалось достаточно простым: при установке самого QuartusII эти библиотеки находятся в ....embedded\ip\altera\hps\altera_hps\hwlib. В папке include хидер файлы, а в src\hwmgr исходники. Папку altera_hps переименовал а Altera, закинул на запущенной плате в Qt и все пошло как по маслу. Единственное огорчение возникает, когда проект на Qt собранный на виртуальной машине закидываешь и пере собираешь на плате не подключенной к интернету, получаешь ошибку о разнице времени. Часов реального времени-то на ней не предусмотрено. А в остальном пробовал ставить образы и с Ubuntu и с LXDE. LXDE работает поинтереснее, но при любом изменении файла configure (установка mc, nautilus ....) при следующем старте платы вылетает ошибка. Подтверждение позволяет дальше операционке загрузиться. У Ubuntu такой проблемы не наблюдал

 

Нужно приблизительно вот так:

 

ad-1-lo.jpg

 

а на предложенных видео отображается только результат БПФ и больше ничего лишнего )

 

По поводу графиков использовал QCustomPlot и эта библиотека показала себя с наилучшей стороны. При отрисовке проблем нет. Устанавливать и собирать ничего не нужно просто скинул в папку с проектом хидер и исходник, добавил их к проектным файлам, закинул на форму widget преобразовал его в QCustomPlot, добавил в .pro файл проекта QT += printsupport и всех вопросов. QWT еще не собирал на плате.

Изменено пользователем RamZoom

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

использовал QCustomPlot

Понял, благодарю за подсказку, погляжу что это за QCustomPlot. Для меня вообще Qt пока нечто новое и неизведанное.

Какой вы монитор используете? Какое разрешение? Я сейчас как раз этим занимаюсь, пытаюсь изменить установленное в сборке Linux Xfce Desktop для платы DE10-Nano разрешение на то, которое имеет мой дисплей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Qt по моему мнению лучшая на сегодняшний день среда разработки среди своих соратников. По повода дисплея использую стандартный монитор, подключенный через VGA с разрешением 1024х768. И мне очень интересен ваш подход к решению по изменению видео вывода. Сколько документации уже перекопал, так и не понял, как в общем в linux и в каком формате данные передаются на видеокарту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...