Dear Friends,
*******************************************
Environment:
RT-Linux - Version 3.1
Linux - 2.4.18 with RT patch from contribution
*******************************************
Hardware
K6 - 500 MHz
64 MB SDRAM
20GB HAR DISK
*******************************************
I have a problem serving interrupts via RT-Linux version 3.1 on kernel
2.4.18 .
I tested a small driver to acquire data from the parallel Port Every Byte
comes in with one interrrupt, which is fired by the /ACK-Line.
I found out that, if I execute a simple command like "cat
rtlinux-3.1.tar.gz" cause
something wrong. Some time the interrupts are not all correctly served. Why
?
How is this possible?
Please help me to come out of this.
Best Regards,
Matteo
#include <rtl.h>
#include <rtl_sync.h>
#include <time.h>
#include <pthread.h>
#include <asm/io.h>
#include <linux/kd.h>
pthread_t thread;
unsigned int intr_handler(unsigned int irq, struct pt_regs *regs)
{
outb(0, 0x378);
rtl_hard_enable_irq(7);
return 0;
}
void * start_routine(void *arg)
{
struct sched_param p;
p.sched_priority = 1;
pthread_setschedparam (pthread_self(), SCHED_FIFO, &p);
pthread_make_periodic_np (pthread_self(), gethrtime(), 50000); //ns
while (1)
{
outb(3, 0x378);
pthread_wait_np();
}
return 0;
}
int init_module(void)
{
int status;
rtl_irqstate_t f;
rtl_no_interrupts(f);
status = rtl_request_irq(7, intr_handler); // if IRQ-Handler is OK
rtl_printf("rtl_request_irq: %d\n", status); // this will output 0
// on your console.
/* enbable parallel port interrupt */
outb_p(inb_p(0x37A) | 0x10, 0x37A);
outb_p(inb_p(0x21) & (~0x80), 0x21);
outb_p(0x20, 0x20);
rtl_hard_enable_irq(7);
rtl_restore_interrupts(f);
outb(0, 0x378); //set LPT-outputs to 0
return pthread_create (&thread, NULL, start_routine, 0);
}
void cleanup_module(void)
{
rtl_free_irq(7);
pthread_delete_np (thread);
}
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/