В итоге сделал как там и говорилось: включил поддержку spidev в ядре, подредактировал at91sam9260_devices.c сделав short enable_spi1 = 1.
Ядро загружается, есть строчка atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13). В каталоге sys/devices есть spidev. В /dev устройств spi нет. Я так понял они должны появиться после запуска модуля.
Нашел пример модуля:
Насколько я понял данный модуль при инициализации посылает по SPI1 по CS1 2 байта и выгружается.
Проблема возникла с компиляцией. Порылся в интернете но так и не нашел как компилировать модули к ядру с помощью codesourcery (может быть не там/плохо искал).
Собственно скачал Codesourcery for ARM GNU/Linux & IA32 GNU/Linux версии arm-2007q1-22. С помощью нее компилировал ядро, т.е она работает (компилировал не сам задавая значения а скачал пример сборки).
Создал файл myspidev.c. Попробовал откомпилировать так:
Еще один вопрос появился - а как скомпилировать программу под линукс на ARM?
Пишу простой код hello world.c
Далее пишу:
arm-none-linux-gnueabi-gcc -mcpu=arm926ej-s helloworld.c -o helloworld
Потом копирую фаил в папку и стартую плату. Загружается линукс.
Далее пишу ./helloworld
На что он мне ругается что No such file or directory. Попытка запуска через mc приводит к томуже. Причем файл лежит в папке и никуда не девается. В чем может быть проблема? Может он неправильно скомпилирован?
вероятно не хватает ключа -static
после обычной компиляции дайте команду ls -l
потом компиляция с этим ключом и еще раз ls -l
смотрите размер конечного файла
update и еще права на запуск файла проверьте. мало ли..
Jury093 спасибо, добавил параметр статик и программа стала запускаться.
Появился еще вопрос один. Я хочу использовать SPI1 с CS1 который на ножке PC5 находится.
В файле board-sam9260ek.c в секцию spi устройств я написал:
Теперь нужно зайти в линукс и написать команду mknod /dev/spidev c 153 0 и после долны появиться устройство /dev/spidev1.1 которое можно будет использовать??
Я читал эту тему. Там я так понял основная проблема была в том что в board-sam9260ek.c не были добавлены нужные строчки.
Я все это сделал но устойства не появляются. Скорее всего это из за того что в файловой системе нет udev или mdev. Следовательно нужно создать устройство руками но я не могу понять какой минорный номер будет у моего устройства если в исходниках оно объявлено как написано постом выше