From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Niklas Holsti Newsgroups: comp.lang.ada Subject: Re: STM32F4 Discovery, communication and libraries Date: Fri, 29 Aug 2014 00:17:12 +0300 Organization: Tidorum Ltd Message-ID: References: <60a42dc6-d8d0-4432-ae5a-86de18b82840@googlegroups.com> <5kkrv9hejn2qhdckkeo8lidkbh3bkme1gn@4ax.com> <5b91313c-acf9-4a6e-b157-6ba7c8021567@googlegroups.com> <0513ad07-6fbe-463a-be6f-097cd5113f52@googlegroups.com> <4f1ec65a-d66a-40bf-a0d6-278fde206e70@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: individual.net tmmO2lnDEHh7gya8DLvMiA48rXNQV+SzvZXnL2CCwUNyVz6OeB Cancel-Lock: sha1:33dfA5cbFmOJqg5d/AWVYsVj+BE= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 In-Reply-To: Xref: news.eternal-september.org comp.lang.ada:21970 Date: 2014-08-29T00:17:12+03:00 List-Id: On 14-08-28 23:09 , Dmitry A. Kazakov wrote: > On Thu, 28 Aug 2014 09:28:15 -0700 (PDT), Mike Silva wrote: > >> On Thursday, August 28, 2014 6:00:12 AM UTC-7, Dmitry A. Kazakov wrote: >>> One of the responsibilities of the OS and the middleware is to perform I/O >>> on things like ModBus in background without blocking the application and >>> other I/O. Even a very lame board is usually much faster than any ModBus >>> terminal. >> >> Maybe there is some confusion being caused by the term "OS" here. Ada's >> concurrency and realtime functionality can run on top of an OS, but it can >> also run on bare metal (an "invisible" OS?). > > Not really. OS is more than tasking, it is also a queueing mechanism, which > allows waiting for I/O completion in one task without blocking all other > tasks. > >> The GNAT ARM Cortex M >> release does have Ravenscar tasking on bare metal. > > You could not implement an equivalent of I/O queueing under the Ravenscar > constraints. It is certainly possible to implement an I/O request queue in Ravenscar; I have done so for the platform SW on ESA's GOCE satellite. Multiple client tasks, one server (interface driver) task. An I/O request contains (or is, or refers to) a client-specific protected object (PO) with an "I/O completed" entry, on which the client task waits after enqueueing the I/O request. The server task processes submitted I/O requests in any order and concurrency it chooses; when an I/O request is done, the server task calls an operation on the request's PO, which unblocks the entry, resuming the client task. -- Niklas Holsti Tidorum Ltd niklas holsti tidorum fi . @ .