This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
RE: How to debug synchronisation in the usbs.c in a new usb-driver for the ARM at91sam7s...
- From: "Derek Bouius" <derek dot bouius at sympatico dot ca>
- To: "'oliver munz @ s p e a g'" <munz at speag dot ch>, <andrew at lunn dot ch>
- Cc: <ecos-discuss at sourceware dot org>
- Date: Thu, 16 Feb 2006 15:07:25 -0500
- Subject: RE: [ECOS] How to debug synchronisation in the usbs.c in a new usb-driver for the ARM at91sam7s...
I just tried implementing it with event flags, and it works fine too, with no noticable performance difference.
Gary, I have studied the different options but I can't determine why this is a heavier solution. It seems like the only possible
one.
Any other method with condition variables ends up in a race condition deadlock. (Please correct me if I'm wrong though!)
Just doing some more reading about the cyg_drv_cond_wait()... "Note that this function performs an implicit scheduler unlock/relock
sequence, so that it may be used within an explicit cyg_drv_dsr_lock()...cyg_drv_dsr_unlock() structure."
What if we did the dsr_lock/unlock around the while loop? I'll have to try it.
Derek
-----Original Message-----
From: oliver munz @ s p e a g [mailto:munz@speag.ch]
Sent: Thursday, February 16, 2006 11:47 AM
To: Derek Bouius; andrew@lunn.ch
Cc: ecos-discuss@sourceware.org
Subject: Re: [ECOS] How to debug synchronisation in the usbs.c in a new usb-driver for the ARM at91sam7s...
Thanks for the solution...
Does this work whitout kernel? Would it be better to use event-flags?
Thanks
Oliver Munz
----- Original Message -----
From: "Derek Bouius" <derek.bouius@sympatico.ca>
To: <andrew@lunn.ch>; <munz@speag.ch>
Cc: <ecos-discuss@sourceware.org>
Sent: Thursday, February 16, 2006 5:15 PM
Subject: Re: [ECOS] How to debug synchronisation in the usbs.c in a new
usb-driver for the ARM at91sam7s...
>I am not registered for the mailing list, but peruse it once in a while, so
>I am not sure if my mail will go through to it. Feel
> free to repost it if it doesn't.
> What we did to fix the locking issue was change the mutex to a semaphore.
> See the patch. It seems to work reliably.
>
> Cheers,
>
> Derek
>
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss