Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ARM926 GPIO (OSK5912)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Vladimir_
Пробую управлять GPIO на отладке TI OSK5912.
Использую кросс-компилятор GCC-3.4.1. При попытке вызова любой фукнции, описанной в gpio.h компилятор ругается, хотя само ядро 2.6.18 собирает без проблемм, ядро работает нормально...
Нет ли кого, кто уже ходил по этому пути?
Artem-1.6E-19
Цитата(Vladimir_ @ Dec 18 2006, 14:55) *
Пробую управлять GPIO на отладке TI OSK5912.
Использую кросс-компилятор GCC-3.4.1. При попытке вызова любой фукнции, описанной в gpio.h компилятор ругается, хотя само ядро 2.6.18 собирает без проблемм, ядро работает нормально...
Нет ли кого, кто уже ходил по этому пути?

Телепатов тут нет. (ИМХО)
Так что приводите подробно ругань которую выдает компилятор.
Vladimir_
Цитата(Artem-1.6E-19 @ Dec 18 2006, 16:16) *
Цитата(Vladimir_ @ Dec 18 2006, 14:55) *

Пробую управлять GPIO на отладке TI OSK5912.
Использую кросс-компилятор GCC-3.4.1. При попытке вызова любой фукнции, описанной в gpio.h компилятор ругается, хотя само ядро 2.6.18 собирает без проблемм, ядро работает нормально...
Нет ли кого, кто уже ходил по этому пути?

Телепатов тут нет. (ИМХО)
Так что приводите подробно ругань которую выдает компилятор.


Programm:

#include <stdio.h>

#include "/usr/src/linux-2.6.18/include/asm/arch/gpio.h"


int main()
{
int ret;
omap_request_gpio(3);
omap_set_gpio_direction(3,0);
omap_get_datain(3);
}

--------------------Configuration: GPIO2 - Linux Debug--------------------
Compiling source file(s)...
main.c
main.c: In function `main':
main.c:12: warning: implicit declaration of function `omap_get_datain'
main.c:9: warning: unused variable `ret'
main.c:16: warning: control reaches end of non-void function
Linking...
/root/GPIO2/Debug/main.o(.text+0x14): In function `main':
/root/GPIO2/main.c:10: undefined reference to `omap_request_gpio'
/root/GPIO2/Debug/main.o(.text+0x20):/root/GPIO2/main.c:11: undefined reference to `omap_set_gpio_direction'
/root/GPIO2/Debug/main.o(.text+0x28):/root/GPIO2/main.c:12: undefined reference to `omap_get_datain'
collect2: ld returned 1 exit status

GPIO2 - 3 error(s), 3 warning(s)
Artem-1.6E-19
Цитата(Vladimir_ @ Dec 18 2006, 15:59) *
Цитата(Artem-1.6E-19 @ Dec 18 2006, 16:16) *

Цитата(Vladimir_ @ Dec 18 2006, 14:55) *

Пробую управлять GPIO на отладке TI OSK5912.
Использую кросс-компилятор GCC-3.4.1. При попытке вызова любой фукнции, описанной в gpio.h компилятор ругается, хотя само ядро 2.6.18 собирает без проблемм, ядро работает нормально...
Нет ли кого, кто уже ходил по этому пути?

Телепатов тут нет. (ИМХО)
Так что приводите подробно ругань которую выдает компилятор.


Programm:

#include <stdio.h>

#include "/usr/src/linux-2.6.18/include/asm/arch/gpio.h"

Уверены?
У меня оно так
/usr/src/linux-2.6.16.21-0.13/include/asm-arm/arch-omap/gpio.h
Цитата
int main()
{
int ret;
omap_request_gpio(3);
omap_set_gpio_direction(3,0);
omap_get_datain(3);
}

--------------------Configuration: GPIO2 - Linux Debug--------------------
Compiling source file(s)...
main.c
main.c: In function `main':
main.c:12: warning: implicit declaration of function `omap_get_datain'

У меня оно декларировакно как
extern int omap_get_gpio_datain(int gpio);
Цитата
main.c:9: warning: unused variable `ret'
main.c:16: warning: control reaches end of non-void function
Linking...
/root/GPIO2/Debug/main.o(.text+0x14): In function `main':
/root/GPIO2/main.c:10: undefined reference to `omap_request_gpio'
/root/GPIO2/Debug/main.o(.text+0x20):/root/GPIO2/main.c:11: undefined reference to `omap_set_gpio_direction'
/root/GPIO2/Debug/main.o(.text+0x28):/root/GPIO2/main.c:12: undefined reference to `omap_get_datain'
collect2: ld returned 1 exit status
GPIO2 - 3 error(s), 3 warning(s)

Это вообще не правильно. Эта функция доступна только в кеннел-спейсе. То есть качаем HOWTO как писать модули для перед. Не main а init_module итд.
Vladimir_
[#include <stdio.h>

#include "/usr/src/linux-2.6.18/include/asm/arch/gpio.h"
[/quote]
Уверены?

Да уверен, т.к. ядро собрано и работает, соответственно, линки существуют и стоят правильно.

У меня оно так
/usr/src/linux-2.6.16.21-0.13/include/asm-arm/arch-omap/gpio.h

Так тоже пробовал (от безисходности).

[quote]
int main()
{
int ret;
omap_request_gpio(3);
omap_set_gpio_direction(3,0);
omap_get_datain(3);
}

--------------------Configuration: GPIO2 - Linux Debug--------------------
Compiling source file(s)...
main.c
main.c: In function `main':
main.c:12: warning: implicit declaration of function `omap_get_datain'
[/quote]
У меня оно декларировакно как
extern int omap_get_gpio_datain(int gpio);
[quote]
main.c:9: warning: unused variable `ret'
main.c:16: warning: control reaches end of non-void function
Linking...
/root/GPIO2/Debug/main.o(.text+0x14): In function `main':
/root/GPIO2/main.c:10: undefined reference to `omap_request_gpio'
/root/GPIO2/Debug/main.o(.text+0x20):/root/GPIO2/main.c:11: undefined reference to `omap_set_gpio_direction'
/root/GPIO2/Debug/main.o(.text+0x28):/root/GPIO2/main.c:12: undefined reference to `omap_get_datain'
collect2: ld returned 1 exit status
GPIO2 - 3 error(s), 3 warning(s)
[/quote]
Это вообще не правильно. Эта функция доступна только в кеннел-спейсе. То есть качаем HOWTO как писать модули для перед. Не main а init_module итд.

Оооопс! Это, видимо, и есть ответ. Спасибо большое!

Один только вопрос:"Почему?" . В смысле, что почитать на эту тему?



[/quote]
Artem-1.6E-19
1. Вам нужно разобраться как на С писать.
2. В гугле поиск по Linux Kernel module writing
Vladimir_
Цитата(Artem-1.6E-19 @ Dec 18 2006, 17:53) *
1. Вам нужно разобраться как на С писать.
2. В гугле поиск по Linux Kernel module writing


Не взирая на сарказм, спасибо большое за помощь! Все получилось и заработало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.