Sorry if this a stupid question but I'm quite new to RTL.
In one of my programs I'm using the IPC/semaphore package. Everything is
ok until I try to use the rt_task_delay() function, which crashes the
system. So, I created a little test program with two tasks, one task
declared periodic and the other not declared periodic but running
periodicly using rt_task_delay. (See code below) This little program
also ends up with system crash and now I would like to know why? Am I
using rt_task_delay wrong in any way? What would I need to do to make
this tiny example work?
I'd be grateful for any answer.
Regards,
Magnus Johansson
--------------------------------------
test.c
--------------------------------------
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/errno.h>
#include <rtl_sched.h>
#include "../semaphores/rt_ipc.h"
RT_TASK_IPC p1, p2;
RTIME now;
RTIME interval = HRTICKS_PER_SEC * 2;
void p1_code(int not_used) {
while(1) {
rt_task_wait();
rtl_printf("P1 is here\n");
}
}
void p2_code(int not_used) {
while(1) {
rt_task_delay(interval);
rtl_printf("P2 is also here\n");
}
}
int init_module(void) {
now = rt_get_time();
rt_task_ipc_init( &p1, p1_code, 0, 3000, 5 );
rt_task_ipc_init( &p2, p2_code, 0, 3000, 6 );
rt_task_make_periodic( MAKE_RT_TASK( &p1 ), now, interval );
rt_task_wakeup( MAKE_RT_TASK( &p1 ) );
rt_task_wakeup( MAKE_RT_TASK( &p2 ) );
return 0;
}
void cleanup_module(void) {
rt_task_ipc_delete( &p1 );
rt_task_ipc_delete( &p2 );
}
-- [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/rtlinux/