Basic Air Data uses embedded systems. One fundamental part of such a system is the software. The type of microcontrollers used in our projects may vary, nevertheless across different platforms it is possible to use C/C++ language. Basic Air Data is a project open to anyone, from here the need to coordinate our efforts. Of course, it’s necessary a right balance between rules and participant free will; I’m not willing to participate in a project that leaves me zero liberty :-). It’s also necessary to privilege code maintainability and readability.

Typically, critical aspects in firmware coding are the limited available resources, compared to desktop/phone oriented software, and the absolute need for reliable and predictable behavior. Software freeze is the end of the world, introducing jitter(or variable jitter) hinders the performance of the device and the cascade-connected units. Programming in a straightforward manner, for example, avoiding recursions or savage pointer usage is a must to reduce runtime problems and ease test phase.

To be strict requires the availability of dedicated good practice programming guide for each project. However, to generate and maintain such documentation requires a considerable amount of resources. An alternative is to use third-party documentation. This approach offers clear advantages but comes with some cons. A cons is that, if we use external documentation, it may be not clear which parts of the documents are valid. So the team members should handle this aspect.

After a while, we decided that it is possible to use The Power of 10 Rules approach. That guidelines are applied in mission-critical system code by NASA/JPL. You find here online the “JPL Institutional Coding Standard for the C Programming Language.”

The guidelines are useful if you remember to coordinate with others coders. 🙂

Happy Coding!