Russian Qt Forum
Ноябрь 22, 2024, 11:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Embedded
>
Настройка Qt-embedded для работы с фрэймбуфером
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Настройка Qt-embedded для работы с фрэймбуфером (Прочитано 3774 раз)
Stlkr_19
Гость
Настройка Qt-embedded для работы с фрэймбуфером
«
:
Март 11, 2016, 06:17 »
Всем доброго времени!
Прошу помощи в настройке Qt-embedded для работы с фрэймбуфером.
Собрал простую программку в Qt - Label с текстом "Hello, world!". Запустил ее на фулскрине.
Проблемы:
1. Инвертирован цвет (в программе Qt задан черный – на экране пиксель светится, задан белый – пиксель погашен)
2. Перепутаны попарно пиксели (т.е. тетрады в байтах фреймбуфера)
При этом ядро выводит своего пингвина в верном цвете и пиксели не путает.
Железо:
at91sam9g45 (arm9) + norflash + TFEL-дисплей (160х120 mono, шина 4 бита)
Софт:
linux-2.6.36-rc6
qt-4.8.6 (собран в систему при помощи Buildroot-2015.11.1)
Кросс-компилятор CodeSourcery 2014.05
Фреймбуфер в ядре настроен так (вывод fbset):
Mode “160x120-21”
#D: 0,414 MHz, H: 2,540 kHz, V: 20,991 Hz
geometry 160 120 160 120 4
timings 2415458 1 1 0 0 1 1
accel false
rgba 4/0, 4/0, 4/0
endmode
Т.е. pixel depth = 4bpp (встроенный в проц LCD-контроллер делает 16 оттенков при помощи "ШИМ").
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Настройка Qt-embedded для работы с фрэймбуфером
«
Ответ #1 :
Март 11, 2016, 10:31 »
Было что-то похожее, когда оранжевый отображался как синий.. вроде проблема была в 16-битном фреймбуффере.. настроили на 24 бита и все стало норм.. как-то так..
Записан
ArchLinux x86_64 / Win10 64 bit
Stlkr_19
Гость
Re: Настройка Qt-embedded для работы с фрэймбуфером
«
Ответ #2 :
Март 15, 2016, 07:53 »
В-общем, проблему "решил"
В исходниках ядра в файле
arch/arm/mach-at91/board-sam9m10g45ek.c
поправил значение регистра LCD Control Register 2.
/*
#define AT91SAM9G45_DEFAULT_STN_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
| ATMEL_LCDC_DISTYPE_STNMONO \
| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE \
| ATMEL_LCDC_IFWIDTH_4 \
| ATMEL_LCDC_INVVD_INVERTED \
| ATMEL_LCDC_SCANMOD_SINGLE)
*/
#define AT91SAM9G45_DEFAULT_STN_LCDCON2 (ATMEL_LCDC_MEMOR_WINCE \
| ATMEL_LCDC_DISTYPE_STNMONO \
| ATMEL_LCDC_CLKMOD_ACTIVEDISPLAY \
| ATMEL_LCDC_IFWIDTH_4 \
| ATMEL_LCDC_INVVD_NORMAL \
| ATMEL_LCDC_SCANMOD_SINGLE)
Теперь Qt пишет верно и все красиво.
Но в консоли, которая писала в tty0 (на дисплей) всё развалилось - и пингвин, и текст под пингвином (цвет инверсный, пиксели попарно перепутаны).
Консоль мне пока не нужна, поэтому пока так оставлю.
Но если кто-нибудь объяснит, как сделать чтоб и Qt и консоль работали правильно, я буду очень благодарен!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...