This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Custom Device Driver
- To: <jlarmour at redhat dot com>
- Subject: RE: [ECOS] Custom Device Driver
- From: "Andy Simpkins" <Andy dot Simpkins at TardisMobile dot com>
- Date: Tue, 27 Mar 2001 17:23:58 +0100
- Cc: "eCos discussion" <ecos-discuss at sources dot redhat dot com>
- Reply-To: Andy dot Simpkins at TardisMobile dot com
Assuming that I read you right, Can Software raise an interrupt on an ARM
core?
How would this be trapped in the low level ISR (in ##platform##_misc.c) to
determine the vector?
No Can't have understood properly :-)
True there is an ISR raised that causes me to vector to the GPS engine's ISR
this may result in 0, 1 or more events being raised. It's getting these
events into my DSR that is causing me grief (mainly because the IP we have
is not all in source form - hence the ADS library). I do not have a clear
picture of the execution thread of this IP. I do have an routine in ADS
that is called whenever a GPS event occurs - can I use a callback into the
device driver to populate a message box as you suggest?
Andy
-----Original Message-----
From: jlarmour@cambridge.redhat.com
[mailto:jlarmour@cambridge.redhat.com]On Behalf Of Jonathan Larmour
Sent: 27 March 2001 16:44
To: Andy.Simpkins@TardisMobile.com
Cc: eCos discussion
Subject: Re: [ECOS] Custom Device Driver
Andy Simpkins wrote:
>
> I am integrating a GPS receiver into eCos, the problem is that the IP for
> this is in the form of an ARM ADS library. To overcome this problem I
> simply call the appropriate routine in memory when one of the relevant
> interrupts are received. The calling function takes the form of an eCos
> device driver. Great everything works, eCos and the GPS engine.
>
> The GPS engine currently flashes LEDs when a GPS event occurs. What I am
> now trying to do is get events generated by the GPS engine to be
recognised
> by eCos. These events happen for example when there is position
information
> available.
>
> 1. How would one go about incorporating this into a device driver?
Assuming it can deliver interrupts, write an ISR that acks the interrupt,
and returns a code instructing eCos to call a DSR.
> 2. How should I then pass this information out to interested threads?
Create a message box, and in the DSR, put the information in that. The
threads can then read out of it.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine