Отговори на тема  [ 4 мнения ] 
Използване на Linux драйвер в embedded устройства 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Май 23, 2006 4:56 pm
Мнения: 113
Местоположение: Варна
Мнение Използване на Linux драйвер в embedded устройства
Здравейте.

Имам една развойна платка на атмел с avr32, на която върви линукс. Искам да вържа към нея температурен датчик примерно DS18B20.
Гледам в кернела има драйвери за 1-wire протокол, има драйвер и за тези темп. датчици. Не мога да разбера обаче как се ползват тези драйвери. Въобще не мога да разбера как се ползва кой да е драйвер. Единственото което разбрах е че се зареждаш с insmod и нищо повече. Как да укажа на драйвера къде е закачен датчика, след това как да го прочета..
Гугъл мълчи по въпроса, в документацията на кернела няма нито един пример, въобще пълно затъмнение.
Ще бъда благодарен на някой ако може да ми каже как се работи с този 1-wire драйвер и въобще с драйвери под линукс.


Вто Май 11, 2010 9:48 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Сря Ное 10, 2004 4:03 pm
Мнения: 111
Местоположение: София
Мнение 
Не ми се обяснява с подробности за това качвам 2 книжки които ще ти помогнат
да разбереш някой неща относно употребата и писането на драйвери


Прикачени файлове:
linux_books.tar.gz [4.48 MiB]
398 пъти
Вто Май 11, 2010 10:36 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Май 23, 2006 4:56 pm
Мнения: 113
Местоположение: Варна
Мнение 
Благодаря за книжките, има много полезна информация в тях и със сигурност ще са ми от полза, пък и на всеки друг който се занимава с това.

Проблема при мен не беше толкова писането на драйвери, отколкото ползването на готови. Примери за драйвери има колкото искаш в нета. Когато си пишеш сам драйвер започваш от нула и всичко ти е ясно :) С готовите драйвери не е точно така. А аз опит с драйвери на линукс много много нямам, да не кажа че хич нямам.

В крайна сметка всичко тръгна, драйвера си намира сам датчика и мери температурата. Друг е въпроса, че този драйвер нещо ми тормози много процесора и под 0.4 не слиза, при положение че без него е почти на 0, но причината за това ще търся по-нататък.

Оказа се ( какво откритие :D ), че драйверите търсят точно определени структури за да работят. Структура от тип platform_device, която описва хардуера с който ще трябва да работи драйвера. Проблема при мен беше че нямаше дефинирана такава структура. Като я добавих и всичко тръгна. Просто 5 реда в init кода на платката, за 5 мин работа... ама това просто никъде не е описано.

Утре смятам да си поиграя с SPI и I2C, мисля че вече му хванах цаката :)


Пет Май 14, 2010 8:12 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Дек 19, 2005 12:21 pm
Мнения: 1038
Мнение 
platform_device се ползва често в embedded системите. Описват се устройства свързани директно на разни шини като i2c, spi и други при които няма стандартен начин за autodetect. Трябва да се изброят кои устройства на кои шини и адреси има за да се заредят коректните драйвери.

Документацията не винаги е блестяща, но в конкретния случай я има. Прегледай Documentation директорията която е в архива със изходния код на Линукс ядрото. За този случай по-точно /Documentation/driver-model/platform.txt. Ако там няма това, което те интересува търсиш из архивите на LKML или друг пощенски списък за конкретната подсистема или архитектура. Ако и там не успееш - четеш изходния код и коментарите в него.

Не знам какви книги е пратил колегата в архива, но за случая Linux Device Drivers, Linux Kernel development и един куп има още специално за embedded linux. Тук също има интересни неща - http://free-electrons.com/docs/


Пон Май 17, 2010 11:55 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни