реклама на сайте
подробности

 
 
> framebuffer драйвер
amaora
сообщение Jun 11 2009, 21:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Пишу драйвер PCF8833 (дисплей от nokia), оказалось взаимодействовать с ядром гораздо сложнее, чем с контроллером LCD.
Дисплей подключен по SPI, в связи с чем такая проблема,
mmap из userspace, похоже нет ни какого хорошего способа узнать, что память была отмэплена и перезаписана, и что новые данные пора отправить контроллеру.
есть два варианта,
- регулярно проверять буфер на изменения, не подходит т.к. это постоянный расход времени процессора
- обновлять по запросу из userspace, есть там какой то sync но как я понял он совсем не для этого, и ни кто его так не использует

может кто нибудь знает вариант получше?

Спасибо,
пока работает только fbcon, Прикрепленный файл  pcf8833.c.txt ( 10.02 килобайт ) Кол-во скачиваний: 426
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sasamy
сообщение Jun 14 2009, 15:50
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(amaora @ Jun 12 2009, 00:46) *
Дисплей подключен по SPI, в связи с чем такая проблема,
mmap из userspace, похоже нет ни какого хорошего способа узнать, что память была отмэплена и перезаписана, и что новые данные пора отправить контроллеру.
есть два варианта,
- регулярно проверять буфер на изменения, не подходит т.к. это постоянный расход времени процессора
- обновлять по запросу из userspace, есть там какой то sync но как я понял он совсем не для этого, и ни кто его так не использует

может кто нибудь знает вариант получше?


sync - точно не помню, но это не подойдет, помоему эта ф-ция вызывается перед тем как fbcon что-то хочет с буфером сделать - типа буть готов, в любом случае fbcon не и меет никакого отношения к тому что делает юзер из своего юзерспейса smile.gif для него это такой же кусок памяти как для юзера.
Вот тут http://www.at91.com/samphpbb/viewtopic.php...b1577028328bab0 мой вариант получше smile.gif и экран побольше и видео в mpeg4 летает smile.gif Правда пришлось отказаться от тормозного драйвера spi в исполнении atmel - они слишком расточительны и самое главное в них не реализовано переключение bits_per_word для spi_transfer. Смысл простой - постоянная синхронизация видеобуфера и lcd. Буфер одновременно смапен на dma и доступен процессору, поэтому при наличии dma на контроллере spi процессор не несет никакой дополнительной нагрузки - только от того что хочет юзер запихнуть в видеобуфер и что пишет туда fbcon. В lph88 можно сказать контроллеру - "а сейчас у нас летят данные" и пока не дернешь cs он будет воспринимать их как данные, может я что-то упустил на pcf8833 но там мне так не удалось сделать, чтобы передавать весь буфер в том виде как он есть - приходилось делать цикл который запихивал данные в другой буфер а его уже перекидывал по spi dma контроллер в lcd.

Сообщение отредактировал sasamy - Jun 14 2009, 16:25
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jun 14 2009, 17:02
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 23:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016