TOP
SSV SOFTWARE SYSTEMS REGISTER  REGISTER
Log in to check your private messages  Log in to check your private messages
START FAQ SEARCH MITGLIEDER PROFILE  Log in 
SSV-Forum
Probleme beim Bauen der Interrupt-Demos.

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/2110
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
cra



Joined: 19 May 2007
Posts: 6

PostPosted: 19.05.2007, 12:00    Post subject: Probleme beim Bauen der Interrupt-Demos. Reply with quote

Hallo,
Ich wollte das Interrupt Beispiel aus Linux/demos/ssvirq_demo-dnp2110 übersetzen:
nach dem ich make aufgerufen habe bekomme ich folgende Fehlermeldung:

>>>
/usr/local/arm-xscale-linux/bin/arm-xscale-linux-gcc -D__KERNEL__ -DMODULE -O2 -Wall -Wstrict-prototypes -I/usr/src/linux-2.4.19-rmk7-pxa2-ssv1/include -march=armv4 -Wa,-mxscale -mtune=strongarm -c ssvirq.c -o ssvirq.o
In file included from /usr/local/arm-xscale-linux/lib/gcc-lib/arm-xscale-linux/2.95.3/../../../../arm-xscale-linux/sys-include/asm/uaccess.h:7,
from ssvirq.c:13:
/usr/src/linux-2.4.19-rmk7-pxa2-ssv1/include/linux/sched.h:155: conflicting types for `kernel_thread'
/usr/local/arm-xscale-linux/lib/gcc-lib/arm-xscale-linux/2.95.3/../../../../arm-xscale-linux/sys-include/asm/processor.h:128: previous declaration of `kernel_thread'
make: *** [ssvirq.o] Fehler 1
<<<

Anscheinend wird der kernel_thread in den „Kernel sources“ und in „Kernel tool chain“ unterschiedlich deklariert

#Kernel sources:
# line 155 in :/usr/src/linux-2.4.19-rmk7-pxa2-ssv1/include/linux/sched.h
extern long kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);

#Kernel Tool chain:
# line 128 in : /usr/local/arm-xscale-linux/lib/gcc-lib/arm-xscale-linux/2.95.3/../../../../arm-xscale-linux/sys-include/asm/processor.h
extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);

Ich habe ,wie in README empfohlen, die SW entsprechend installiert

Requirements
------------
- Kernel source at "/usr/src/linux-2.4.19-rmk7-pxa2-ssv1"
- Userspace Toolchain at "/usr/local/arm-linux"
- Kernel Toolchain at "/usr/local/arm-xscale-linux"

Wenn „Kernel sources“ nicht erreichbar sind wird ssvirg übersetzt, demo1 bricht aber ab.

>>>
/usr/local/arm-xscale-linux/bin/arm-xscale-linux-gcc -D__KERNEL__ -DMODULE -O2 -Wall -Wstrict-prototypes -I/usr/src/linux-2.4.19-rmk7-pxa2-ssv1/include -march=armv4 -Wa,-mxscale -mtune=strongarm -c ssvirq.c -o ssvirq.o
/usr/local/arm-linux/bin/arm-linux-gcc -Wall -Wstrict-prototypes -Os -Wl,-s -march=armv4 -mtune=strongarm demo1.c -o demo1
/tmp/ccJ773nf.o: In function `main':
/tmp/ccJ773nf.o(.text+0xf4): undefined reference to `__invalid_size_argument_for_IOC'
collect2: ld returned 1 exit status
make: *** [demo1] Fehler 1
<<<

Das Demo port_c-dnp2110 baut problemlos.

Viele Grüße
cra
Back to top
View user's profile Send private message
mha



Joined: 05 May 2006
Posts: 28

PostPosted: 22.05.2007, 16:36    Post subject: Reply with quote

Hallo.

Die Kernel Quellen müssen auch konfiguriert werden.

Steps:
1) make menuconfig
-> die Kernel Konfiguration laden und speichern.
2) make dep
-> erzeugt die Abhängigkeiten.

Jetzt kann das Modul übersetzt werden.

Die Kernel Konfiguration "CONFIG-DNP2110-<...>
befinden sich auf der CD im Verzeichnis "linux\dnp2110-<...>\zimage".

Gruss Marco
Back to top
View user's profile Send private message
cra



Joined: 19 May 2007
Posts: 6

PostPosted: 22.05.2007, 21:52    Post subject: Leider erfolglos Reply with quote

Hallo,
Leider treten immer noch Fehler auf.

Als root in /usr/src/linux-2.4.19-rmk7-pxa2-ssv1
habe ich die Konfiguraitonsdatei CONFIG-DNP2110-2.4.19-SSV20040824 geladen (make menuconfig). Die Datei wurde dann als .config abgespeichert.
Dann habe ich "make dep" aufgerufen (vorher PATH um /usr/local/arm-xscale-linux/bin
erweitert). Make lief fehlerfrei durch.

Danach wollte ich die Interrupt-Demos übersetzen

christian@linux:~/entwicklung/ssv_board/clean_demos/ssvirq_demo-dnp2110> make ssvirq
/usr/local/arm-linux/bin/arm-linux-gcc ssvirq.o -o ssvirq
/usr/local/arm/2.95.3/arm-linux/lib/crt1.o: In function `_start':
/usr/local/arm/2.95.3/arm-linux/lib/crt1.o(.text+0x2c): undefined reference to `main'
ssvirq.o: In function `ssvirq_interrupt':
ssvirq.o(.text+0x2c): undefined reference to `__put_user_4'
ssvirq.o: In function `ssvirq_ioctl':
ssvirq.o(.text+0x74): undefined reference to `__put_user_4'
ssvirq.o: In function `ssvirq_open':
ssvirq.o(.text+0x114): undefined reference to `__this_module'
ssvirq.o: In function `ssvirq_release':
ssvirq.o(.text+0x178): undefined reference to `__this_module'
ssvirq.o: In function `init_module':
ssvirq.o(.text+0x1ac): undefined reference to `request_irq'
ssvirq.o(.text+0x1c0): undefined reference to `printk'
ssvirq.o(.text+0x1d4): undefined reference to `register_chrdev'
ssvirq.o(.text+0x1e4): undefined reference to `printk'
ssvirq.o(.text+0x210): undefined reference to `printk'
ssvirq.o(.text+0x21c): undefined reference to `free_irq'
ssvirq.o: In function `cleanup_module':
ssvirq.o(.text+0x248): undefined reference to `free_irq'
ssvirq.o(.text+0x254): undefined reference to `unregister_chrdev'
ssvirq.o(.text+0x25c): undefined reference to `printk'
collect2: ld returned 1 exit status
make: *** [ssvirq] Fehler 1

und demo1

christian@linux:~/entwicklung/ssv_board/clean_demos/ssvirq_demo-dnp2110> make demo1
/usr/local/arm-linux/bin/arm-linux-gcc -Wall -Wstrict-prototypes -Os -Wl,-s -march=armv4 -mtune=strongarm demo1.c -o demo1
/tmp/ccygJ2L4.o: In function `main':
/tmp/ccygJ2L4.o(.text+0xf4): undefined reference to `__invalid_size_argument_for_IOC'
collect2: ld returned 1 exit status
make: *** [demo1] Fehler 1

Viele Grüße
Christian
Back to top
View user's profile Send private message
mha



Joined: 05 May 2006
Posts: 28

PostPosted: 23.05.2007, 09:03    Post subject: Reply with quote

Hallo.

Die Demo sollte mit "make" oder "make all" übersetzt werden,
oder es muß explizit "make ssvirq.o" angegeben werden, um nur
das Kernel Modul zu übersetzen.
Ein "make ssvirq" versucht ein Programm aus "ssvirq.o" zu erzeugen,
was nicht funktionieren kann.

Damit das Übersetzen der Programme "demo1" und "demo2" gelingt,
muß eine kleine Anpassung in der Toolchain "arm-toolchain-SSV20011207.tgz"
vorgenommen werden.

Es gibt zwei Möglichkeiten:

Möglichkeit 1)
Im Verzeichnis der Toolchain "/usr/local/arm-linux/arm-linux"
den Link "sys-include" löschen und "sys-include.org" in "sys-include"
umbenennen.

# cd /usr/local/arm-linux/arm-linux
# rm sys-include
# mv sys-include.org sys-include

oder

Möglichkeit 2)
Im Verzeichnis der Toolchain "/usr/local/arm-linux/arm-linux"
den Link "sys-include" mit dem ARM-Kernel verbinden.

# cd /usr/local/arm-linux/arm-linux
# rm sys-include
# ln -s /usr/src/linux-2.4.19-rmk7-pxa2-ssv1/include sys-include

Jetzt sollte es funktionieren.

Bemerkung:
Der Fehler ist in der Toolchain "arm-toolchain-SSV20020812.tgz" beseitigt.

Gruss Marco
Back to top
View user's profile Send private message
cra



Joined: 19 May 2007
Posts: 6

PostPosted: 23.05.2007, 20:57    Post subject: Es funktioniert Reply with quote

Es funktioniert

Danke
Christian
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/2110 All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV SOFTWARE SYSTEMS

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2024 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015