und68 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 (изменено) · Жалоба Есть свой самописный драйвер работый с 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 выдает ошибку. Скорее всего что в таймерной области что-то еще изменились - но как это найти и самое главное понять принципы не очень болезненного перехода между версия. Пока никакие файлы не подклеиваю в надежде что мне помогут понять сам метод поиска изменений Изменено 23 ноября, 2012 пользователем und68 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kurtis 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 · Жалоба Какую ошибку выдает? Драйвер в виде модуля, или в составе ядра? Ошибку выдает в run-time или при компиляции? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
und68 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 · Жалоба Какую ошибку выдает? Драйвер в виде модуля, или в составе ядра? Ошибку выдает в run-time или при компиляции? Драйвер в виде модуля Ошибки при компиляции поправил Ошибку выдает при установке - когда при выполнении фунции static int __init ext_adc_init (void){(инициализация драйвера) доходит до request_irq. И она выдает ненулевой код возврата Файлы подклеит не могу - выдает " Неудачная загрузка. Вам запрещено загружать такой тип файлов" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kurtis 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 · Жалоба Приведите сообщение об ошибке. Если вы собираете модуль в отдельной директории, то может быть вы при сборке используете старое ядро, соответственно, модуль у вас получается для старого ядра и новое его грузить не хочет. Прикреплять файл необязательно, достаточно вставить его в сообщение с соответствующим тегом. По поводу кода возврата, то нужно смотреть что именно оно возвращает, и дальше уже по коду смотреть, где похожая проблема может возникать. Возможно, прерывание, которое вы запрашиваете, уже кем-то занято. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
und68 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 (изменено) · Жалоба Приведите сообщение об ошибке. Если вы собираете модуль в отдельной директории, то может быть вы при сборке используете старое ядро, соответственно, модуль у вас получается для старого ядра и новое его грузить не хочет. Прикреплять файл необязательно, достаточно вставить его в сообщение с соответствующим тегом. По поводу кода возврата, то нужно смотреть что именно оно возвращает, и дальше уже по коду смотреть, где похожая проблема может возникать. Возможно, прерывание, которое вы запрашиваете, уже кем-то занято. При сборке модуля используется новое ядро(проверено). Сообщения при загрузке нет. Только драйвер ругается на анализ кода возврата от request_irq. Это ffffffea Изменено 23 ноября, 2012 пользователем und68 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kurtis 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 · Жалоба Это ffffffea думаю что это -22, т.е. -EINVAL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
und68 0 23 ноября, 2012 Опубликовано 23 ноября, 2012 (изменено) · Жалоба думаю что это -22, т.е. -EINVAL Ну я как бы сам об этом догадался. Но 2.6.33.20 при этих условиях возвращала 0 И прерывание тоже было 17. Тогда на что мне надо проверять возврат request_irq что бы убедится что все все прошло нормально Изменено 23 ноября, 2012 пользователем und68 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 23 ноября, 2012 Опубликовано 23 ноября, 2012 · Жалоба Ступил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Olej 0 27 декабря, 2012 Опубликовано 27 декабря, 2012 · Жалоба Ну я как бы сам об этом догадался. Но 2.6.33.20 при этих условиях возвращала 0 И прерывание тоже было 17. Тогда на что мне надо проверять возврат request_irq что бы убедится что все все прошло нормально Сравнивайте версии: Linux Cross Reference - очень помогает разобраться в изменениях API ядра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться