Перейти к содержанию
    

Самописный драйвер и версия Linux

Есть свой самописный драйвер работый с 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какую ошибку выдает? Драйвер в виде модуля, или в составе ядра? Ошибку выдает в run-time или при компиляции?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какую ошибку выдает? Драйвер в виде модуля, или в составе ядра? Ошибку выдает в run-time или при компиляции?

Драйвер в виде модуля

Ошибки при компиляции поправил

Ошибку выдает при установке - когда при выполнении фунции static int __init ext_adc_init (void){(инициализация драйвера) доходит до

request_irq. И она выдает ненулевой код возврата

Файлы подклеит не могу - выдает " Неудачная загрузка. Вам запрещено загружать такой тип файлов"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

Изменено пользователем und68

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

думаю что это -22, т.е. -EINVAL

Ну я как бы сам об этом догадался. Но 2.6.33.20 при этих условиях возвращала 0

И прерывание тоже было 17.

Тогда на что мне надо проверять возврат request_irq что бы убедится что все все прошло нормально

Изменено пользователем und68

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну я как бы сам об этом догадался. Но 2.6.33.20 при этих условиях возвращала 0

И прерывание тоже было 17.

Тогда на что мне надо проверять возврат request_irq что бы убедится что все все прошло нормально

 

Сравнивайте версии: Linux Cross Reference - очень помогает разобраться в изменениях API ядра.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...