Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переход на Linux под ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
pavel_k
Начал разработку на ARM9 (Cirrus EP9312) под Linux.
Раньше писал под AVR и SAM7S, но без ОС, а тут возникли вопросы по азам, которые пока не могу уяснить.
Как производится работа с периферией под Linux?
Понятно, что устройства в Linux представлены в файловой системе. Как происходит обращение например к таймерам, PWM и другим блокам, которых нет в PC? нужно ли для этого писать свои kernel modules или есть какие-то другие механизмы? Есть примерчик, где показан вариант работы с регистрами через "/dev/mem". С этим вроде всё ясно: настроить регистры не проблема, а вот кто будет отвечать за прерывания того же таймера или внешние прерывания от линий данных? Если ядро, то как ему объяснить чего я хочу 07.gif

Спасибо!
amw
Цитата(pavel_k @ Aug 14 2007, 14:37) *
Начал разработку на ARM9 (Cirrus EP9312) под Linux.
Раньше писал под AVR и SAM7S, но без ОС, а тут возникли вопросы по азам, которые пока не могу уяснить.
Как производится работа с периферией под Linux?
Понятно, что устройства в Linux представлены в файловой системе. Как происходит обращение например к таймерам, PWM и другим блокам, которых нет в PC? нужно ли для этого писать свои kernel modules или есть какие-то другие механизмы? Есть примерчик, где показан вариант работы с регистрами через "/dev/mem". С этим вроде всё ясно: настроить регистры не проблема, а вот кто будет отвечать за прерывания того же таймера или внешние прерывания от линий данных? Если ядро, то как ему объяснить чего я хочу 07.gif

Спасибо!


Думаю, что на большинство вопросов есть ответы в архивах списка рассылки h_t_t_p:_/_/_www (dot) arm (dot) linux (dot) org (dot) uk
Рекомендую почитать архивы и подписаться на рассылку.

Прерывания - только через модули ядра.

Сабжевый камень, кажется (я не занимался этим кмнем), поддерживается в ядре, так что посмотрите исходники.

Хорошая книжка по написанию модулей с примерами Linux Device Drivers Third Edition (LDD3). Наверное есть на ftp, но на всякий случай h_t_t_p:_/_/_lwn (dot) net/Articles/155655/
Ну и сам LWN.
pavel_k
Спасибо большое за ответ!
Изучаю "Linux Device Drivers" и модули уже стали загружаться в ядро smile.gif


Может у кого-нибудь из уважаемых разработчиков есть пример драйвера для timer'а или другой периферии? Так сказать, для наглядности.
Idle
Цитата(pavel_k @ Aug 14 2007, 15:37) *
Есть примерчик, где показан вариант работы с регистрами через "/dev/mem". С этим вроде всё ясно: настроить регистры не проблема

Я вот тоже начал. Ткните в этот примерчик. Нужно пока только изменять настройки в регистрах.

А никто не подскажет, как принято оформлять код, который только меняет (по запросу пользователя, с консоли, например) эти самые настройки в регистрах. Т.е. это драйвер или user-space программа отдельная...?
pavel_k
Цитата(Idle @ Aug 20 2007, 08:38) *
Я вот тоже начал. Ткните в этот примерчик. Нужно пока только изменять настройки в регистрах.


Два файла для Cirrus Logic EP39xx ARM920T
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.