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

 
 
 
Reply to this topicStart new topic
> Самописный драйвер и версия Linux
und68
сообщение Nov 23 2012, 10:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-03-12
Пользователь №: 71 060



Есть свой самописный драйвер работый с PLIS платы at91sam9x515-s3e. Написан по мотивам http://dmilvdv.narod.ru/AT91SAM9260/index.html?linux.html.
В 2.6.33.20 работает без проблем. Надо поставить более свежую версию из линейки 3.6.x.
Linux на плате поднял(помогли со стартекитовского форму). Драйвер немного переделал(изменились имена констант определения регистров и прочию мелочи). Построил драйвер но функция
ret = request_irq(AT91SAM9260_ID_TC0, // Interrupt number
at91tc0_isr, // Pointer to the interrupt sub-routine
IRQF_TIMER, IRQF_IRQPOLL,
"ext_adc", // Device name to show as owner in /proc/interrupts
NULL); // Private data for shared interrupts
выдает ошибку. Скорее всего что в таймерной области что-то еще изменились - но как это найти и самое главное понять принципы не очень болезненного перехода между версия. Пока никакие файлы не подклеиваю в надежде что мне помогут понять сам метод поиска изменений

Сообщение отредактировал und68 - Nov 23 2012, 10:21
Go to the top of the page
 
+Quote Post
kurtis
сообщение Nov 23 2012, 11:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Какую ошибку выдает? Драйвер в виде модуля, или в составе ядра? Ошибку выдает в run-time или при компиляции?
Go to the top of the page
 
+Quote Post
und68
сообщение Nov 23 2012, 11:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-03-12
Пользователь №: 71 060



Цитата(kurtis @ Nov 23 2012, 15:19) *
Какую ошибку выдает? Драйвер в виде модуля, или в составе ядра? Ошибку выдает в run-time или при компиляции?

Драйвер в виде модуля
Ошибки при компиляции поправил
Ошибку выдает при установке - когда при выполнении фунции static int __init ext_adc_init (void){(инициализация драйвера) доходит до
request_irq. И она выдает ненулевой код возврата
Файлы подклеит не могу - выдает " Неудачная загрузка. Вам запрещено загружать такой тип файлов"
Go to the top of the page
 
+Quote Post
kurtis
сообщение Nov 23 2012, 12:45
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Приведите сообщение об ошибке.

Если вы собираете модуль в отдельной директории, то может быть вы при сборке используете старое ядро, соответственно, модуль у вас получается для старого ядра и новое его грузить не хочет. Прикреплять файл необязательно, достаточно вставить его в сообщение с соответствующим тегом.
По поводу кода возврата, то нужно смотреть что именно оно возвращает, и дальше уже по коду смотреть, где похожая проблема может возникать. Возможно, прерывание, которое вы запрашиваете, уже кем-то занято.
Go to the top of the page
 
+Quote Post
und68
сообщение Nov 23 2012, 12:55
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-03-12
Пользователь №: 71 060



Цитата(kurtis @ Nov 23 2012, 16:45) *
Приведите сообщение об ошибке.

Если вы собираете модуль в отдельной директории, то может быть вы при сборке используете старое ядро, соответственно, модуль у вас получается для старого ядра и новое его грузить не хочет. Прикреплять файл необязательно, достаточно вставить его в сообщение с соответствующим тегом.
По поводу кода возврата, то нужно смотреть что именно оно возвращает, и дальше уже по коду смотреть, где похожая проблема может возникать. Возможно, прерывание, которое вы запрашиваете, уже кем-то занято.

При сборке модуля используется новое ядро(проверено). Сообщения при загрузке нет. Только драйвер ругается на анализ кода возврата от request_irq. Это ffffffea

Сообщение отредактировал und68 - Nov 23 2012, 13:10
Go to the top of the page
 
+Quote Post
kurtis
сообщение Nov 23 2012, 13:23
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Цитата
Это ffffffea

думаю что это -22, т.е. -EINVAL
Go to the top of the page
 
+Quote Post
und68
сообщение Nov 23 2012, 13:31
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-03-12
Пользователь №: 71 060



Цитата(kurtis @ Nov 23 2012, 17:23) *
думаю что это -22, т.е. -EINVAL

Ну я как бы сам об этом догадался. Но 2.6.33.20 при этих условиях возвращала 0
И прерывание тоже было 17.
Тогда на что мне надо проверять возврат request_irq что бы убедится что все все прошло нормально

Сообщение отредактировал und68 - Nov 23 2012, 13:43
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 23 2012, 13:34
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Ступил.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Olej
сообщение Dec 27 2012, 00:12
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(und68 @ Nov 23 2012, 17:31) *
Ну я как бы сам об этом догадался. Но 2.6.33.20 при этих условиях возвращала 0
И прерывание тоже было 17.
Тогда на что мне надо проверять возврат request_irq что бы убедится что все все прошло нормально


Сравнивайте версии: Linux Cross Reference - очень помогает разобраться в изменениях API ядра.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 18:53
Рейтинг@Mail.ru


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