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

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

...подход к решению по изменению видео вывода... как в общем в linux и в каком формате данные передаются на видеокарту

 

Ответа на этот вопрос я пока не знаю, но вот, какая картина мира у меня к настоящему моменту сложилась. Так как в недрах Linux я разбираюсь слабо, начну с противоположного конца.

У меня имеется вот такой монитор:

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

c разрешением 800х480 точек. Подключается по HDMI. На плате DE10-Nano тоже есть HDMI разъем, сигнал на который поступает от микросхемы ADV7513 http://www.analog.com/media/en/technical-d...ets/ADV7513.pdf

Эта микросхема преобразует обычный видеосигнал, состоящий из 24 бит цвета, пиксель-клока и сигналов вертикальной и горизонтальной синхронизации (не знаю как он правильно называется, пусть будет TFT-интерфейс) в HDMI. На плате DE1-SoC вместо ADV7513 установлена микросхема ADV7123 преобразующая TFT-интерфейс в аналоговый VGA. Еще у ADV7513 есть канал I2C, через который ее можно конфигурировать. Что конкретно в ней настраивают я пока не выяснял. Провода TFT-интерфейса и I2C подключены к FPGA-части SoC. В FPGA находится аппаратура, читающая данные, представляющие собой картинку, из Frame Buffer и выдающая ее наружу по TFT-интерфейсу. Frame Buffer - это кусок памяти в DDR3. Чтобы читать оттуда, аппаратура FPGA использует fpga2sdram мост (вроде бы..., надо уточнить). Теперь переходим к HPS, где живет Linux. Чтобы писать данные в кусок памяти, представляющий собой Frame Buffer есть драйвер (модуль), после загрузки которого появляется устройство /dev/fb0 - у меня оно так называется. Надо полагать, что то что будет записано в это устройство, отобразится на экране.

Чтобы монитор правильно отображал картинку, в строке должно быть нужное кол-во пикселей (800) и в кадре правильное число строк (480). В моей сборке по умолчанию разрешение 1024х768, поэтому часть рабочего стола выходит за край экрана. На microSD карте, с которой грузится моя плата, обнаружил 3 подозрительных приложения: de10_nano_hdmi_config.bin, dump_adv7513_regs.bin и dump_adv7513_edid.bin. Подозреваю, что сразу после загрузки запускается либо первое либо все три по-очереди и настраивают аппаратуру в FPGA и микросхему ADV7513 через I2C. Нормального исходного кода этих приложений я не нашел, только в виде патча в составе сценариев bitbake https://github.com/01org/meta-de10-nano/blo...ebug-apps.patch Но похоже, это то что нужно, так как там есть строки, устанавливающие это самое разрешение:

  pixel_clock_MHz = 65000000; 
  horizontal_active_pixels = 1024;
  horizontal_blanking_pixels = 320;
  vertical_active_lines = 768;
  vertical_blanking_lines = 38;
  horizontal_sync_offset = 24;
  horizontal_sync_width = 136;
  vertical_sync_offset = 3;
  vertical_sync_width = 6;
  interlaced = 0;

 

и часто упоминается название микросхемы ADV7513

 

В общем, пока у меня весьма расплывчатое представление о механизме отображения в системе SoC+Linux и если тут есть специалисты, то любезно прошу вас изложить как оно там на самом деле )

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


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

..... Но похоже, это то что нужно, так как там есть строки, устанавливающие это самое разрешение:

 
....
  horizontal_active_pixels = 1024;
  ....
  vertical_active_lines = 768;

 

да, это было то, что нужно, заменил на свои значения и разрешение стало какое нужно

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


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

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

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

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

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

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

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

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

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

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