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!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Getting started with bare-board development Date: Tue, 15 Nov 2016 09:38:21 +0100 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: vZYCW951TbFitc4GdEwQJg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:32320 Date: 2016-11-15T09:38:21+01:00 List-Id: On 15/11/2016 00:35, Adam Jensen wrote: > On 11/14/2016 04:04 AM, Dmitry A. Kazakov wrote: >> I think you are confusing things a bit. If you have computing hardware >> mocked you are doing simulation and the time is simulation time. If the >> peripheral hardware is real or partially real it is hardware-in-the-loop >> simulation (HIL). HIL is usually real-time because. What people are >> saying is that HIL is much more cost efficient developing platform than >> some embedded board. Furthermore Ada is ideal for HIL because Ada >> software is portable. So you can develop almost everything on the PC and >> test almost everything in the loop. Then if some hardware (except the >> board itself) is too expensive or difficult to use, it can be simulated >> (mocked) in turn. Which is especially important when you want to test >> some catastrophic or improbable scenarios. > > Yeah, I can imagine this stack (basic): > workstation's hardware - operating system - run-time system - program > > And this stack: > embedded hardware - embedded run-time system - RT-program > > And this stack: > RT-program > embedded run-time system > emulator (Qemu) > operating system > workstation > > But this setup is confusing: > RT-program > embedded target run-time system > simulated hardware > native run-time system > operating system > workstation Typical developing process stages, at least in my area, is like this 1. Workstation Simulation time Application [HAL] Mock actuators/sensors 2. Workstation Hardware-in-the-loop, real-time Application [HAL] Real/Mock actuators/sensors 3. Embedded Target platform Application [HAL] Real/Mock actuators/sensors Most of developing is done in #1 or #2. Most of testing in #2. #3 is limited to final integration tests. QEMU et al is not used, because it makes no sense to emulate computational hardware when you have Ada, unless you are an OS developer. So long the application is really an application you don't need that sort of emulators. Whatever OS/platform-dependent parts requiring test under an emulator, they are quite minuscule or non-existent if an OS is used. Which is also the reason why bare-board targets should be avoided where possible. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de