Название: Настройка Qt-embedded для работы с фрэймбуфером Отправлено: Stlkr_19 от Март 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 оттенков при помощи "ШИМ"). Название: Re: Настройка Qt-embedded для работы с фрэймбуфером Отправлено: kuzulis от Март 11, 2016, 10:31 Было что-то похожее, когда оранжевый отображался как синий.. вроде проблема была в 16-битном фреймбуффере.. настроили на 24 бита и все стало норм.. как-то так..
Название: Re: Настройка Qt-embedded для работы с фрэймбуфером Отправлено: Stlkr_19 от Март 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 и консоль работали правильно, я буду очень благодарен! |