* [Xenomai-help] regarding ARMv.s error @ 2011-06-21 13:11 suresh reddy 2011-06-21 14:02 ` Gilles Chanteperdrix 0 siblings, 1 reply; 12+ messages in thread From: suresh reddy @ 2011-06-21 13:11 UTC (permalink / raw) To: Xenomai help [-- Attachment #1: Type: text/plain, Size: 2578 bytes --] Dear all, i have downloaded ipipe patched kernel from xenomai git .and applied the patches to the xenomai 2.5.6 sources as mentioned . make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build omap2plus_defconfig make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build menuconfig i just removed all the other boards from TI except Pandaboard. I did not touched any other options. then I run the command make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build uImage then it giving me the error as below test06:/home/balijepalli/omap4/ipipe-gch# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=/home/balijepalli/omap4/build uImage GEN /home/balijepalli/omap4/build/Makefile scripts/kconfig/conf --silentoldconfig Kconfig Using /home/balijepalli/omap4/ipipe-gch as source for kernel GEN /home/balijepalli/omap4/build/Makefile CHK include/linux/version.h CHK include/generated/utsrelease.h make[2]: `include/generated/mach-types.h' is up to date. CC arch/arm/kernel/asm-offsets.s GEN include/generated/asm-offsets.h CALL /home/balijepalli/omap4/ipipe-gch/scripts/checksyscalls.sh CC init/main.o CHK include/generated/compile.h CC init/version.o CC init/do_mounts.o CC init/do_mounts_rd.o CC init/do_mounts_initrd.o LD init/mounts.o CC init/initramfs.o CC init/calibrate.o LD init/built-in.o CC arch/arm/nwfpe/fpa11_cpdt.o CC arch/arm/nwfpe/fpmodule.o AS arch/arm/nwfpe/entry.o LD arch/arm/nwfpe/nwfpe.o LD arch/arm/nwfpe/built-in.o CC arch/arm/vfp/vfpmodule.o AS arch/arm/vfp/entry.o AS arch/arm/vfp/vfphw.o CC arch/arm/vfp/vfpsingle.o CC arch/arm/vfp/vfpdouble.o LD arch/arm/vfp/vfp.o LD arch/arm/vfp/built-in.o CC arch/arm/kernel/elf.o AS arch/arm/kernel/entry-armv.o /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S: Assembler messages: /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: undefined symbol `.L99973' in operation setting `up_b_offset' /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: undefined symbol `.L99973' in operation setting `up_b_offset' /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: local label `"9997" (instance number 3 of a fb label)' is not defined make[2]: *** [arch/arm/kernel/entry-armv.o] Error 1 make[1]: *** [arch/arm/kernel] Error 2 make: *** [sub-make] Error 2 Suresh balijepalli Rosenehim,Baveria. [-- Attachment #2: Type: text/html, Size: 3536 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] regarding ARMv.s error 2011-06-21 13:11 [Xenomai-help] regarding ARMv.s error suresh reddy @ 2011-06-21 14:02 ` Gilles Chanteperdrix 2011-06-22 7:19 ` Gilles Chanteperdrix 0 siblings, 1 reply; 12+ messages in thread From: Gilles Chanteperdrix @ 2011-06-21 14:02 UTC (permalink / raw) To: suresh reddy; +Cc: Xenomai help On 06/21/2011 03:11 PM, suresh reddy wrote: > Dear all, > > > i have downloaded ipipe patched kernel from xenomai git .and applied the > patches to the xenomai 2.5.6 sources as mentioned . > > make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build > omap2plus_defconfig > make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build menuconfig > > i just removed all the other boards from TI except Pandaboard. I did not > touched any other options. > > then I run the command > > make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build uImage > > then it giving me the error as below > > /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S: Assembler > messages: > /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: > undefined symbol `.L99973' in operation setting `up_b_offset' > /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: > undefined symbol `.L99973' in operation setting `up_b_offset' > /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: > local label `"9997" (instance number 3 of a fb label)' is not defined > make[2]: *** [arch/arm/kernel/entry-armv.o] Error 1 > make[1]: *** [arch/arm/kernel] Error 2 > make: *** [sub-make] Error 2 Disable SMP kernel boot on UP system, you do not need it for OMAP4, since OMAP4 is an SMP system. -- Gilles. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] regarding ARMv.s error 2011-06-21 14:02 ` Gilles Chanteperdrix @ 2011-06-22 7:19 ` Gilles Chanteperdrix 2011-06-22 8:43 ` [Xenomai-help] rt_dev_ioctl David Wiebe 0 siblings, 1 reply; 12+ messages in thread From: Gilles Chanteperdrix @ 2011-06-22 7:19 UTC (permalink / raw) To: suresh reddy; +Cc: Xenomai help On 06/21/2011 04:02 PM, Gilles Chanteperdrix wrote: > On 06/21/2011 03:11 PM, suresh reddy wrote: >> Dear all, >> >> >> i have downloaded ipipe patched kernel from xenomai git .and applied the >> patches to the xenomai 2.5.6 sources as mentioned . >> >> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build >> omap2plus_defconfig >> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build menuconfig >> >> i just removed all the other boards from TI except Pandaboard. I did not >> touched any other options. >> >> then I run the command >> >> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- O=../build uImage >> >> then it giving me the error as below >> >> /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S: Assembler >> messages: >> /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: >> undefined symbol `.L99973' in operation setting `up_b_offset' >> /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: >> undefined symbol `.L99973' in operation setting `up_b_offset' >> /home/balijepalli/omap4/ipipe-gch/arch/arm/kernel/entry-armv.S:1407: Error: >> local label `"9997" (instance number 3 of a fb label)' is not defined >> make[2]: *** [arch/arm/kernel/entry-armv.o] Error 1 >> make[1]: *** [arch/arm/kernel] Error 2 >> make: *** [sub-make] Error 2 > > Disable SMP kernel boot on UP system, you do not need it for OMAP4, > since OMAP4 is an SMP system. > It turns out the SMP on UP option can be enabled. Please try the .config I use: http://sisyphus.hd.free.fr/~gilles/omap4_panda_config -- Gilles. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Xenomai-help] rt_dev_ioctl 2011-06-22 7:19 ` Gilles Chanteperdrix @ 2011-06-22 8:43 ` David Wiebe 2011-06-22 8:57 ` Philippe Gerum 0 siblings, 1 reply; 12+ messages in thread From: David Wiebe @ 2011-06-22 8:43 UTC (permalink / raw) To: xenomai Hello, I'm re-writing my code to work with xenomai and I don't know how to get rt_dev_ioctl to compile in my program. #include <rtdk.h> in my program doesn't help david@domain.hid$ arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS xenomai-spi-eth-00002.c $LDFLAGS -I /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ xenomai-spi-eth-00002.c: In function 'main': xenomai-spi-eth-00002.c:137: warning: implicit declaration of function 'rt_dev_open' xenomai-spi-eth-00002.c:145: warning: implicit declaration of function 'rt_dev_ioctl' /tmp/ccZErCuj.o: In function `main': xenomai-spi-eth-00002.c:(.text+0x2c4): undefined reference to `rt_dev_open' xenomai-spi-eth-00002.c:(.text+0x318): undefined reference to `rt_dev_ioctl' collect2: ld returned 1 exit status David ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 8:43 ` [Xenomai-help] rt_dev_ioctl David Wiebe @ 2011-06-22 8:57 ` Philippe Gerum 2011-06-22 16:19 ` David Wiebe 0 siblings, 1 reply; 12+ messages in thread From: Philippe Gerum @ 2011-06-22 8:57 UTC (permalink / raw) To: David Wiebe; +Cc: xenomai On Wed, 2011-06-22 at 01:43 -0700, David Wiebe wrote: > Hello, > > I'm re-writing my code to work with xenomai and I don't know how to get > rt_dev_ioctl to compile in my program. > > #include <rtdk.h> in my program doesn't help #include <rtdm/rtdm.h> > > david@domain.hid$ > arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS > xenomai-spi-eth-00002.c $LDFLAGS -I > /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ > xenomai-spi-eth-00002.c: In function 'main': > xenomai-spi-eth-00002.c:137: warning: implicit declaration of function > 'rt_dev_open' > xenomai-spi-eth-00002.c:145: warning: implicit declaration of function > 'rt_dev_ioctl' > /tmp/ccZErCuj.o: In function `main': > xenomai-spi-eth-00002.c:(.text+0x2c4): undefined reference to `rt_dev_open' > xenomai-spi-eth-00002.c:(.text+0x318): undefined reference to `rt_dev_ioctl' > collect2: ld returned 1 exit status > > > David > > > _______________________________________________ > Xenomai-help mailing list > Xenomai-help@domain.hid > https://mail.gna.org/listinfo/xenomai-help -- Philippe. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 8:57 ` Philippe Gerum @ 2011-06-22 16:19 ` David Wiebe 2011-06-22 16:28 ` Philippe Gerum 0 siblings, 1 reply; 12+ messages in thread From: David Wiebe @ 2011-06-22 16:19 UTC (permalink / raw) To: Philippe Gerum; +Cc: xenomai On 11-06-22 01:57 AM, Philippe Gerum wrote: Still not compiling. > On Wed, 2011-06-22 at 01:43 -0700, David Wiebe wrote: >> Hello, >> >> I'm re-writing my code to work with xenomai and I don't know how to get >> rt_dev_ioctl to compile in my program. >> >> #include<rtdk.h> in my program doesn't help > > #include<rtdm/rtdm.h> > >> david@domain.hid$ >> arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS >> xenomai-spi-eth-00002.c $LDFLAGS -I >> /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ >> xenomai-spi-eth-00002.c: In function 'main': >> xenomai-spi-eth-00002.c:137: warning: implicit declaration of function >> 'rt_dev_open' >> xenomai-spi-eth-00002.c:145: warning: implicit declaration of function >> 'rt_dev_ioctl' >> /tmp/ccZErCuj.o: In function `main': >> xenomai-spi-eth-00002.c:(.text+0x2c4): undefined reference to `rt_dev_open' >> xenomai-spi-eth-00002.c:(.text+0x318): undefined reference to `rt_dev_ioctl' >> collect2: ld returned 1 exit status >> >> >> David >> >> >> _______________________________________________ >> Xenomai-help mailing list >> Xenomai-help@domain.hid >> https://mail.gna.org/listinfo/xenomai-help ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 16:19 ` David Wiebe @ 2011-06-22 16:28 ` Philippe Gerum 2011-06-22 17:54 ` David Wiebe 0 siblings, 1 reply; 12+ messages in thread From: Philippe Gerum @ 2011-06-22 16:28 UTC (permalink / raw) To: David Wiebe; +Cc: xenomai On Wed, 2011-06-22 at 09:19 -0700, David Wiebe wrote: > On 11-06-22 01:57 AM, Philippe Gerum wrote: > Still not compiling. > Your build flags are likely wrong. Did you get them via xeno-config? > > On Wed, 2011-06-22 at 01:43 -0700, David Wiebe wrote: > >> Hello, > >> > >> I'm re-writing my code to work with xenomai and I don't know how to get > >> rt_dev_ioctl to compile in my program. > >> > >> #include<rtdk.h> in my program doesn't help > > > > #include<rtdm/rtdm.h> > > > >> david@domain.hid$ > >> arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS > >> xenomai-spi-eth-00002.c $LDFLAGS -I > >> /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ > >> xenomai-spi-eth-00002.c: In function 'main': > >> xenomai-spi-eth-00002.c:137: warning: implicit declaration of function > >> 'rt_dev_open' > >> xenomai-spi-eth-00002.c:145: warning: implicit declaration of function > >> 'rt_dev_ioctl' > >> /tmp/ccZErCuj.o: In function `main': > >> xenomai-spi-eth-00002.c:(.text+0x2c4): undefined reference to `rt_dev_open' > >> xenomai-spi-eth-00002.c:(.text+0x318): undefined reference to `rt_dev_ioctl' > >> collect2: ld returned 1 exit status > >> > >> > >> David > >> > >> > >> _______________________________________________ > >> Xenomai-help mailing list > >> Xenomai-help@domain.hid > >> https://mail.gna.org/listinfo/xenomai-help > -- Philippe. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 16:28 ` Philippe Gerum @ 2011-06-22 17:54 ` David Wiebe 2011-06-22 18:00 ` Gilles Chanteperdrix 0 siblings, 1 reply; 12+ messages in thread From: David Wiebe @ 2011-06-22 17:54 UTC (permalink / raw) To: Philippe Gerum; +Cc: xenomai On 11-06-22 09:28 AM, Philippe Gerum wrote: > On Wed, 2011-06-22 at 09:19 -0700, David Wiebe wrote: >> On 11-06-22 01:57 AM, Philippe Gerum wrote: >> Still not compiling. >> > Your build flags are likely wrong. Did you get them via xeno-config? Here are my build flags. CFLAGS=`DESTDIR=/home/david/sdir /home/david/sdir/usr/xenomai/bin/xenomai-config --skin native --cflags` LDFLAGS=`DESTDIR=/home/david/sdir /home/david/sdir/usr/xenomai/bin/xenomai-config --skin native --ldflags` >>> On Wed, 2011-06-22 at 01:43 -0700, David Wiebe wrote: >>>> Hello, >>>> >>>> I'm re-writing my code to work with xenomai and I don't know how to get >>>> rt_dev_ioctl to compile in my program. >>>> >>>> #include<rtdk.h> in my program doesn't help >>> #include<rtdm/rtdm.h> >>> >>>> david@domain.hid$ >>>> arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS >>>> xenomai-spi-eth-00002.c $LDFLAGS -I >>>> /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ >>>> xenomai-spi-eth-00002.c: In function 'main': >>>> xenomai-spi-eth-00002.c:137: warning: implicit declaration of function >>>> 'rt_dev_open' >>>> xenomai-spi-eth-00002.c:145: warning: implicit declaration of function >>>> 'rt_dev_ioctl' >>>> /tmp/ccZErCuj.o: In function `main': >>>> xenomai-spi-eth-00002.c:(.text+0x2c4): undefined reference to `rt_dev_open' >>>> xenomai-spi-eth-00002.c:(.text+0x318): undefined reference to `rt_dev_ioctl' >>>> collect2: ld returned 1 exit status >>>> >>>> >>>> David >>>> >>>> >>>> _______________________________________________ >>>> Xenomai-help mailing list >>>> Xenomai-help@domain.hid >>>> https://mail.gna.org/listinfo/xenomai-help ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 17:54 ` David Wiebe @ 2011-06-22 18:00 ` Gilles Chanteperdrix 2011-06-22 18:50 ` David Wiebe 0 siblings, 1 reply; 12+ messages in thread From: Gilles Chanteperdrix @ 2011-06-22 18:00 UTC (permalink / raw) To: David Wiebe; +Cc: xenomai On 06/22/2011 07:54 PM, David Wiebe wrote: > On 11-06-22 09:28 AM, Philippe Gerum wrote: >> On Wed, 2011-06-22 at 09:19 -0700, David Wiebe wrote: >>> On 11-06-22 01:57 AM, Philippe Gerum wrote: >>> Still not compiling. >>> >> Your build flags are likely wrong. Did you get them via xeno-config? > > Here are my build flags. > > CFLAGS=`DESTDIR=/home/david/sdir > /home/david/sdir/usr/xenomai/bin/xenomai-config --skin native --cflags` > > LDFLAGS=`DESTDIR=/home/david/sdir > /home/david/sdir/usr/xenomai/bin/xenomai-config --skin native --ldflags` You need to obtain flags for rtdm with xeno-config --skin rtdm etc... -- Gilles. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 18:00 ` Gilles Chanteperdrix @ 2011-06-22 18:50 ` David Wiebe 2011-06-23 3:35 ` David Wiebe 0 siblings, 1 reply; 12+ messages in thread From: David Wiebe @ 2011-06-22 18:50 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai On 11-06-22 11:00 AM, Gilles Chanteperdrix wrote: > On 06/22/2011 07:54 PM, David Wiebe wrote: >> On 11-06-22 09:28 AM, Philippe Gerum wrote: >>> On Wed, 2011-06-22 at 09:19 -0700, David Wiebe wrote: >>>> On 11-06-22 01:57 AM, Philippe Gerum wrote: >>>> Still not compiling. >>>> >>> Your build flags are likely wrong. Did you get them via xeno-config? >> Here are my build flags. >> >> CFLAGS=`DESTDIR=/home/david/sdir >> /home/david/sdir/usr/xenomai/bin/xenomai-config --skin native --cflags` >> >> LDFLAGS=`DESTDIR=/home/david/sdir >> /home/david/sdir/usr/xenomai/bin/xenomai-config --skin native --ldflags` > You need to obtain flags for rtdm with xeno-config --skin rtdm etc... > OK, I changed --skin native to --skin rtdm. The previous errors with rt_dev_open and rt_dev_ioctl are gone but now I have errors with rt_task_create etc. I assume I need flags for both native and rtdm. How might I accomplish that? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-22 18:50 ` David Wiebe @ 2011-06-23 3:35 ` David Wiebe 2011-06-23 6:57 ` Philippe Gerum 0 siblings, 1 reply; 12+ messages in thread From: David Wiebe @ 2011-06-23 3:35 UTC (permalink / raw) To: xenomai Hello, The program included in this email compiles and runs on my beagleboard xm. The compiler gives no warnings or anything. Once I prepend an ioctl call with rt_dev_, I get the following david@domain.hid$ arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS xenomai-spi-eth-00002.c $LDFLAGS -I /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ /tmp/cc9aLEWN.o: In function `main': xenomai-spi-eth-00002.c:(.text+0x334): undefined reference to `rt_dev_ioctl' collect2: ld returned 1 exit status I'm perplexed because as I understand it including rtdm/rtdm.h should allow the function rt_dev_ioctl to be used. In a previous email I received, it was suggested I change the skin to rtdm. I set both skin to rtdm. This gave me a different set of errors referencing rt_task_set_periodic and the like. Thanks for reading this, Sincerely, David CFLAGS=`DESTDIR=/home/david/sdir /home/david/sdir/usr/xenomai/bin/xeno-config --skin native --cflags` LDFLAGS=`DESTDIR=/home/david/sdir /home/david/sdir/usr/xenomai/bin/xeno-config --skin native --ldflags` #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/ioctl.h> #include <signal.h> #include <sys/mman.h> #include <getopt.h> #include <linux/types.h> #include <linux/spi/spidev.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <native/task.h> #include <native/timer.h> #include <native/pipe.h> #include <rtdk.h> #include <rtdm/rtipc.h> #include <rtdm/rtdm.h> #include <rtdm/rtcan.h> RT_TASK blink_task; #define TIMESLEEP 1000000 /* 1 msec(ns) */ #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) #define PORT 8080 #define HOST "192.168.1.101" #define DIRSIZE 8192 #define HIGH 1 #define LOW 0 #define HIGH_TIME 12 #define LOW_TIME 1 #define TIME_USEC 0 static const char *device = "/dev/spidev3.0"; static uint8_t mode; static uint8_t bits = 8; static uint32_t speed = 11000000; //static uint16_t delay=1; int fd; FILE *fp; FILE *fpx; char set_value[4]; int state; int ret = 0; //struct sockaddr_in sin; struct sockaddr_in pin; struct hostent *hp; int sd; char hostname[100]; char return_array[400]; int i; void blink(void *arg __attribute__((__unused__))) { uint8_t tx[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; uint8_t rx[ARRAY_SIZE(tx)] = {0, }; struct spi_ioc_transfer tr = { .tx_buf = (unsigned long)tx, .rx_buf = (unsigned long)rx, .len = ARRAY_SIZE(tx), .delay_usecs = TIME_USEC, .speed_hz = speed, .bits_per_word = bits, }; rt_task_set_periodic(NULL, TM_NOW, TIMESLEEP); if (ret == -1) printf("can't set spi mode"); while(1) { rt_task_wait_period(NULL); ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); for(i = 0;i < 360;i++) { return_array[i] = 68; } return_array[359] = 0; if (ret < 1) printf("can't send spi message"); if (send(sd, return_array, strlen(return_array), 0) == -1) { perror("send"); exit(1); } } } void catch_signal() {} int main(void) { signal(SIGTERM, catch_signal); signal(SIGINT, catch_signal); /* Avoids memory swapping for this program */ mlockall(MCL_CURRENT|MCL_FUTURE); fd = open(device, O_RDWR); // fd = rt_dev_open(device, O_RDWR); if (fd < 0) printf("can't open device"); mode |= SPI_CPHA; /* * spi mode */ ret = ioctl(fd, SPI_IOC_WR_MODE, &mode); if (ret == -1) printf("can't set spi mode"); ret = ioctl(fd, SPI_IOC_RD_MODE, &mode); if (ret == -1) printf("can't get spi mode"); /* * bits per word */ ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); if (ret == -1) printf("can't set bits per word"); ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits); if (ret == -1) printf("can't get bits per word"); /* * max speed hz */ ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); if (ret == -1) printf("can't set max speed hz"); ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); if (ret == -1) printf("can't get max speed hz"); /************************************************/ /* Ethernet stuff */ /************************************************/ strcpy(hostname,"192.168.0.101");//HOST); /* go find out about the desired host machine */ if ((hp = gethostbyname(hostname)) == 0) { perror("gethostbyname"); exit(1); } /* fill in the socket structure with host information */ memset(&pin, 0, sizeof(pin)); pin.sin_family = AF_INET; pin.sin_addr.s_addr = ((struct in_addr *)(hp->h_addr))->s_addr; pin.sin_port = htons(PORT); /* grab an Internet domain socket */ if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } /* connect to PORT on HOST */ if (connect(sd,(struct sockaddr *) &pin, sizeof(pin)) == -1) { perror("connect"); exit(1); } /* Task Creation */ rt_task_create(&blink_task, "blinkLed", 0, 99, 0); rt_task_start(&blink_task, &blink, NULL); getchar(); rt_task_delete(&blink_task); close(fd); return 0; } ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xenomai-help] rt_dev_ioctl 2011-06-23 3:35 ` David Wiebe @ 2011-06-23 6:57 ` Philippe Gerum 0 siblings, 0 replies; 12+ messages in thread From: Philippe Gerum @ 2011-06-23 6:57 UTC (permalink / raw) To: David Wiebe; +Cc: xenomai On Wed, 2011-06-22 at 20:35 -0700, David Wiebe wrote: > Hello, > > The program included in this email compiles and runs on my beagleboard > xm. The compiler gives no warnings or anything. > > Once I prepend an ioctl call with rt_dev_, I get the following > > david@domain.hid$ > arm-none-linux-gnueabi-gcc -o xenomai-spi-eth-00002 $CFLAGS > xenomai-spi-eth-00002.c $LDFLAGS -I > /home/david/122720101858-beagleboard-working-set/kernel/linux/include/ > /tmp/cc9aLEWN.o: In function `main': > xenomai-spi-eth-00002.c:(.text+0x334): undefined reference to `rt_dev_ioctl' > collect2: ld returned 1 exit status > > I'm perplexed because as I understand it including rtdm/rtdm.h should > allow the function rt_dev_ioctl to be used. > > In a previous email I received, it was suggested I change the skin to > rtdm. I set both skin to rtdm. This gave me a different set of errors > referencing rt_task_set_periodic and the like. The proper way to build a (simple) native API based foo.c application using the ancillary RTDM library would be this one: CFLAGS = $(shell xeno-config --skin=native --cflags) LDFLAGS = $(shell xeno-config --skin=native --ldflags) CC = $(shell xeno-config --cc) all: foo %: %.c $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) -lnative -lrtdm With the POSIX API, you would have specified --skin=posix. RTDK is not RTDM-related, it is a set of helper routines to use in real-time context. It currently provides rt-compatible printf(3) like services. You get these with the additional -lrtdk spec. > > > Thanks for reading this, > > Sincerely, > > David > > CFLAGS=`DESTDIR=/home/david/sdir > /home/david/sdir/usr/xenomai/bin/xeno-config --skin native --cflags` > > LDFLAGS=`DESTDIR=/home/david/sdir > /home/david/sdir/usr/xenomai/bin/xeno-config --skin native --ldflags` > > > #include <stdio.h> > #include <stdlib.h> > #include <fcntl.h> > #include <unistd.h> > #include <sys/stat.h> > #include <sys/types.h> > #include <sys/ioctl.h> > #include <signal.h> > #include <sys/mman.h> > > #include <getopt.h> > #include <linux/types.h> > #include <linux/spi/spidev.h> > #include <string.h> > #include <sys/socket.h> > #include <netinet/in.h> > #include <netdb.h> > > #include <native/task.h> > #include <native/timer.h> > #include <native/pipe.h> > #include <rtdk.h> > #include <rtdm/rtipc.h> > #include <rtdm/rtdm.h> > #include <rtdm/rtcan.h> > > RT_TASK blink_task; > > #define TIMESLEEP 1000000 /* 1 msec(ns) */ > > #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) > #define PORT 8080 > #define HOST "192.168.1.101" > #define DIRSIZE 8192 > #define HIGH 1 > #define LOW 0 > > #define HIGH_TIME 12 > #define LOW_TIME 1 > #define TIME_USEC 0 > > static const char *device = "/dev/spidev3.0"; > static uint8_t mode; > static uint8_t bits = 8; > static uint32_t speed = 11000000; > //static uint16_t delay=1; > > > int fd; > FILE *fp; > FILE *fpx; > char set_value[4]; > int state; > int ret = 0; > //struct sockaddr_in sin; > struct sockaddr_in pin; > struct hostent *hp; > int sd; > char hostname[100]; > char return_array[400]; > int i; > void blink(void *arg __attribute__((__unused__))) > { > uint8_t tx[] = { > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, > }; > uint8_t rx[ARRAY_SIZE(tx)] = {0, }; > struct spi_ioc_transfer tr = { > .tx_buf = (unsigned long)tx, > .rx_buf = (unsigned long)rx, > .len = ARRAY_SIZE(tx), > .delay_usecs = TIME_USEC, > .speed_hz = speed, > .bits_per_word = bits, > }; > rt_task_set_periodic(NULL, TM_NOW, TIMESLEEP); > if (ret == -1) > printf("can't set spi mode"); > while(1) > { > rt_task_wait_period(NULL); > ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); > for(i = 0;i < 360;i++) > { > return_array[i] = 68; > } > return_array[359] = 0; > > if (ret < 1) > printf("can't send spi message"); > > if (send(sd, return_array, strlen(return_array), 0) == -1) > { > perror("send"); > exit(1); > } > } > } > > void catch_signal() {} > > int main(void) > { > signal(SIGTERM, catch_signal); > signal(SIGINT, catch_signal); > > /* Avoids memory swapping for this program */ > mlockall(MCL_CURRENT|MCL_FUTURE); > > fd = open(device, O_RDWR); > // fd = rt_dev_open(device, O_RDWR); > if (fd < 0) > printf("can't open device"); > > mode |= SPI_CPHA; > /* > * spi mode > */ > ret = ioctl(fd, SPI_IOC_WR_MODE, &mode); > if (ret == -1) > printf("can't set spi mode"); > > ret = ioctl(fd, SPI_IOC_RD_MODE, &mode); > if (ret == -1) > printf("can't get spi mode"); > > /* > * bits per word > */ > ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); > if (ret == -1) > printf("can't set bits per word"); > > ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits); > if (ret == -1) > printf("can't get bits per word"); > > /* > * max speed hz > */ > ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); > if (ret == -1) > printf("can't set max speed hz"); > > ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); > if (ret == -1) > printf("can't get max speed hz"); > /************************************************/ > /* Ethernet stuff */ > /************************************************/ > strcpy(hostname,"192.168.0.101");//HOST); > > > /* go find out about the desired host machine */ > if ((hp = gethostbyname(hostname)) == 0) > { > perror("gethostbyname"); > exit(1); > } > > /* fill in the socket structure with host information */ > memset(&pin, 0, sizeof(pin)); > pin.sin_family = AF_INET; > pin.sin_addr.s_addr = ((struct in_addr *)(hp->h_addr))->s_addr; > pin.sin_port = htons(PORT); > > /* grab an Internet domain socket */ > if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) > { > perror("socket"); > exit(1); > } > > /* connect to PORT on HOST */ > if (connect(sd,(struct sockaddr *) &pin, sizeof(pin)) == -1) > { > perror("connect"); > exit(1); > } > > /* Task Creation */ > rt_task_create(&blink_task, "blinkLed", 0, 99, 0); > rt_task_start(&blink_task, &blink, NULL); > getchar(); > rt_task_delete(&blink_task); > close(fd); > > return 0; > } > > > _______________________________________________ > Xenomai-help mailing list > Xenomai-help@domain.hid > https://mail.gna.org/listinfo/xenomai-help -- Philippe. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-06-23 6:57 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-06-21 13:11 [Xenomai-help] regarding ARMv.s error suresh reddy 2011-06-21 14:02 ` Gilles Chanteperdrix 2011-06-22 7:19 ` Gilles Chanteperdrix 2011-06-22 8:43 ` [Xenomai-help] rt_dev_ioctl David Wiebe 2011-06-22 8:57 ` Philippe Gerum 2011-06-22 16:19 ` David Wiebe 2011-06-22 16:28 ` Philippe Gerum 2011-06-22 17:54 ` David Wiebe 2011-06-22 18:00 ` Gilles Chanteperdrix 2011-06-22 18:50 ` David Wiebe 2011-06-23 3:35 ` David Wiebe 2011-06-23 6:57 ` Philippe Gerum
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.