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!.POSTED!not-for-mail From: Adam Jensen Newsgroups: comp.lang.ada Subject: Re: Getting started with bare-board development Date: Sat, 12 Nov 2016 11:14:43 -0500 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Date: Sat, 12 Nov 2016 16:14:17 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="292e0f8d242f9ec27a53c65881cf429e"; logging-data="10084"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19vpQJ/bKStjqUre8Tn2qEx" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 In-Reply-To: Cancel-Lock: sha1:AAUhOUUJ5rSMzANiz1ECSuKzSbw= Xref: news.eternal-september.org comp.lang.ada:32290 Date: 2016-11-12T11:14:43-05:00 List-Id: 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? > > Given your background in VHDL, this is perhaps familiar, > but I'll mention it anyway, collected from here and there: > > - would timers be more real on hardware? Certainly more realistic. > > - would you miss the physical experience and inspirational > power (if any) of the real thing? > > - does the simulator support sensors and actuators of the > kind you would like to operate? > > 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. Hi, 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 :) [1]: Web links to a couple tutorials were posted earlier in this thread. 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"). How is it done in embedded software engineering? (Links and/or references are very welcome)! I also have many other questions, like: * How does one develop and verify a Board Support Package (device drivers, bootloader, etc.)? * Do the various typical embedded platform profiles (e.g., Ravenscar) require any Run-Time System implementation or extension? * Is the BSP and RTS the kind of software that might/should be implemented in Spark? 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!