This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: On Alarms...


Milind Kopikare wrote:
Hi, A few questions on alarms.
1> Are Alarms like interrupts? If so, what's the
priority? I've been using Alarms and they seem to stop
even the highest of priority tasks. But just curios on
how it's implemented internally. Is there a more
comprehensive doc to read up on this.
Alarm's are called as a result of the kernel clock interrupt. As David says, this results in the alarm handlers being called in a DSR context, in this case from the clock DSR.

2> I was trying to toggle between starting a thread
and suspending it using an Alarm. void alarm_func(){
if (thread is suspended)
cyg_thread_resume
else cyg_thread_suspend
}
But if I keep the Alarm resolution too small, say the
Alarm triggers every 2 ticks (2*10ms), the thread does
not resume. It's as if the scheduler is taking more
than 2 ms to start the thread. Any insight into what's
wrong? Ofcourse, if I give the ALARM resolution as
100ms (10ticks), the thread toggles allright.
Just on the off-chance, is the thread doing any diagnostic output, especially via GDB? If so, interrupts will be disabled while the output is performed which could easily be up to 2 ticks. Diagnostic output shouldn't be used for "real" applications - use proper interrupt-driven drivers instead.

3. Can we have more than one periodic Alarm? I mean if
I have two alarms, and both trigger every 100ms, only
the alarm enabled seems to be activated. The first one
dosent seem to work. Any insight?
That should work. If it doesn't there's a problem. Do you have a concise test case?

Jifl
--
eCosCentric http://www.eCosCentric.com/ <info@eCosCentric.com>
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine


--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]