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 X-Received: by 10.13.195.199 with SMTP id f190mr3748570ywd.66.1478978126076; Sat, 12 Nov 2016 11:15:26 -0800 (PST) X-Received: by 10.157.39.129 with SMTP id c1mr789845otb.15.1478978126023; Sat, 12 Nov 2016 11:15:26 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.glorb.com!p16no856483qta.1!news-out.google.com!c26ni682itd.0!nntp.google.com!q124no1066016itd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 12 Nov 2016 11:15:25 -0800 (PST) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=109.66.33.30; posting-account=gqw3dgoAAAC1n0FUnjZEhXcW3umVS9pY NNTP-Posting-Host: 109.66.33.30 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Getting started with bare-board development From: artium@nihamkin.com Injection-Date: Sat, 12 Nov 2016 19:15:26 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:32293 Date: 2016-11-12T11:15:25-08:00 List-Id: On Saturday, November 12, 2016 at 6:14:49 PM UTC+2, Adam Jensen wrote: > On 11/12/2016 04:45 AM, G.B. wrote: > > On 11.11.16 23:19, Adam Jensen wrote: > >> For example, would it be essential > >> (or especially convenient) to have a hardware development kit or is it > >> common to develop this kind of software using an emulator of some kind= ? > >=20 > > Given your background in VHDL, this is perhaps familiar, > > but I'll mention it anyway, collected from here and there: > >=20 > > - would timers be more real on hardware? Certainly more realistic. > >=20 > > - would you miss the physical experience and inspirational > > power (if any) of the real thing? > >=20 > > - does the simulator support sensors and actuators of the > > kind you would like to operate? > >=20 > > Also, if you move to a Ravenscar model of Ada, then chances > > are that your RTS will be smaller. So, less memory will be > > needed. At some point, I'd want to try my programs on hardware. >=20 > Hi, >=20 > Thanks for your answer. I can easily imagine that following one or both > of those tutorials[1] would be an informative an rewarding experience > but is the process outlined in those tutorials representative of a > typical design cycle for real-time, safety-critical, bare-board software > development? For example, I suppose one could design logic for an FPGA > without the use of a simulator by synthesizing the logic, loading the > result into the hardware, then verifying the design by monitoring > various test-points during operation. From my perspective, that approach > seems a bit retarded. I am looking for the non-retarded methodology for > embedded software engineering :) >=20 > [1]: Web links to a couple tutorials were posted earlier in this thread. >=20 > The model-based engineering approach in hardware design (digital logic, > especially) enables almost omniscient visibility into a model's behavior > through simulation. In ASIC design, there is very high confidence in the > design long before the [very expensive] fabrication of prototypes. A > "first pass success" was common where an implementation would go from > prototype to production without any design changes ("a spin"). >=20 > How is it done in embedded software engineering? (Links and/or > references are very welcome)! >=20 > I also have many other questions, like: >=20 > * How does one develop and verify a Board Support Package (device > drivers, bootloader, etc.)? >=20 > * Do the various typical embedded platform profiles (e.g., Ravenscar) > require any Run-Time System implementation or extension? >=20 > * Is the BSP and RTS the kind of software that might/should be > implemented in Spark? >=20 > I am trying to get a realistic view of the most successful techniques > that are used by professional engineers to build high-integrity and > safety-critical real-time embedded software systems. Again, any links, > references, discussion, etc. will be very appreciated! Using a hardware emulator is not cost efficient.=20 If you are developing for an microcontroller (eg BSP, HAL, drivers etc), yo= u usually begin with an evaluation board that resembles the final design th= e best, and move to the custom hardware when it is ready (which will be der= ived from the evaluation board). This is a "board for each developer" appro= ach[1]. If you are developing high level code for expensive hardware, you usually e= ncapsulate the applicative part and compile it for your PC architecture[2].= The environment will be simulated using models of real hardware pieces.=20 For example you are developing a mission computer for an aircraft, using th= is approach you will need to write a simulation of the Inertial Navigation = System, but you will not need to write a simulation of the ethernet chip th= at allows communication with said systems. You simulate communication using= sockets or shared memory, simulate flash with a file operations etc. [1] For example, Texas Instruments stopped supporting simulators in their f= lagship IDE (http://processors.wiki.ti.com/index.php/CCSv6_Changes#Simulati= on) [2] That is where using Ada helps a lot. It allows moving between hardwares= with relative ease.=20