All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Pavez <sebastian.pavez.t@gmail.com>
To: Xenomai <xenomai@xenomai.org>
Subject: [Xenomai] module.h error
Date: Mon, 12 Nov 2012 20:39:15 -0300	[thread overview]
Message-ID: <50A188A3.90704@gmail.com> (raw)

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


             reply	other threads:[~2012-11-12 23:39 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-12 23:39 Sebastian Pavez [this message]
2012-11-13 11:37 ` [Xenomai] module.h error Gilles Chanteperdrix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50A188A3.90704@gmail.com \
    --to=sebastian.pavez.t@gmail.com \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.