Re: Something I don't understand
It contains the voltage regulator, generator field and generator main breaker control plus a lot of protection and monitoring functions.
As with practically all modern digital control systems, anything requiring a time delay, interval, scheduling future events, etc. uses a system clock to determine when the next task is to be run. At first glance, this would appear to be a simple implementation. Schedule event at Time = Now + Interval. But there's that nasty limitation of all microprocessors in that time is stored in a register or memory location with a finite upper bound. So when the timer reaches that, it rolls over to zero again (much like a mechanical odometer). So all timing functions must be written to handle this discontinutiy in their logic.
What shocks me about the 787 power system controls (sorry about that), is that the real time controls and event scheduling routines appear not to be based on some stable and tested software libraries. Where such goofs have been caught and fixed early in their development. These are the sorts of goofs that any competent embedded s/w designer should be aware of. But better yet, this level of code is something that an application developer should never have to write from scratch.
This reminds me of an anecdote from my days at Boeing*. I was reviewing the credientials of several candidates for a job which involved the maintenence of a large package of (mainly) Perl code that moved documents around between various systems. One guy submitted a Perl app he had written in his previous job that implemented an FTP session to do just this sort of thing. It was well written, neatly formatted and showed that he had a good understanding of Perl syntax and programming. But it was dozens of pages of an 'expect' like program that called a Unix command-line ftp client. So, during the interview, I asked him if he had ever heard of CPAN. "No", was his reply. "So, you've never seen the Net::FTP module?" "No" again. Net::FTP could do in a dozen lines what he had done in that many pages of code, leaving me to wonder just how 'good' a developer he was.
*Boeing most probably didn't write the GCU code. That's a trail that runs back through several layers of h/w and s/w vendors.