|
framebuffer драйвер |
|
|
|
Jun 11 2009, 21:46
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Пишу драйвер PCF8833 (дисплей от nokia), оказалось взаимодействовать с ядром гораздо сложнее, чем с контроллером LCD. Дисплей подключен по SPI, в связи с чем такая проблема, mmap из userspace, похоже нет ни какого хорошего способа узнать, что память была отмэплена и перезаписана, и что новые данные пора отправить контроллеру. есть два варианта, - регулярно проверять буфер на изменения, не подходит т.к. это постоянный расход времени процессора - обновлять по запросу из userspace, есть там какой то sync но как я понял он совсем не для этого, и ни кто его так не использует может кто нибудь знает вариант получше? Спасибо, пока работает только fbcon,
pcf8833.c.txt ( 10.02 килобайт )
Кол-во скачиваний: 426
|
|
|
|
|
 |
Ответов
|
Jun 14 2009, 15:50
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(amaora @ Jun 12 2009, 00:46)  Дисплей подключен по SPI, в связи с чем такая проблема, mmap из userspace, похоже нет ни какого хорошего способа узнать, что память была отмэплена и перезаписана, и что новые данные пора отправить контроллеру. есть два варианта, - регулярно проверять буфер на изменения, не подходит т.к. это постоянный расход времени процессора - обновлять по запросу из userspace, есть там какой то sync но как я понял он совсем не для этого, и ни кто его так не использует
может кто нибудь знает вариант получше? sync - точно не помню, но это не подойдет, помоему эта ф-ция вызывается перед тем как fbcon что-то хочет с буфером сделать - типа буть готов, в любом случае fbcon не и меет никакого отношения к тому что делает юзер из своего юзерспейса  для него это такой же кусок памяти как для юзера. Вот тут http://www.at91.com/samphpbb/viewtopic.php...b1577028328bab0 мой вариант получше  и экран побольше и видео в mpeg4 летает  Правда пришлось отказаться от тормозного драйвера spi в исполнении atmel - они слишком расточительны и самое главное в них не реализовано переключение bits_per_word для spi_transfer. Смысл простой - постоянная синхронизация видеобуфера и lcd. Буфер одновременно смапен на dma и доступен процессору, поэтому при наличии dma на контроллере spi процессор не несет никакой дополнительной нагрузки - только от того что хочет юзер запихнуть в видеобуфер и что пишет туда fbcon. В lph88 можно сказать контроллеру - "а сейчас у нас летят данные" и пока не дернешь cs он будет воспринимать их как данные, может я что-то упустил на pcf8833 но там мне так не удалось сделать, чтобы передавать весь буфер в том виде как он есть - приходилось делать цикл который запихивал данные в другой буфер а его уже перекидывал по spi dma контроллер в lcd.
Сообщение отредактировал sasamy - Jun 14 2009, 16:25
|
|
|
|
|
Jun 14 2009, 17:02
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Кстати насчет подобных конструкций: Код static int pcf8833_sync(struct fb_info *info) { //struct pcf8833_par *par = info->par;
return 0; }
.....
static struct fb_ops pcf8833_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = fb_sys_write, .fb_fillrect = pcf8833_fillrect, .fb_copyarea = pcf8833_copyarea, .fb_imageblit = pcf8833_imageblit, .fb_blank = pcf8833_blank, .fb_setcolreg = pcf8833_setcolreg, .fb_sync = pcf8833_sync }; Не нужно вписывать функции-пустышки там где они необязательны, а fb_sync не является обязательной, иначе ядро увидев непустой указатель будет их вызывать - это скажется на производительность ессно в худшую сторону.
Сообщение отредактировал sasamy - Jun 14 2009, 17:02
|
|
|
|
Сообщений в этой теме
amaora framebuffer драйвер Jun 11 2009, 21:46 Harbour Смысл использовать mmap при последовательном обмен... Jun 12 2009, 06:55 amaora Если правильно использовать, то mmap быстрее write... Jun 12 2009, 09:53 Harbour mmap-то быстрее, но ведь все равно SPI в конце, д... Jun 12 2009, 20:08 amaora Этот вариант я уже видел, мне он не понравился по ... Jun 14 2009, 22:40 sasamy По поводу переключения bits_per_word - не совпадае... Jun 15 2009, 05:45 amaora Я понял, только написал не очень ясно. Прямая отпр... Jun 15 2009, 15:48 sasamy Цитата(amaora @ Jun 15 2009, 19:48) Я пон... Jun 15 2009, 18:56 sasamy Цитата(amaora @ Jun 15 2009, 19:48) Пряма... Jun 16 2009, 04:08 amaora Ну вот давайте ещё померяемся
Попробовал сегодня... Jun 16 2009, 10:05 sasamy Цитата(amaora @ Jun 16 2009, 14:05) Ну во... Jun 16 2009, 11:37 amaora Да в чем разница то? ну растеризатор там вместо mp... Jun 16 2009, 14:00 sasamy Цитата(amaora @ Jun 16 2009, 17:00) Переп... Jun 16 2009, 15:06  VDV подскажите пожалуйста, можно где-то прочитать о то... May 24 2010, 11:19   sasamy Цитата(VDV @ May 24 2010, 14:19) подскажи... May 24 2010, 16:13    VDV тогда напрашиваются 2 вопроса.
1. если это просто ... May 25 2010, 08:18     sasamy Цитата(VDV @ May 25 2010, 12:18) тогда на... May 25 2010, 10:00      VDV Цитата(sasamy @ May 25 2010, 14:00) 2 Я д... May 25 2010, 10:03       sasamy Цитата(VDV @ May 25 2010, 13:03) я потому... May 25 2010, 11:15        VDV видимо я опять задал не тот вопрос...
даже не знаю... May 26 2010, 08:39         VDV нашел наконец-то что-то
http://books.google.ru/boo... May 26 2010, 14:52          VDV вопрос появился
написал драйвер для своего дисплея... Jun 10 2010, 15:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|