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!feeder.eternal-september.org!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail From: antispam@math.uni.wroc.pl Newsgroups: comp.lang.ada Subject: Re: Getting started with bare-board development Date: Tue, 15 Nov 2016 01:14:50 +0000 (UTC) Organization: Politechnika Wroclawska Message-ID: References: NNTP-Posting-Host: hera.math.uni.wroc.pl X-Trace: z-news.wcss.wroc.pl 1479172490 9833 156.17.86.1 (15 Nov 2016 01:14:50 GMT) X-Complaints-To: abuse@news.pwr.wroc.pl NNTP-Posting-Date: Tue, 15 Nov 2016 01:14:50 +0000 (UTC) Cancel-Lock: sha1:yu/y7Sx+6WL4Wx0Myh56ke3neqE= User-Agent: tin/2.2.1-20140504 ("Tober an Righ") (UNIX) (Linux/4.6.4 (x86_64)) Xref: news.eternal-september.org comp.lang.ada:32318 Date: 2016-11-15T01:14:50+00:00 List-Id: Adam Jensen wrote: > Hi, I've recently began to have a serious look at Ada-2012 and > Spark-2014, and using GNAT for the development of real-time software in > embedded systems. > Adacore has an example for the STM32F4-Discovery[3], and more elaborate > documentation is available for the Nucleo[4], but both of those kits > seem to have very limited memory. How much can be done with that? Just to address this point: real time embedded systems are frequently done with single chip microcontrollers. Microcontroller contains combinatorial logic (processor core, digital peripherials), SRAM, flash and analog parts. Having all this on single chip brings substantial advantages. But the drawback is that various parts have conflicting manufacturing requirements. So no part is as good as "pure" chip could be. In particular, microcontroller at lower end may have as little as 32 bytes of RAM and at high end rarely go into megabyte range. Basically, if you need more RAM you need to go into multi-chip design with separate memory chip. Then you can easily get say 256 MB, but latency of external memory is much larger than internal SRAM. So while you may have plenty of external memory program using it will run slower. Worse, high latency means that it is hard to give assurance of real time behaviour. STM32F4-Discovery contains relatively large microcontoller. Nucleo boards have several versions containg both middle sized and large microcontollers. Note that flash is typically much larger than RAM, so in fact you can have quite a lot functionalty inside a single chip microcontroller. When talking about critical system I would say that modern microcontollers give you quite a lot of space where bugs can hide. In other words, to limit effort spent on validating code you may wish to limit size of your system so that in effect it fits in small device. -- Waldek Hebisch