Next: System security in embedded
Up: Real-time Multitasking: rectangle.o
Previous: Real-time Multitasking: rectangle.o
#include <linux/module.h>
#include <linux/kernel.h>
#include <rtl_time.h>
#include <rtl_sched.h>
#include <asm/io.h>
#include <time.h>
#include "common.h"
int period[2]={20000000,1000000};
int periodic_mode=0;
int nibl=0xff;
pthread_t THREAD[2];
void *bit_toggle(void *t) {
int index = (int)t;
pthread_make_periodic_np(THREAD[index],
gethrtime(), period[index]);
while (1){
outb(nibl,LPT);
nibl = ~nibl;
pthread_wait_np();
}
}
int init_module(void)
{
pthread_attr_t attr;
struct sched_param sched_param;
pthread_attr_init (&attr);
sched_param.sched_priority = 1;
pthread_attr_setschedparam (&attr,
&sched_param);
pthread_create (&THREAD[0], &attr,
bit_toggle, (void *)0);
pthread_create (&THREAD[1], &attr,
bit_toggle, (void *)1);
return 0;
}
void cleanup_module(void)
{
pthread_delete_np (THREAD[0]);
pthread_delete_np (THREAD[1]);
}
Der Herr Hofrat
2002-03-08