In kaart brengen groot bestaand microcontroller project

Ik ben geen getraind programmeur, maar programmeer redelijk wat voor de hobby in het Arduino ecosysteem.

Nu wil ik wat experimenteren / toevoegen / wijzigen aan een groot, zich wild ontwikkelend bestaand project: Onstep: https://github.com/hjd1964/OnStep

Dit is feitelijk veel te groot voor de Arduino IDE, maar het kan er in gecompileerd worden en dat is nu wel mijn basis. Zoals ik het inschat is het niet enorm complex, maar wel veel (ook ivm het ondersteunen van vele hardware) en deels real time, dicht op die hardware. Met het optuigen van andere toolchains heb ik moeizame ervaringen, vooral in verband met de (onder-) houdbaarheid als het eenmaal werkt.

Voordat ik ook maar iets kan doen moet ik echter behoorlijk begrijpen hoe het is opgebouwd. Daar ben ik wel eens enthousiast aan begonnen, maar het ontmoedigd al snel nogal.

Mijn vraag is nu, wat is een goede strategie en/of wat zijn goede hulpmiddelen om grip op zo een project te krijgen ?
Het zou m.i. al enorm schelen als ik direct kan zien wat de preprocessor zal doen.

De preprocessor output kan je (buiten een IDE in ieder geval) opvragen door de compiler met -E aan te roepen.

Maar dat is echt iets wat je vrijwel nooit zou moeten doen.

De code is veel leesbaarder voordat de preprocessor er mee bezig geweest is.

Denk aan:

digitalWrite (DIR_X, 1);

versus

digitalWrite (12, 1);

En dan nog.... die digitalWrite zou ook wel eens een ingewikkelde uitdrukking kunnen worden die dan compiletime bepaalt of die "12" een constante is (hier: "ja"), en dan een (inline) functie aanroept die geoptimaliseerd kan worden tot de juiste zet-die-pin, terwijl als het "nee" was geweest dan wordt er een niet-inline functie aangeroepen die dan algemeen alle verschillende pins kan aansturen.

Dat is allemaal complexiteit waar je je niet mee bezig hoeft te houden.

Bij een groot project, analyseer even de "grote lijnen" en focus daarna op het deel wat je wilt aanpassen. Onderzoek alleen de details die je daarvoor nodig hebt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/