Доброго Здоровья!
Стоит задача создать приложение, работающее с устройством, подключенным к процессору AM3354 через интерфейс SPI.
Так как опыт работы с Linux сравнительно небольшой, было принято решение строить взаимодействие с железом через драйвер "spidev".
По этому поводу на хабре наше две статьи:
Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть первая, обзорная) Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть вторая, практическая) На первом шаге следует добиться появления в системе устройства /dev/spidevX.Y, для этого в настройках ядра добавляю:
Код
Device Drivers ---> SPI
Device Drivers ---> SPI ---> Atmel SPI Controller
Device Drivers ---> SPI ---> User mode SPI device driver support
Затем в файле arch/arm/mach-omap2/board-am335xevm.c добавляю структуру:
Код
static struct spi_board_info am335x_spi1_master_info[] = {
{
.modalias = "spidev",
.chip_select = 2,
.max_speed_hz = 6 * 1000 * 1000,
.mode = SPI_MODE_0,
.bus_num = 1,
},
};
и "регистрирую эту структуру:
Код
static void spi1_init(int evm_id, int profile)
{
setup_pin_mux(spi1_pin_mux);
spi_register_board_info(am335x_spi1_master_info,
ARRAY_SIZE(am335x_spi1_master_info));
return;
}
Пересобираем ядро, заливаем, загружаемся. В системе нет /dev/spidevX.Y.
некоторый оптимизм внушает наличие: /sys/class/spi_master/ и /sys/class/spidev/, причем последняя директория пуста.
Код
root@var-som-am33:~# ls /sys/class/spi_master/
spi1 spi2
root@var-som-am33:~# ls /sys/class/spi_master/spi2
device power subsystem uevent
Что может быть? Как получить устройство /dev/spidevX.Y? Складывается впечатление, что бутерброд не правильно ем, или лыжи не едут.