roboforum.ru

Технический форум по робототехнике.


Компиляция модулей

Компиляция модулей

Сообщение edwardoid » 28 авг 2011, 10:18

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

Re: Компиляция модулей

Сообщение Strijar » 28 авг 2011, 14:36

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

Re: Компиляция модулей

Сообщение edwardoid » 28 авг 2011, 19:32

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

Re: Компиляция модулей

Сообщение Strijar » 28 авг 2011, 20:07

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

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

Добавлено спустя 4 минуты 3 секунды:
Еще вариант - если вам нужно просто "дрыгать ногой" то это можно сделать прямо из пользовательского приложения, через IO регистры - используя mmap() на /dev/mem
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Компиляция модулей

Сообщение edwardoid » 29 авг 2011, 00:06

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

Re: Компиляция модулей

Сообщение Strijar » 29 авг 2011, 10:06

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

Re: Компиляция модулей

Сообщение edwardoid » 29 авг 2011, 22:13

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

Re: Компиляция модулей

Сообщение Strijar » 30 авг 2011, 11:31

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

Re: Компиляция модулей

Сообщение setar » 01 сен 2011, 04:04

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


Вернуться в mini2440

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

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