roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 18:28

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Компиляция модулей
СообщениеДобавлено: 28 авг 2011, 10:18 
Не в сети

Зарегистрирован: 22 авг 2011, 12:33
Сообщения: 15
Господа, как скомпилировать что-либо как модуль для ядра? Мне нужно скомпилировать модуль для GPIO (/sys/class/gpio ). Как это делается? Смогу ли я через modprobe gpio.ko получить в /sys/class директорию и файлы для GPIO?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 28 авг 2011, 14:36 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
при настройке ядра включите gpio как модуль - [M] и после сборки ядра он будет модулем. Если при настройке ядра GPIO вообще выключен - то не получиться его туда загрузить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 28 авг 2011, 19:32 
Не в сети

Зарегистрирован: 22 авг 2011, 12:33
Сообщения: 15
В смысле? Ядро обязательно должно знать какие потенциально модули будут потом подключены? А можно как-то помянять ядро, не перепрошивая?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 28 авг 2011, 20:07 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Если написать свой модуль который будет использовать только те функции, что есть в вашем ядре - то можно.

Поменять ядро не перепрошивая можно только если пользоваться удаленой загрузкой - например если у вас загрузчик u-boot то можно загружать ядро по tftp не затирая старое. Но для этого нужно что бы была доступна сеть и tftp сервер с файлом ядра. Т.е. имеет смысл только на этапе отладки.

Добавлено спустя 4 минуты 3 секунды:
Еще вариант - если вам нужно просто "дрыгать ногой" то это можно сделать прямо из пользовательского приложения, через IO регистры - используя mmap() на /dev/mem


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 29 авг 2011, 00:06 
Не в сети

Зарегистрирован: 22 авг 2011, 12:33
Сообщения: 15
мне нужно переводить ножки GPIO из положения "читать" в положение "писать" и обратно. Вы это имели ввиду под "дрыгать"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 29 авг 2011, 10:06 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Ну если просто менять режим - так это просто. Поищите в сети по словам gpio mmap или "GPIO access from userspace"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 29 авг 2011, 22:13 
Не в сети

Зарегистрирован: 22 авг 2011, 12:33
Сообщения: 15
погуглил, нифига не понял. Если на гпио сидит конвертер на сериал порт, смогу ли я так контролировать чтение/запись. Ведь мне нужно и писать в порт, и читать оттуда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 30 авг 2011, 11:31 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Я чего то вообще не понял ваше задачу. Я вам говорю - если вы не хотите переливать ядро или писать свой собственный драйвер, вы можете получить доступ к конфигурационным регистрам процессора из пользовательского приложения. Обычно это делается в драйверах - и это правильно. Все что вы можете делать через "регистры" вы можете делать. Линукс тут уже не при чем, изучайте ваш процессор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция модулей
СообщениеДобавлено: 01 сен 2011, 04:04 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
насколько я понял edwardoid хотел бы "подсобрать" модуль GPIO не пересобирая ядра.
В принципе сделать это можно, только нужно иметь полностью идентичный уже собранному ядру исходный код, переменные окружения и кросс компилятор.
На практике такое получить можно лишь самостоятельно полностью пересобрав ядро.
Если собирали сами, то без проблем - добавляете в конфиге модуль и делаете make modules


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO