All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] Xenomai on AT91SAM9260
@ 2008-04-29 11:37 Hans Søndergaard (HSO)
  2008-04-29 12:18 ` Gilles Chanteperdrix
  0 siblings, 1 reply; 9+ messages in thread
From: Hans Søndergaard (HSO) @ 2008-04-29 11:37 UTC (permalink / raw)
  To: xenomai@xenomai.org

[-- Attachment #1: Type: text/plain, Size: 223 bytes --]

Is it possible to install Xenomai 2.4.3 together with Linux 2.6.23 on AT91SAM9260?
If the answer is no, which combination of Xenomai and Linux would you recommend?

Hans Sondergaard
VIA University College, Denmark



[-- Attachment #2: Type: text/html, Size: 2879 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-04-29 11:37 [Xenomai-help] Xenomai on AT91SAM9260 Hans Søndergaard (HSO)
@ 2008-04-29 12:18 ` Gilles Chanteperdrix
  2008-05-01  5:46   ` Hans Søndergaard (HSO)
  0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2008-04-29 12:18 UTC (permalink / raw)
  To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org

On Tue, Apr 29, 2008 at 1:37 PM, Hans Søndergaard (HSO) <HSO@viauc.dk> wrote:
>
>
>
>
> Is it possible to install Xenomai 2.4.3 together with Linux 2.6.23 on
> AT91SAM9260?
>
> If the answer is no, which combination of Xenomai and Linux would you
> recommend?

Xenomai 2.4.3 ships with two versions of the Adeos I-pipe patch: one
for Linux 2.6.20, the other for Linux 2.6.24. So, I would recommend
using one of these two versions. Of course, you can probably adapt one
of the patches to Linux 2.6.23, but that may not be obvious.

Note that you may decide to apply the AT91 patch, the I-pipe patch
should apply cleanly with or without the AT91 patch.

-- 
 Gilles


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-04-29 12:18 ` Gilles Chanteperdrix
@ 2008-05-01  5:46   ` Hans Søndergaard (HSO)
  2008-05-01 16:04     ` Gilles Chanteperdrix
  2008-05-01 16:55     ` Gilles Chanteperdrix
  0 siblings, 2 replies; 9+ messages in thread
From: Hans Søndergaard (HSO) @ 2008-05-01  5:46 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: xenomai@xenomai.org

Hi,

Thanks for the answer.
We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260,
but have a problem:

Is it possible to disable the building of the posix skin when
configuring the user space libraries for Xenomai?

I have tried --disable-posix-skin, but this had no effect.

The reason why I ask is that the building of src/skins/posix/init.c
fails like this:

[stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc
lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT
-Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../..
/../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre
ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno
mai-2.4.3/src/skins/posix/init.c  -fPIC -DPIC -o .libs/libpthread_rt_la-init.o
In file included from ../../../src/include/asm/xenomai/atomic.h:78,
                 from ../../../../xenomai-2.4.3/include/nucleus/system.h:27,
                 from ../../../src/include/asm/xenomai/system.h:135,
                 from ../../../../xenomai-2.4.3/include/nucleus/types.h:40,
                 from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25,
                 from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30,
                 from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27,
                 from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26,
                 from ../../../../xenomai-2.4.3/include/posix/pthread.h:150,
                 from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
-ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
de/bits/uClibc_mutex.h:16,
                 from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
-ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
de/bits/uClibc_stdio.h:120,
                 from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
-ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
de/stdio.h:73,
                 from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20:
../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check
':
../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs
t use in this function)
../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi
er is reported only once
../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe
ars in.)

Obviously there is something wrong with the include path used:
uClibc_mutex.h should not include 'pthread.h' in the Xenomai
distribution but rather the version in uClibc itself.

Why this happens I'm trying to discover.

The complete configure I'm using is:

../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc

Thanks in advance.

Hans

-----Original Message-----
From: Gilles Chanteperdrix [mailto:gilles.chanteperdrix@xenomai.org]
Sent: 29. april 2008 14:18
To: Hans Søndergaard (HSO)
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] Xenomai on AT91SAM9260

On Tue, Apr 29, 2008 at 1:37 PM, Hans Søndergaard (HSO) <HSO@viauc.dk> wrote:
>
>
>
>
> Is it possible to install Xenomai 2.4.3 together with Linux 2.6.23 on
> AT91SAM9260?
>
> If the answer is no, which combination of Xenomai and Linux would you
> recommend?

Xenomai 2.4.3 ships with two versions of the Adeos I-pipe patch: one
for Linux 2.6.20, the other for Linux 2.6.24. So, I would recommend
using one of these two versions. Of course, you can probably adapt one
of the patches to Linux 2.6.23, but that may not be obvious.

Note that you may decide to apply the AT91 patch, the I-pipe patch
should apply cleanly with or without the AT91 patch.

--
 Gilles



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-05-01  5:46   ` Hans Søndergaard (HSO)
@ 2008-05-01 16:04     ` Gilles Chanteperdrix
  2008-05-01 17:02       ` Philippe Gerum
  2008-05-01 16:55     ` Gilles Chanteperdrix
  1 sibling, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2008-05-01 16:04 UTC (permalink / raw)
  To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org

Hans Søndergaard (HSO) wrote:
 > Hi,
 > 
 > Thanks for the answer.
 > We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260,
 > but have a problem:
 > 
 > Is it possible to disable the building of the posix skin when
 > configuring the user space libraries for Xenomai?
 > 
 > I have tried --disable-posix-skin, but this had no effect.
 > 
 > The reason why I ask is that the building of src/skins/posix/init.c
 > fails like this:
 > 
 > [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc
 > lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT
 > -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../..
 > /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre
 > ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno
 > mai-2.4.3/src/skins/posix/init.c  -fPIC -DPIC -o .libs/libpthread_rt_la-init.o
 > In file included from ../../../src/include/asm/xenomai/atomic.h:78,
 >                  from ../../../../xenomai-2.4.3/include/nucleus/system.h:27,
 >                  from ../../../src/include/asm/xenomai/system.h:135,
 >                  from ../../../../xenomai-2.4.3/include/nucleus/types.h:40,
 >                  from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25,
 >                  from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30,
 >                  from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27,
 >                  from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26,
 >                  from ../../../../xenomai-2.4.3/include/posix/pthread.h:150,
 >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
 > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
 > de/bits/uClibc_mutex.h:16,
 >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
 > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
 > de/bits/uClibc_stdio.h:120,
 >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
 > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
 > de/stdio.h:73,
 >                  from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20:
 > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check
 > ':
 > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs
 > t use in this function)
 > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi
 > er is reported only once
 > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe
 > ars in.)
 > 
 > Obviously there is something wrong with the include path used:
 > uClibc_mutex.h should not include 'pthread.h' in the Xenomai
 > distribution but rather the version in uClibc itself.
 > 
 > Why this happens I'm trying to discover.
 > 
 > The complete configure I'm using is:
 > 
 > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc
 > 
 > Thanks in advance.

Well, I understand that it may not be important to you if you do not
intend to use the posix skin, but we should try and solve this issue
(which seems to be a uclibc issue). Including posix skin pthread.h
instead of libc pthread.h should be no problem, since posix skin
pthread.h include the libc pthread.h. The problem here is due to the
fact that asm-arm/syscall.h is trying to use stderr whereas we are at
the very beginning of stdio.h where stderr is not defined yet.

I have to admit that I have no idea here other than defining a function
in init.c which calls fprintf and to call this function instead of
fprintf in asm-arm/syscall.h

Philippe, any better idea ?

-- 


					    Gilles.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-05-01  5:46   ` Hans Søndergaard (HSO)
  2008-05-01 16:04     ` Gilles Chanteperdrix
@ 2008-05-01 16:55     ` Gilles Chanteperdrix
  1 sibling, 0 replies; 9+ messages in thread
From: Gilles Chanteperdrix @ 2008-05-01 16:55 UTC (permalink / raw)
  To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org

[-- Attachment #1: message body and .signature --]
[-- Type: text/plain, Size: 1546 bytes --]

Hans Søndergaard (HSO) wrote:
 >                  from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20:
 > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check
 > ':
 > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs
 > t use in this function)
 > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi
 > er is reported only once
 > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe
 > ars in.)
 > 
 > Obviously there is something wrong with the include path used:
 > uClibc_mutex.h should not include 'pthread.h' in the Xenomai
 > distribution but rather the version in uClibc itself.
 > 
 > Why this happens I'm trying to discover.
 > 
 > The complete configure I'm using is:
 > 
 > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc

The way I see it, the problem is that posix/pthread.h includes
nucleus/thread.h and nucleus/intr.h to get a few constants
definitions. And since these include files include other include files,
we end up with the whole stack of xenomai includes. So, I propose the
following patch which basically stop including other include files in
nucleus/thread.h and nucleus/intr.h when included from user-space. The
only downside of this solution is that application like cyclictest who
want to use the I-pipe tracer now need to include explicitely
nucleus/trace.h.

-- 


					    Gilles.

[-- Attachment #2: xeno-fix-uclibc-includes.diff --]
[-- Type: text/plain, Size: 2585 bytes --]

Index: include/nucleus/thread.h
===================================================================
--- include/nucleus/thread.h	(revision 3732)
+++ include/nucleus/thread.h	(working copy)
@@ -22,8 +22,6 @@
 #ifndef _XENO_NUCLEUS_THREAD_H
 #define _XENO_NUCLEUS_THREAD_H
 
-#include <nucleus/timer.h>
-
 /*! @ingroup nucleus 
   @defgroup nucleus_state_flags Thread state flags.
   @brief Bits reporting permanent or transient states of thread.
@@ -130,6 +128,7 @@
 #if defined(__KERNEL__) || defined(__XENO_SIM__)
 
 #include <nucleus/stat.h>
+#include <nucleus/timer.h>
 
 #ifdef __XENO_SIM__
 /* Pseudo-status (must not conflict with other bits) */
Index: include/nucleus/intr.h
===================================================================
--- include/nucleus/intr.h	(revision 3732)
+++ include/nucleus/intr.h	(working copy)
@@ -22,8 +22,6 @@
 #ifndef _XENO_NUCLEUS_INTR_H
 #define _XENO_NUCLEUS_INTR_H
 
-#include <nucleus/types.h>
-
 /* Possible return values of ISR. */
 #define XN_ISR_NONE   	 0x1
 #define XN_ISR_HANDLED	 0x2
@@ -41,6 +39,7 @@
 
 #if defined(__KERNEL__) || defined(__XENO_SIM__)
 
+#include <nucleus/types.h>
 #include <nucleus/stat.h>
 
 typedef struct xnintr {
Index: src/skins/posix/rtdm.c
===================================================================
--- src/skins/posix/rtdm.c	(revision 3732)
+++ src/skins/posix/rtdm.c	(working copy)
@@ -18,6 +18,7 @@
  */
 
 #include <errno.h>
+#include <string.h>
 #include <stdarg.h>
 #include <pthread.h>
 #include <fcntl.h>
Index: src/skins/posix/thread.c
===================================================================
--- src/skins/posix/thread.c	(revision 3732)
+++ src/skins/posix/thread.c	(working copy)
@@ -17,6 +17,7 @@
  */
 
 #include <stddef.h>
+#include <string.h>
 #include <errno.h>
 #include <signal.h>
 #include <unistd.h>
Index: src/skins/posix/clock.c
===================================================================
--- src/skins/posix/clock.c	(revision 3732)
+++ src/skins/posix/clock.c	(working copy)
@@ -18,6 +18,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <errno.h>
 #include <pthread.h>		/* For pthread_setcanceltype. */
 #include <posix/syscall.h>
Index: src/testsuite/cyclic/cyclictest.c
===================================================================
--- src/testsuite/cyclic/cyclictest.c	(revision 3732)
+++ src/testsuite/cyclic/cyclictest.c	(working copy)
@@ -35,6 +35,7 @@
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/mman.h>
+#include <nucleus/trace.h>
 
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-05-01 16:04     ` Gilles Chanteperdrix
@ 2008-05-01 17:02       ` Philippe Gerum
  2008-05-03  8:21         ` Hans Søndergaard (HSO)
  0 siblings, 1 reply; 9+ messages in thread
From: Philippe Gerum @ 2008-05-01 17:02 UTC (permalink / raw)
  To: Gilles Chanteperdrix
  Cc: xenomai@xenomai.org, "Hans Søndergaard (HSO)"

Gilles Chanteperdrix wrote:
> Hans Søndergaard (HSO) wrote:
>  > Hi,
>  > 
>  > Thanks for the answer.
>  > We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260,
>  > but have a problem:
>  > 
>  > Is it possible to disable the building of the posix skin when
>  > configuring the user space libraries for Xenomai?
>  > 
>  > I have tried --disable-posix-skin, but this had no effect.
>  > 
>  > The reason why I ask is that the building of src/skins/posix/init.c
>  > fails like this:
>  > 
>  > [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc
>  > lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT
>  > -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../..
>  > /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre
>  > ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno
>  > mai-2.4.3/src/skins/posix/init.c  -fPIC -DPIC -o .libs/libpthread_rt_la-init.o
>  > In file included from ../../../src/include/asm/xenomai/atomic.h:78,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/system.h:27,
>  >                  from ../../../src/include/asm/xenomai/system.h:135,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/types.h:40,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26,
>  >                  from ../../../../xenomai-2.4.3/include/posix/pthread.h:150,
>  >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
>  > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
>  > de/bits/uClibc_mutex.h:16,
>  >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
>  > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
>  > de/bits/uClibc_stdio.h:120,
>  >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
>  > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
>  > de/stdio.h:73,
>  >                  from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20:
>  > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check
>  > ':
>  > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs
>  > t use in this function)
>  > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi
>  > er is reported only once
>  > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe
>  > ars in.)
>  > 
>  > Obviously there is something wrong with the include path used:
>  > uClibc_mutex.h should not include 'pthread.h' in the Xenomai
>  > distribution but rather the version in uClibc itself.
>  > 
>  > Why this happens I'm trying to discover.
>  > 
>  > The complete configure I'm using is:
>  > 
>  > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc
>  > 
>  > Thanks in advance.
> 
> Well, I understand that it may not be important to you if you do not
> intend to use the posix skin, but we should try and solve this issue
> (which seems to be a uclibc issue). Including posix skin pthread.h
> instead of libc pthread.h should be no problem, since posix skin
> pthread.h include the libc pthread.h. The problem here is due to the
> fact that asm-arm/syscall.h is trying to use stderr whereas we are at
> the very beginning of stdio.h where stderr is not defined yet.
> 
> I have to admit that I have no idea here other than defining a function
> in init.c which calls fprintf and to call this function instead of
> fprintf in asm-arm/syscall.h
> 
> Philippe, any better idea ?
> 

No, but I do have an almost as ugly one to suggest:

--- include/asm-arm/syscall.h	(revision 3729)
+++ include/asm-arm/syscall.h	(working copy)
@@ -222,7 +222,6 @@
 #define XENOMAI_SYSARCH_TSCINFO                 4

 #ifndef __KERNEL__
-#include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -230,6 +229,8 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <limits.h>
+#include <error.h>
+#include <errno.h>

 __attribute__((weak)) struct __xn_tscinfo __xn_tscinfo = {
 	type: -1
@@ -291,17 +292,15 @@
 	err = XENOMAI_SYSCALL2(__xn_sys_arch,
 			       XENOMAI_SYSARCH_TSCINFO, &__xn_tscinfo);
 	if (err) {
-	  error:
-		fprintf(stderr, "Xenomai: Your board/configuration does not"
-			" allow tsc emulation in user-space: %d\n", err);
-		exit(EXIT_FAILURE);
+	  fail:
+		error(EXIT_FAILURE, err,
+		      "Xenomai: Your board/configuration does not"
+		      " allow tsc emulation in user-space\n");
 	}

 	fd = open("/dev/mem", O_RDONLY | O_SYNC);
-	if (fd == -1) {
-		perror("Xenomai init: open(/dev/mem)");
-		exit(EXIT_FAILURE);
-	}
+	if (fd == -1)
+		error(EXIT_FAILURE, errno, "Xenomai init: open(/dev/mem)");

 	page_size = sysconf(_SC_PAGESIZE);

@@ -313,10 +312,8 @@
 		phys_addr = (unsigned long) __xn_tscinfo.u.fr.counter;
 		addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED,
 			    fd, phys_addr & ~(page_size - 1));
-		if (addr == MAP_FAILED) {
-			perror("Xenomai init: mmap(/dev/mem)");
-			exit(EXIT_FAILURE);
-		}
+		if (addr == MAP_FAILED)
+			error(EXIT_FAILURE, errno, "Xenomai init: mmap(/dev/mem)");

 		__xn_tscinfo.u.fr.counter =
 			((volatile unsigned *)
@@ -330,10 +327,8 @@
 		phys_addr = (unsigned long) __xn_tscinfo.u.dec.counter;
 		addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED,
 			    fd, phys_addr & ~(page_size - 1));
-		if (addr == MAP_FAILED) {
-			perror("Xenomai init: mmap(/dev/mem)");
-			exit(EXIT_FAILURE);
-		}
+		if (addr == MAP_FAILED)
+			error(EXIT_FAILURE, "Xenomai init: mmap(/dev/mem)");

 		__xn_tscinfo.u.dec.counter =
 			((volatile unsigned *)
@@ -342,18 +337,15 @@
 	}
 #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC == __XN_TSC_TYPE_DECREMENTER */
 	case __XN_TSC_TYPE_NONE:
-		goto error;
+		goto fail;
 		
 	default:
-		fprintf(stderr,
-			"Xenomai: kernel/user tsc emulation mismatch.\n");
-		exit(EXIT_FAILURE);
+		error(EXIT_FAILURE, err,
+		      "Xenomai: kernel/user tsc emulation mismatch.\n");
 	}

-	if (close(fd)) {
-		perror("Xenomai init: close(/dev/mem)");
-		exit(EXIT_FAILURE);
-	}
+	if (close(fd))
+		error(EXIT_FAILURE, errno, "Xenomai init: close(/dev/mem)");
 #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC */
 }
 #define xeno_arch_features_check() xeno_arm_features_check()

-- 
Philippe.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-05-01 17:02       ` Philippe Gerum
@ 2008-05-03  8:21         ` Hans Søndergaard (HSO)
  2008-05-03 14:14           ` Gilles Chanteperdrix
  0 siblings, 1 reply; 9+ messages in thread
From: Hans Søndergaard (HSO) @ 2008-05-03  8:21 UTC (permalink / raw)
  To: rpm@xenomai.org, Gilles Chanteperdrix; +Cc: xenomai@xenomai.org

Hi,

The patch worked, and we are now able to compile the userspace libraries as well as the kernel.

Thank you very much!

Hans Sø

-----Original Message-----
From: Philippe Gerum [mailto:philippe.gerum@domain.hid] On Behalf Of Philippe Gerum
Sent: 1. maj 2008 19:03
To: Gilles Chanteperdrix
Cc: Hans Søndergaard (HSO); xenomai@xenomai.org
Subject: Re: [Xenomai-help] Xenomai on AT91SAM9260

Gilles Chanteperdrix wrote:
> Hans Søndergaard (HSO) wrote:
>  > Hi,
>  >
>  > Thanks for the answer.
>  > We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260,
>  > but have a problem:
>  >
>  > Is it possible to disable the building of the posix skin when
>  > configuring the user space libraries for Xenomai?
>  >
>  > I have tried --disable-posix-skin, but this had no effect.
>  >
>  > The reason why I ask is that the building of src/skins/posix/init.c
>  > fails like this:
>  >
>  > [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc
>  > lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT
>  > -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../..
>  > /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre
>  > ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno
>  > mai-2.4.3/src/skins/posix/init.c  -fPIC -DPIC -o .libs/libpthread_rt_la-init.o
>  > In file included from ../../../src/include/asm/xenomai/atomic.h:78,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/system.h:27,
>  >                  from ../../../src/include/asm/xenomai/system.h:135,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/types.h:40,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27,
>  >                  from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26,
>  >                  from ../../../../xenomai-2.4.3/include/posix/pthread.h:150,
>  >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
>  > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
>  > de/bits/uClibc_mutex.h:16,
>  >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
>  > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
>  > de/bits/uClibc_stdio.h:120,
>  >                  from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin
>  > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu
>  > de/stdio.h:73,
>  >                  from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20:
>  > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check
>  > ':
>  > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs
>  > t use in this function)
>  > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi
>  > er is reported only once
>  > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe
>  > ars in.)
>  >
>  > Obviously there is something wrong with the include path used:
>  > uClibc_mutex.h should not include 'pthread.h' in the Xenomai
>  > distribution but rather the version in uClibc itself.
>  >
>  > Why this happens I'm trying to discover.
>  >
>  > The complete configure I'm using is:
>  >
>  > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc
>  >
>  > Thanks in advance.
>
> Well, I understand that it may not be important to you if you do not
> intend to use the posix skin, but we should try and solve this issue
> (which seems to be a uclibc issue). Including posix skin pthread.h
> instead of libc pthread.h should be no problem, since posix skin
> pthread.h include the libc pthread.h. The problem here is due to the
> fact that asm-arm/syscall.h is trying to use stderr whereas we are at
> the very beginning of stdio.h where stderr is not defined yet.
>
> I have to admit that I have no idea here other than defining a function
> in init.c which calls fprintf and to call this function instead of
> fprintf in asm-arm/syscall.h
>
> Philippe, any better idea ?
>

No, but I do have an almost as ugly one to suggest:

--- include/asm-arm/syscall.h   (revision 3729)
+++ include/asm-arm/syscall.h   (working copy)
@@ -222,7 +222,6 @@
 #define XENOMAI_SYSARCH_TSCINFO                 4

 #ifndef __KERNEL__
-#include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -230,6 +229,8 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <limits.h>
+#include <error.h>
+#include <errno.h>

 __attribute__((weak)) struct __xn_tscinfo __xn_tscinfo = {
        type: -1
@@ -291,17 +292,15 @@
        err = XENOMAI_SYSCALL2(__xn_sys_arch,
                               XENOMAI_SYSARCH_TSCINFO, &__xn_tscinfo);
        if (err) {
-         error:
-               fprintf(stderr, "Xenomai: Your board/configuration does not"
-                       " allow tsc emulation in user-space: %d\n", err);
-               exit(EXIT_FAILURE);
+         fail:
+               error(EXIT_FAILURE, err,
+                     "Xenomai: Your board/configuration does not"
+                     " allow tsc emulation in user-space\n");
        }

        fd = open("/dev/mem", O_RDONLY | O_SYNC);
-       if (fd == -1) {
-               perror("Xenomai init: open(/dev/mem)");
-               exit(EXIT_FAILURE);
-       }
+       if (fd == -1)
+               error(EXIT_FAILURE, errno, "Xenomai init: open(/dev/mem)");

        page_size = sysconf(_SC_PAGESIZE);

@@ -313,10 +312,8 @@
                phys_addr = (unsigned long) __xn_tscinfo.u.fr.counter;
                addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED,
                            fd, phys_addr & ~(page_size - 1));
-               if (addr == MAP_FAILED) {
-                       perror("Xenomai init: mmap(/dev/mem)");
-                       exit(EXIT_FAILURE);
-               }
+               if (addr == MAP_FAILED)
+                       error(EXIT_FAILURE, errno, "Xenomai init: mmap(/dev/mem)");

                __xn_tscinfo.u.fr.counter =
                        ((volatile unsigned *)
@@ -330,10 +327,8 @@
                phys_addr = (unsigned long) __xn_tscinfo.u.dec.counter;
                addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED,
                            fd, phys_addr & ~(page_size - 1));
-               if (addr == MAP_FAILED) {
-                       perror("Xenomai init: mmap(/dev/mem)");
-                       exit(EXIT_FAILURE);
-               }
+               if (addr == MAP_FAILED)
+                       error(EXIT_FAILURE, "Xenomai init: mmap(/dev/mem)");

                __xn_tscinfo.u.dec.counter =
                        ((volatile unsigned *)
@@ -342,18 +337,15 @@
        }
 #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC == __XN_TSC_TYPE_DECREMENTER */
        case __XN_TSC_TYPE_NONE:
-               goto error;
+               goto fail;

        default:
-               fprintf(stderr,
-                       "Xenomai: kernel/user tsc emulation mismatch.\n");
-               exit(EXIT_FAILURE);
+               error(EXIT_FAILURE, err,
+                     "Xenomai: kernel/user tsc emulation mismatch.\n");
        }

-       if (close(fd)) {
-               perror("Xenomai init: close(/dev/mem)");
-               exit(EXIT_FAILURE);
-       }
+       if (close(fd))
+               error(EXIT_FAILURE, errno, "Xenomai init: close(/dev/mem)");
 #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC */
 }
 #define xeno_arch_features_check() xeno_arm_features_check()

--
Philippe.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-05-03  8:21         ` Hans Søndergaard (HSO)
@ 2008-05-03 14:14           ` Gilles Chanteperdrix
  2008-05-04 15:16             ` Hans Søndergaard (HSO)
  0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2008-05-03 14:14 UTC (permalink / raw)
  To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org

Hans Søndergaard (HSO) wrote:
 > Hi,
 > 
 > The patch worked, and we are now able to compile the userspace libraries as well as the kernel.
 > 
 > Thank you very much!

Which patch, the one I sent, or the one Philippe sent ?

-- 


					    Gilles.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Xenomai-help] Xenomai on AT91SAM9260
  2008-05-03 14:14           ` Gilles Chanteperdrix
@ 2008-05-04 15:16             ` Hans Søndergaard (HSO)
  0 siblings, 0 replies; 9+ messages in thread
From: Hans Søndergaard (HSO) @ 2008-05-04 15:16 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: xenomai@xenomai.org

I used yours - this one (we didn't try the other):

Index: include/nucleus/thread.h
===================================================================
--- include/nucleus/thread.h    (revision 3732)
+++ include/nucleus/thread.h    (working copy)
@@ -22,8 +22,6 @@
 #ifndef _XENO_NUCLEUS_THREAD_H
 #define _XENO_NUCLEUS_THREAD_H

-#include <nucleus/timer.h>
-
 /*! @ingroup nucleus
   @defgroup nucleus_state_flags Thread state flags.
   @brief Bits reporting permanent or transient states of thread.
@@ -130,6 +128,7 @@
 #if defined(__KERNEL__) || defined(__XENO_SIM__)

 #include <nucleus/stat.h>
+#include <nucleus/timer.h>

 #ifdef __XENO_SIM__
 /* Pseudo-status (must not conflict with other bits) */
Index: include/nucleus/intr.h
===================================================================
--- include/nucleus/intr.h      (revision 3732)
+++ include/nucleus/intr.h      (working copy)
@@ -22,8 +22,6 @@
 #ifndef _XENO_NUCLEUS_INTR_H
 #define _XENO_NUCLEUS_INTR_H

-#include <nucleus/types.h>
-
 /* Possible return values of ISR. */
 #define XN_ISR_NONE     0x1
 #define XN_ISR_HANDLED  0x2
@@ -41,6 +39,7 @@

 #if defined(__KERNEL__) || defined(__XENO_SIM__)

+#include <nucleus/types.h>
 #include <nucleus/stat.h>

 typedef struct xnintr {
Index: src/skins/posix/rtdm.c
===================================================================
--- src/skins/posix/rtdm.c      (revision 3732)
+++ src/skins/posix/rtdm.c      (working copy)
@@ -18,6 +18,7 @@
  */

 #include <errno.h>
+#include <string.h>
 #include <stdarg.h>
 #include <pthread.h>
 #include <fcntl.h>
Index: src/skins/posix/thread.c
===================================================================
--- src/skins/posix/thread.c    (revision 3732)
+++ src/skins/posix/thread.c    (working copy)
@@ -17,6 +17,7 @@
  */

 #include <stddef.h>
+#include <string.h>
 #include <errno.h>
 #include <signal.h>
 #include <unistd.h>
Index: src/skins/posix/clock.c
===================================================================
--- src/skins/posix/clock.c     (revision 3732)
+++ src/skins/posix/clock.c     (working copy)
@@ -18,6 +18,7 @@

 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <errno.h>
 #include <pthread.h>           /* For pthread_setcanceltype. */
 #include <posix/syscall.h>
Index: src/testsuite/cyclic/cyclictest.c
===================================================================
--- src/testsuite/cyclic/cyclictest.c   (revision 3732)
+++ src/testsuite/cyclic/cyclictest.c   (working copy)
@@ -35,6 +35,7 @@
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/mman.h>
+#include <nucleus/trace.h>

 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))


Kind regards,
Hans Sø and Stephan Korsholm

-----Original Message-----
From: Gilles Chanteperdrix [mailto:gilles.chanteperdrix@xenomai.org]
Sent: 3. maj 2008 16:15
To: Hans Søndergaard (HSO)
Cc: rpm@xenomai.org; xenomai@xenomai.org
Subject: RE: [Xenomai-help] Xenomai on AT91SAM9260

Hans Søndergaard (HSO) wrote:
 > Hi,
 >
 > The patch worked, and we are now able to compile the userspace libraries as well as the kernel.
 >
 > Thank you very much!

Which patch, the one I sent, or the one Philippe sent ?

--


                                            Gilles.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-05-04 15:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-29 11:37 [Xenomai-help] Xenomai on AT91SAM9260 Hans Søndergaard (HSO)
2008-04-29 12:18 ` Gilles Chanteperdrix
2008-05-01  5:46   ` Hans Søndergaard (HSO)
2008-05-01 16:04     ` Gilles Chanteperdrix
2008-05-01 17:02       ` Philippe Gerum
2008-05-03  8:21         ` Hans Søndergaard (HSO)
2008-05-03 14:14           ` Gilles Chanteperdrix
2008-05-04 15:16             ` Hans Søndergaard (HSO)
2008-05-01 16:55     ` Gilles Chanteperdrix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.