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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!216.196.110.149.MISMATCH!border2.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!newsfeeder.wxs.nl!newsfeed.multikabel.nl!tudelft.nl!130.161.131.116.MISMATCH!tudelft.nl!transit0.news.tiscali.nl!tiscali!transit1.news.tiscali.nl!dreader2.news.tiscali.nl!not-for-mail Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng Subject: Re: [OT] Re: Teaching new tricks to an old dog (C++ -->Ada) References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> <87is4598pm.fsf@insalien.org> <871xat8zsz.fsf@insalien.org> From: Ludovic Brenta User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.3 (gnu/linux) Date: Sun, 06 Mar 2005 14:11:48 +0100 Message-ID: <87r7is7wbv.fsf@insalien.org> Cancel-Lock: sha1:j5P4f98Nfce77uw1opzGD5GY1iY= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Organization: Tiscali bv NNTP-Posting-Date: 06 Mar 2005 14:11:24 CET NNTP-Posting-Host: 83.134.241.69 X-Trace: 1110114684 dreader2.news.tiscali.nl 44076 83.134.241.69:35195 X-Complaints-To: abuse@tiscali.nl Xref: g2news1.google.com comp.lang.ada:8749 comp.lang.c++:44327 comp.realtime:1018 comp.software-eng:4550 Date: 2005-03-06T14:11:24+01:00 List-Id: Ed Falis writes: > Ludovic Brenta writes: >> That's what an unhandled exception results in. In avionics, where >> we have no operating system and no run-time system, exceptions >> cannot propagate and thus always result in program termination. >> When testing the program, we prove that no exception is ever >> raised. > > > There are certainly other strategies available. For instance, in an > "integrated modular avionics" architecture, an unhandled Ada > exception in a single partition could be forwarded to a global > health monitoring facility that may restart that partition, a set of > partitions, or the whole system - or do something else for error > recovery. This implies that exception propagation is a quite > flexible capability, and can be embedded in a system with even > greater error handling flexibility in a comfortable way. The software I'm currently working on is the "boot", or "BIOS" of our hardware. It allows us to upload an operating system onto the target board. The OS is then responsible for the partitioning that you describe. So, inside the "boot" software, we have absolutely nothing we can use to propagate exceptions. Every exception results in some processor registers being set and a "jump" instruction to a fixed address. We can use the processor registers to easily find the point where the exception was raised, but we cannot handle it. In another project I worked on, there was only one partition, and every exception would result in the watchdog restarting the software. The mechanism you describe is indeed one possible solution for software that runs on top of an operating system. -- Ludovic Brenta.