[AR] Re: Flight Controller Features

  • From: Henry Spencer <hspencer@xxxxxxxxxxxxx>
  • To: Arocket List <arocket@xxxxxxxxxxxxx>
  • Date: Tue, 12 Jan 2016 00:01:43 -0500 (EST)

On Mon, 11 Jan 2016, Robert Watzlavick wrote:

If the S/W architecture is sufficiently decoupled, then in theory it doesn't matter where any routine executes... But a good state machine will not take very many CPU cycles so if there's capacity on the primary processor, it would be better to avoid another one. Distributed processing can have its benefits but it also makes it potentially harder to debug, especially if halting one of them causes side effects in the other.

One reason to split things up is if you've got critical functions (e.g. landing control) and non-critical functions (e.g. data recording). You really want the critical-function code to be on a computer by itself, and all the non-critical code somewhere else, where misbehavior in it can't crash or hang the computer that's running the critical stuff. See the first Ariane 5 for an example of getting this wrong.

In theory, a well-designed operating system on a machine with memory protection etc. can provide similar levels of isolation between processes. In practice, closing off all the ways a berserk process can interfere with another is really hard; running them in different boxes provides much greater confidence at rather lower cost.

Henry

Other related posts: