Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: at91sam9xeek + Linux + SPI
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Отладочные платы
sangre
на отладочной плате установлен линукс, необходимо работать с spi, отладочная плата планируется быть мастером.

как подходить к этому вопросу? с чего начинать? после рытья в гугле и аглицких форумов предполагаю что нужно
вписать какое нибудь устройство в исходники ядра, и перекомпилить его. но после перекомпилировки устройство
которое я вписал не появилось в списке устройств в директории /dev. дальше насколько я понял пишется драйвер,
он же модуль ядра, через который все и работается. но, как из приложения работать с модулем? как в приложении
увидеть функции, описанные в модуле?

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

в общем пока в голове каша, теперь по крупицам собираю инфу и нужно все как то в голове систематизировать,
кто что знает, как и что делать, поделитесь опытом.
mdmitry
Воспользуйтесь поиском по форуму. Это обсуждалось.
sangre
что то как то поиск не очень удался, как то все везде сумбурно...
Dron_Gus
Вы подробней расскажите, с чем Вы хотите работать по spi.
sangre
контроллер вроде как должен быть. а это имеет значение? насколько я понимаю, с моего линукса наверно без разницы с чем работать. контроллер spi вроде выбран, в плате их 2, я выбрал 2, cs я так полагаю нужно задавать уже из приложения.
Dron_Gus
Просто для кучи железа, которое можно повесить на SPI, в линуксе уже есть драйвера. Не вижу смысла напрямую работать с SPI из приложения. Разве что что-то совсем специфичное.
sangre
блин, разумно. но не факт что не придется драйвера писать. пока я вообще не знаю как все это разрабатывать =( инфа вся какая то разрозненная
Dron_Gus
Посмотрите на какой-нить простой драйвер. Например ./drivers/hwmon/lis3lv02d_spi.c и ./drivers/hwmon/lis3lv02d.c
sangre
это насколько я понимаю собирается в модуль? который будет .ko, т.е. драйвер устройства. само устройство я так полагаю описано в какой нибудь плате? и при сборке ядра устройство собирается в ядро, а этот драйвер будет либо в ядре, либо должен будет подключаться вручную?
и еще, это устройство получается уже прицеплено к какому нибудь spi контроллеру, и cs уже жестко задан?
Dron_Gus
Можно в модуль, можно вкомпилировать.
Устройство описывается структурой spi_board_info, которую надо передать в spi_register_board_info во время инициализации вашей платформы. Контроллер и CS должны быть определены.
sangre
вот с этой структурой интресная история. я собирал ядро и фс openembedded`om, он собирает ангстром дистрибутив, его можно выкачать на linux4sam, он интересно все собирает, я еще толком не разобрался как он это делает, но это думаю вопрос времени. вот, он там сначала шаманит с ядром 2.6.27, потом с ядром 2.6.30, на выходе рабочее ядро 2.6.30. я в spi.h добавлял свое устройство, условно device, в оба исходника, и в 2.6.27 и в 2.6.30, когда он компилирует 2.6.27 все нормально, а в 2.6.30 - ругаецца, говорит что неправильное описание. хотя вроде все по исходникам. после того как закоментил некоторые моменты, он скомпилировал, но в /dev моего устройства не появилось. появился файл в /sys/device типа spi_1.1 вроде тот который я сделал. как дальше пользоваться утсройством? оно должно быть в /dev или нет? для чего устройство в /sys/device? что с этим делать? как работать с spi? в даташите писано, ежели хотите писать-читать, то вот вам регистры(а это ячейки памяти) пользуйтесь на здоровье, естессно операционка не дает туда ничего писать. я так полагаю необходим модуль, который как я думаю уже будет туда и писать и читать?
Dron_Gus
Читайте http://www.mjmwired.net/kernel/Documentation/spi/spi-summary http://www.mjmwired.net/kernel/Documentation/spi/spidev и http://www.kernel.org/pub/linux/utils/kern...tplug/udev.html . Грубо говоря SPI это интерфейс. Если на нем есть устройства - udev создаст соответствующие записи в /dev .
sangre
благодарю за ссылки, почитаю =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.