comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Bidirectional UART design for Ravenscar
Date: Fri, 25 Aug 2017 23:24:38 +0100
Date: 2017-08-25T23:24:38+01:00	[thread overview]
Message-ID: <lyzianxp3t.fsf@pushface.org> (raw)

I'm trying to implement a two-way interrupt-driven interface via a UART
with Ravenscar, and having trouble because there is one interrupt with
multiple causes; a writer must wait until transmission is possible
before putting the next character, while a reader must wait until
there's a character to be read.

This makes it hard to write a PO with a single entry (a Ravenscar
restriction) that serves both requirements.

It occurs to me that the interrupt handler could release one of two
suspension objects; if it's Tx_Transfer_Complete, release the SO that
the writer waits on, if it's Rx_Transfer_Complete release the reader's
SO.

Does that seem a reasonable approach?


             reply	other threads:[~2017-08-25 22:24 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-25 22:24 Simon Wright [this message]
2017-08-25 22:40 ` Bidirectional UART design for Ravenscar Niklas Holsti
2017-08-26 11:04 ` Jeffrey R. Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox