Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как зажечь светик на mpc8323e-rdb
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Славка
Есть у меня сабжевый кит с линукс на борту. На нем есть 3 светика r y b подключенные к портам GPIO 416,417,418...
Ясен пень нужно на эти порты записать 0, и они зажгуться... начал с поиска как пользоваться GPIO...
http://www.mjmwired.net/kernel/Documentation/gpio.txt
посмотрел в /dev/ и не нашел модуля gpio... попробовал ~modprobe gpio результат FATAL: Module gpio not found.
есть ли другой способ их зажечь?? если нет, то как поставить этот модуль... хотя бы ссылку где взять
и как ставятся модули в линукс...
линукс собирался в Ltib с диска к киту...
Linux version 2.6.20.6 (r43496@ont06-sps-ultra.am.freescale.net) (gcc version 4.0.2 20060628 (Wasabi))
cpl
Цитата(Славка @ Apr 8 2010, 12:15) *
Есть у меня сабжевый кит с линукс на борту. На нем есть 3 светика r y b подключенные к портам GPIO 416,417,418...
Ясен пень нужно на эти порты записать 0, и они зажгуться... начал с поиска как пользоваться GPIO...
http://www.mjmwired.net/kernel/Documentation/gpio.txt
посмотрел в /dev/ и не нашел модуля gpio... попробовал ~modprobe gpio результат FATAL: Module gpio not found.
есть ли другой способ их зажечь?? если нет, то как поставить этот модуль... хотя бы ссылку где взять
и как ставятся модули в линукс...
линукс собирался в Ltib с диска к киту...
Linux version 2.6.20.6 (r43496@ont06-sps-ultra.am.freescale.net) (gcc version 4.0.2 20060628 (Wasabi))


попробуйте поискать в ядре gpio char interface:
(для uclinux):
device drivers->charaster devices->simple gpio char interface
далее пересобрать ядро.
Славка
У меня не ucLinux sad.gif
нет там нигде такого... есть в кросстулах две библиотеки ioctl.h и ite_gpio.h...
чо это такое до сих пор вдуплить не могу sad.gif но явно в них над ковыряца...
Чо ж так трудно то светик зажечь в Линуксе? smile.gif
mdmitry
Цитата(Славка @ Apr 8 2010, 14:51) *
Чо ж так трудно то светик зажечь в Линуксе? smile.gif

Возьмите примеры от другого процессора и посмотрите как делается (несколько способов). Этот вопрос неоднократно обсуждался для AT91SAM926x в разных местах и на разных форумах.
Славка
Цитата(mdmitry @ Apr 8 2010, 18:46) *
Возьмите примеры от другого процессора и посмотрите как делается (несколько способов). Этот вопрос неоднократно обсуждался для AT91SAM926x в разных местах и на разных форумах.

Вот именно что у других процессоров есть либо драйвер, либо функции управления портами в BSP. А у этого не нашел таких. У этого проца GPIO привязан к памяти. Чтоб что то изменить надо обращаться непосредсвтенно в область памяти... Но как то это через попу получается... Пока внятного примера для этого проца не нашел.
Славка
Цитата
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>

#define PIO_BASE 0x0x00001400

volatile unsigned int *CPDATD; //PortD data register
volatile unsigned int *CPDIR2D; //PortD datadirection2 register

int main (void)
{
//long delay=128000, delay2=100;
unsigned char *gpio;
int fd;
fd = open("/dev/mem", O_RDWR);
if (fd < 0){
printf("Failed to open /dev/mem");
return fd;
}
gpio = mmap(0, getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, fd, PIO_BASE);

CPDATD = (unsigned int *)(gpio + 0x4C); //data
CPDIR2D = (unsigned int *)(gpio + 0x54);

*CPDIR2D |= 0x02;//set output
*CPDATD ^= (1 << 16);// turn ON Red LED (port D16)

return 0;
}

Вот такую програмку накатал...В даташите на mpc8323e есть адресс:
0x00_1400–0x00_17FF QUICC Engine parallel I/O ports 168 bytes 1 Kbyte

Вот только запускаю и выдает Segmentation fault... причем ругается когда я записываю что то в память...
*CPDIR2D |= 0x02;//set output
*CPDATD ^= (1 << 16);// turn ON Red LED (port D16)
На эти две строчки... Есть смутное сомнение, что адресс из даташита не имеет никакого отношения к памяти линукса...
Она распределяет как ей удобней... в исходниках кернела не нашел адресса для I/O... такое ощущение что в этой сборке зажечь светик тупо невозможно sad.gif
mdmitry
Посмотрите как реализовано для других архитектур и попробуйте сделать по аналогии. (Исходники ядра).
bb-offtopic.gif На форуме кросс-постинг наказуем. Выберите тему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.