Hi Tony.
Let me try to explain it in some more detail.
It start with an idle system. Two task TaskA and TaskB are suspended. TaskA
has an high priority. TaskB a low priority.
At this moment an interrupt comes from my hardware. The interrupt wakes up
TaskA. TaskA does some processing and in some cases it wakes up taskB. (the
first time after idle situation it actual wakes up taskB). TaskB does a long
cpu time consuming calculation and therfore i want this task can be
interrupted by the isr to wake up taskA again. But what i see is that taskB
have to be completed. after this the isr routine ends, and immediatly a new
(delayed) interrupt comes in.
So in a little diagram :
(B is Begin of function, E is End of function)
what i see :
idle ----------| | |
|
isr |B------------| |
|--E|B----------
taskA | |B-----------E|
taskB | |
|B---------//---E|
what i want
idle ----------| | | |
|
isr |B-------E| |
|B------E|
taskA | |B-----------E| |
|B-----E|
taskB | | |B----|
| |---------------------------E|
>From Stefano i got a tip to enable the interrupt again in the isr so new
interrupts are enabled. I havent tried this yet but i may be a solution.
Thanks for every help
----- Original Message -----
From: Tony Macabuhay <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, May 23, 2001 11:16 PM
Subject: Re: [rtl] thread scheduling and interrupts
>
>
> Rini van Zetten wrote:
>
> > ...
>
> > When the interrupt occurs, the high priority task is fired. runs until
it
> > goes asleep again. after this the low priority task get running again
(it
> > was stopped by the interrupt) BUT the interrupt routine is not finished
yet.
> > After the low priority task falls asleep, and eventualy the interrupt
> > routine ends.
> >
>
> Before I answer the question, I need more information.
>
> Why are you sleeping in an IRQH? Or is this whay you don't want it to do?
> Did you design your system such that the high-priority task only ends
after
> certain actions are taken within the low-priority task?
>
> -Tony
>
> -- [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/
>
-- [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/