[fpc-devel] ConsoleIO and flushing buffered output

Christo Crause christo.crause at gmail.com
Mon Jun 8 11:27:39 CEST 2020


On Sun, Jun 7, 2020 at 11:54 PM Michael Van Canneyt <michael at freepascal.org>
wrote:

>
> On Sun, 7 Jun 2020, Christo Crause via fpc-devel wrote:
>
> > I want to change the _haltproc for freertos ESP controllers to use normal
> > write/writeln functionality to send information to standard output.  On
> > these targets the output is typically buffered serial provided by the OS.
> > Text output written just prior to setting the cpu to sleep doesn't get
> > sent, hence a flush is needed to complete data transmission before
> putting
> > the cpu to sleep.  Looking at consoleio.OpenIO there doesn't seem to be a
> > convenient way to provide a flush helper function. Also the RTL Flush
> > procedure calls InOutFunc and not FlushFunc.
> >
> > What is the proper way to hook a flush helper function into the existing
> > RTL infrastructure?
>
> Simply do this in InoutFunc ?
>
> Michael.
>

Thanks for your response Michael.  Using InOutFunc to also flush the output
buffer will work, but that seems inefficient, since the flush needs to wait
until the transmit buffer is empty (at slow UART speeds this could
potentially take several ms to complete).   Is there a specific reason why
the RTL Flush procedure does not call the FlushFunc method?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20200608/b2183303/attachment.htm>


More information about the fpc-devel mailing list