Dear Xenomai Team,

below is the simple program i want to run on xenomai ported pandaboard.The
make file iam using is as follows . what exactly i have to do

to compile and link this example to run on the arm based target board with
this make file.






#include <stdio.h>

#include <signal.h>

#include <unistd.h>

#include <sys/mman.h>



#include <native/task.h>

#include <native/timer.h>



#include  <rtdk.h>

RT_TASK demo_task;



void demo(void *arg)

{

  RT_TASK *curtask;

  RT_TASK_INFO curtaskinfo;



  // hello world

  rt_printf("Hello World!\n");



  // inquire current task

  curtask=rt_task_self();

  rt_task_inquire(curtask,&curtaskinfo);



  // print task name

  rt_printf("Task name : %s \n", curtaskinfo.name);

}



int main(int argc, char* argv[])

{

  char  str[10] ;



  // Perform auto-init of rt_print buffers if the task doesn't do so

  rt_print_auto_init(1);



  // Lock memory : avoid memory swapping for this program

  mlockall(MCL_CURRENT|MCL_FUTURE);



  rt_printf("start task\n");



  /*

   * Arguments: &task,

   *            name,

   *            stack size (0=default),

   *            priority,

   *            mode (FPU, start suspended, ...)

   */

  sprintf(str,"hello");

  rt_task_create(&demo_task, str, 0, 50, 0);



  /*

   * Arguments: &task,

   *            task function,

   *            function argument

   */

  rt_task_start(&demo_task, &demo, 0);
}

Make file.

###### CONFIGURATION ######

### List of applications to be build
APPLICATIONS = ex01

### Note: to override the search path for the xeno-config script, use
"make XENO=..."


### List of modules to be build
MODULES =

### Note: to override the kernel source path, use "make KSRC=..."



###### USER SPACE BUILD (no change required normally) ######
ifeq ($(KERNELRELEASE),)
ifneq ($(APPLICATIONS),)

### Default Xenomai installation path
XENO ?= /usr/xenomai

XENOCONFIG=$(shell PATH=$(XENO):$(XENO)/bin:$(PATH) which xeno-config
2>/dev/null)

### Sanity check
ifeq ($(XENOCONFIG),)
all::
        @echo ">>> Invoke make like this: \"make XENO=/path/to/xeno-config\" 
<<<"
        @echo
endif


CC=$(shell $(XENOCONFIG) --cc)

CFLAGS=$(shell $(XENOCONFIG) --xeno-cflags) $(MY_CFLAGS)

LDFLAGS=$(shell $(XENOCONFIG) --xeno-ldflags) $(MY_LDFLAGS) -lnative

# This includes the library path of given Xenomai into the binary to make live
# easier for beginners if Xenomai's libs are not in any default search path.
LDFLAGS+=-Xlinker -rpath -Xlinker $(shell $(XENOCONFIG) --libdir)

LDFLAGS+= -lrtdk

all:: $(APPLICATIONS)

clean::
        $(RM) $(APPLICATIONS) *.o

endif
endif



###### SPECIAL TARGET RULES ######
rtprint: rtprint.c
        $(CC) $(CFLAGS) $? $(LDFLAGS) -lrtdk -o $@



###### KERNEL MODULE BUILD (no change required normally) ######
ifneq ($(MODULES),)

### Default to sources of currently running kernel
KSRC ?= /lib/modules/$(shell uname -r)/build

OBJS     := ${patsubst %, %.o, $(MODULES)}
CLEANMOD := ${patsubst %, .%*, $(MODULES)}
PWD      := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)

### Kernel 2.6
ifeq ($(findstring 2.6,$(KSRC)),2.6)

obj-m        := $(OBJS)
EXTRA_CFLAGS := -I$(KSRC)/include/xenomai
-I$(KSRC)/include/xenomai/posix $(ADD_CFLAGS)

all::
        $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules

### Kernel 2.4
else

ARCH    ?= $(shell uname -i)
INCLUDE := -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/compat
-I$(KSRC)/include/xenomai/posix
CFLAGS  += $(shell $(MAKE) -s -C $(KSRC) CC=$(CC) ARCH=$(ARCH)
SUBDIRS=$(PWD) modules) $(INCLUDE)

all:: $(OBJS)

endif

## Target for capturing 2.4 module CFLAGS
modules:
        @echo "$(CFLAGS)"

clean::
        $(RM) $(CLEANMOD) *.o *.ko *.mod.c Module*.symvers
        $(RM) -R .tmp*

endif



-- 

Suresh balijepalli
Rosenehim,Baveria.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to