From: mani bhatti <imranbashirbhatti@domain.hid>
To: xenomai@xenomai.org
Subject: [Xenomai-help] user space interrupt
Date: Fri, 8 Dec 2006 06:01:00 -0800 (PST) [thread overview]
Message-ID: <279913.29791.qm@domain.hid> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 666 bytes --]
Hi all
i am trying to access parallel port form a user space task.i have copied code from an example which runs parallel port in interrupt mode but the problem is that when i run program i get following message
"iopl err"
due to this piece of code
// ask for permission to access the parallel port from user-space
if (iopl(3)) {
printf("iopl err\n");
exit(1);
}
i am working with interrupts for the first time and have no idea why this is happening .i am attaching the code also.Thanks all for the great help.
---------------------------------
Everyone is raving about the all-new Yahoo! Mail beta.
[-- Attachment #1.2: Type: text/html, Size: 1049 bytes --]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 4248410318-doppel_task.c --]
[-- Type: text/x-csrc; name="doppel_task.c", Size: 2440 bytes --]
#include <math.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <sys/time.h>
#include <sys/io.h>
#include <sys/mman.h>
#include <native/task.h>
#include <native/queue.h>
#include <native/intr.h>
#define STACK_SIZE 8192
#define STD_PRIO1 2
#define STD_PRIO2 1
#define IRQ_NUMBER 7
#define BASEPORT 0x378
#define PARPORTINT 7
RT_TASK zaehler1_task_ptr;
RT_TASK zaehler2_task_ptr;
RT_INTR intr_desc;
int count1 = 0;
int count2 = 0;
int i;
int end = 0;
// --s-ms-us-ns
RTIME task_period_ns1 = 1000000000llu;
RTIME task_period_ns2 = 10000000000llu;
void zaehler2_task(void *cookie){
int ret;
long ii;
long jj;
double a;
unsigned long overrun;
int err;
// ********************** Beginn des wiederholt ausgefuehrten Codes **********************************************
while(!end){
err = rt_intr_wait(&intr_desc,TM_INFINITE);
printf("Error is %d\n",err);
printf("\nInterrupt occured");
fflush(NULL);
}
// ********************** Ende des wiederholt ausgefuehrten Codes ***********************************************
}
// signal-handler, to ensure clean exit on Ctrl-C
void clean_exit(int dummy) {
printf("cleanup\n");
end = 1;
rt_task_delete(&zaehler2_task_ptr);
printf("end\n");
}
int main(int argc, char *argv[]) {
int err, ret;
printf("start\n");
// install signal handler
signal(SIGTERM, clean_exit);
signal(SIGINT, clean_exit);
// ask for permission to access the parallel port from user-space
if (iopl(3)) {
printf("iopl err\n");
exit(1);
}
outb_p(0x10, BASEPORT + 2);
err = rt_intr_create(&intr_desc,"MyIrq",IRQ_NUMBER,NULL);
printf("rt_intr_create=%i\n", err);
switch(-err)
{
case ENOMEM :
printf("fail to allocate dynamic memory");
break;
case EBUSY:
printf("Busy");
break;
}
rt_intr_enable (&intr_desc);
mlockall(MCL_CURRENT|MCL_FUTURE);
/* create zaehler2_task */
// err = rt_task_create(&zaehler2_task_ptr,"beta",STACK_SIZE,STD_PRIO2,0);
/* start zaehler2_task */
// err = rt_task_start(&zaehler2_task_ptr,&zaehler2_task,NULL);
// wait for signal & return of signal handler
pause();
fflush(NULL);
return 0;
}
next reply other threads:[~2006-12-08 14:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-08 14:01 mani bhatti [this message]
2006-12-08 16:50 ` [Xenomai-help] user space interrupt Gilles Chanteperdrix
2006-12-14 16:27 ` mani bhatti
2006-12-14 16:32 ` Gilles Chanteperdrix
2006-12-15 14:59 ` mani bhatti
2006-12-15 18:18 ` Gilles Chanteperdrix
2006-12-16 17:10 ` Hannes Mayer
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=279913.29791.qm@domain.hid \
--to=imranbashirbhatti@domain.hid \
--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.