All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] module.h error
@ 2012-11-12 23:39 Sebastian Pavez
  2012-11-13 11:37 ` Gilles Chanteperdrix
  0 siblings, 1 reply; 2+ messages in thread
From: Sebastian Pavez @ 2012-11-12 23:39 UTC (permalink / raw)
  To: Xenomai

Hi everybody!

I have xenomai-2.6.1 with kernel 3.2.32 over an i7.
I'm trying to compile the attached files, but with make I get this message:

cc -I/lib/modules/3.2.32/build/include/xenomai 
-I/lib/modules/3.2.32/build/include/xenomai/compat
-I/lib/modules/3.2.32/build/include/xenomai/posix     -c -o sinus.o sinus.c
sinus.c:2:26: fatal error: linux/module.h: No such file or directory
compilation terminated.
make: *** [sinus.o] Error 1

How could I fix this?? This mean that I have some problems with 
xenomai's installation?? or did I overlook something??

Thank you for your time and disposition
Seba
-------------- next part --------------
###### CONFIGURATION ######

### List of applications to be build
APPLICATIONS =  

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


### List of modules to be build
MODULES = sinus  

### 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)

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

LOADLIBES=$(shell $(XENOCONFIG) --xeno-ldflags) $(MY_LDFLAGS) -lnative -lrtdm

# 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.
LOADLIBES+=-Xlinker -rpath -Xlinker $(shell $(XENOCONFIG) --libdir)

all:: $(APPLICATIONS)

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

endif
endif



###### 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 Module.markers modules.order
	$(RM) -R .tmp*

endif
-------------- next part --------------
#ifndef REG_PCI1711_h

#define REG_PCI1711_h

#define PCI171x_AD_DATA  0              /* R:   A/D data */
#define PCI171x_SOFTTRG  0              /* W:   soft trigger for A/D */
#define PCI171x_RANGE    2              /* W:   A/D gain/range register */
#define PCI171x_MUX_sta  4              /* W:   A/D multiplexor control */
#define PCI171x_MUX_sto  5              /* W:   A/D multiplexor control */


#define PCI171x_STATUS   7              /* R:   status register */
#define PCI171x_CONTROL  6              /* W:   control register */
#define PCI171x_CLRINT   8              /* W:   clear interrupts request */
#define PCI171x_CLRFIFO  9              /* W:   clear FIFO */
#define PCI171x_DA0     10              /* W:   D/A register */
#define PCI171x_DA1     12              /* W:   D/A register */
#define PCI171x_DAREF   14              /* W:   D/A reference control */
#define PCI171x_DI      16              /* R:   digi inputs */
#define PCI171x_DO      16              /* R:   digi inputs */
#define PCI171x_CNT0    24              /* R/W: 8254 couter 0 */
#define PCI171x_CNT1    26              /* R/W: 8254 couter 1 */
#define PCI171x_CNT2    28              /* R/W: 8254 couter 2 */
#define PCI171x_CNTCTRL 30              /* W:   8254 counter control */

// upper bits from status register (PCI171x_STATUS) (lower is same woth control reg)
#define Status_FE       0x01          /* 1=FIFO is empty */
#define Status_FH       0x02          /* 1=FIFO is half full */
#define Status_FF       0x04          /* 1=FIFO is full, fatal error */
#define Status_IRQ      0x08          /* 1=IRQ occured */
// bits from control register (PCI171x_CONTROL)


#define Control_CNT0    0x0040          /* 1=CNT0 have external source, 0=have internal 100kHz source */
#define Control_ONEFH   0x0020          /* 1=IRQ on FIFO is half full, 0=every sample */
#define Control_IRQEN   0x0010          /* 1=enable IRQ */
#define Control_GATE    0x0008          /* 1=enable external trigger GATE (8254?) */
#define Control_EXT     0x0004          /* 1=external trigger source */
#define Control_PACER   0x0002          /* 1=enable internal 8254 trigger source */
#define Control_SW      0x0001          /* 1=enable software trigger source */

//bits from d/a reference control
#define DA_Control_DA1_I_E 0x08	//1=external reference
#define DA_Control_DA0_I_E 0x02
#define DA_Control_DA1_5_10 0x04	//1=10V
#define DA_Control_DA0_5_10 0x01

#define AD_Range_S_D 0x0020
#define AD_Range_B_U 0x0010

#endif


-------------- next part --------------
#include <linux/pci.h>
#include <linux/module.h>
#include <rtdm/rtdm_driver.h>
#include <time.h>
//#include <math.h>


MODULE_LICENSE("GPL");

#define PERIOD	10000 /* 10us */
#define PORT_PARALLEL 0x378
#define SPEAKER_DATA 0x61


#include "REG_PCI1711.h"


#define PCI_VENDOR_ 0x13fe
#define PCI_DEVICE_ 0x1711
#define NREG 32 	/*Espai reservat per registres*/

unsigned int PCI_BASE_ADRESS_1711;


static rtdm_task_t periodic_task;
static int end = 0;

//***************************************************************************
//*********************************************************************

int detecta_PCI (void){

  /*
  unsigned char pci_bus, pci_device_fn;
  int pci_index;
  pci_index=0;
  pcibios_find_device (PCI_VENDOR, PCI_DEVICE, pci_index, &pci_bus, &pci_device_fn);
  pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_2, &PCI_BASE_ADRESS);
  PCI_BASE_ADRESS  &= PCI_BASE_ADDRESS_IO_MASK;
  request_region(PCI_BASE_ADRESS, 32, "Advantech PCI-1710");
  */


struct pci_dev *pcidev;

printk("PCI-1711 DETECT PCI \n");
pcidev=NULL;
pcidev =pci_get_device (PCI_VENDOR_, PCI_DEVICE_, pcidev );
if (pcidev==NULL){
	printk("PCI-1711 CANNOT BE FOUND \n");
}
else{
    printk("PCI-1711 LOCATED \n");
    if (pci_enable_device(pcidev)){
      printk("PCI-1711 NOT ENABLED \n");
      return(-EIO);
    }
    else{
        printk("PCI-1711 ENABLED \n");
	}
    PCI_BASE_ADRESS_1711= pci_resource_start(pcidev, 2);

    printk("PCI-1711 DETECT PCI %x \n",PCI_BASE_ADRESS_1711);
}

 return (0);
}
//*********************************************************************


void periodic(void *cookie)
{
  unsigned int yint;
  double t,w,y;
  struct timespec time;


  outw(0x0000,PCI_BASE_ADRESS_1711 + PCI171x_DAREF);

  while (!end) {
       	
    //clock_gettime(CLOCK_REALTIME,&time);
    //t=(double)time.tv_nsec*1.0E-9+(double)time.tv_sec;
    //y=(double)0.5+(double)0.5*sin( w*t);
    //yint=ceil( y* ( (double) 4095 ));
    yint=yint+1;
    outw(yint,PCI_BASE_ADRESS_1711 + PCI171x_DA0);
    rtdm_task_wait_period();
  }

}

int __init init_heartbeat(void)
{
	 
        detecta_PCI ();

	return rtdm_task_init(&periodic_task, "periodic", periodic, NULL,
			      99, PERIOD);
}

void __exit cleanup_heartbeat(void)
{
	end = 1;
	rtdm_task_join_nrt(&periodic_task, 100);
}

module_init(init_heartbeat);
module_exit(cleanup_heartbeat);


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

end of thread, other threads:[~2012-11-13 11:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-12 23:39 [Xenomai] module.h error Sebastian Pavez
2012-11-13 11:37 ` 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.