code and software projects

pretty much everything i do has been electronic or had electronics and code buried within it forever, but not much of it has made it to the intertubes. it should be no surprise that most of this is now code, and electronics to support that code. (since the world remains firmly analog there remains analog electronics, mostly as interface to code.) everything i do is embedded, no graphics, no commodity audio, no social media, etc.

roadster code

all of the electrics in my rambler roadster are implemented in code, on purpose-made but generalized hardware, in a four-processor distributed configuration. this code is thefull-blown version of my a definite method multitasking strategy and has a super-robust inter-process/inter-processor communication system.

here is a description of the the roadster code system, the roadster electronics.

at the moment it's the only description of the multitasking strategy, but i will break out a much smaller-scope project, without all the multi-processor and IPC complexity.

external documents

MISRA-C:2004 has many great guidelines for writing C. the anti-C++ bias was relaxed in later years (// comments etc) but most of the good-practices suggestions are ways to avoid the pitfalls of some of C's behavior (eg. automatic type conversion).

half of the MISRA stuff is about testing and development environments and production accountability; those don't apply (much) to me or individual coders, but they sure do apply to folks at places like Toyota, where truly horrific coding practices caused actual deadly death. bad practice writ large: 10,000 global variables in multi-task code withg life safety entangled. idiots.

because the U.S. court system is open and public the full transcripts of the highly technical evidence is now public record. and it is fascinating. i read it on a long air flight. the judge is no dummy, but he's not a nerd; talented consultants rendered the truly horrific coding practices of toyota's programmers visible.

reading this sent me down a long path that has culminated in me reading and modifying all of my Roadster code work to meet most of the appropriate MISRA-C:2004 coding standards. they're actually very good recommendations; in fact i found a number of errors in my own code simply reading it. (most were due to implied casts and size of variable issues).

most of my code now at least approximates the MISRA-C:2004 spec, as far as coding style goes.

here are copies of the Toyota disaster documentation: