Sto scrivendo codice C con più moduli come display LCD, memoria flash e modulo GSM, ecc. Il progetto consiste di migliaia di righe di codice, in file diversi.
Il comportamento del sistema può essere modificato con i parametri di runtime (es. luminosità LCD) usando un pulsante. E durante la compilazione ridefinendo #define
direttive e const
variabili.
Attualmente tutte queste variabili e costanti si trovano con il resto dei moduli nei rispettivi file. Sto trovando molto difficile mantenere le impostazioni senza perdere la modularità.
La mia domanda è in due parti:
- Come posso rendere più accessibili i parametri del tempo di compilazione? Spostare tutte le variabili in un file separato renderebbe la vita più semplice rendendo tutte le impostazioni disponibili in un unico posto. Anche alcune impostazioni vanno in gruppi, quindi ha più senso cambiare un
#define
in un file invece di pescare per molti#defines
in più file. Ma non sembra giusto distruggere la modularità in questo modo. - Ho bisogno di scrivere un codice che salverà tutti i parametri di runtime sulla memoria flash e li recupererà al riavvio. Idealmente questo dovrebbe essere fatto nelle funzioni getter e setter. Ma il problema è che tutte le impostazioni e le configurazioni sono memorizzate in un settore nella memoria flash. Un parametro non può essere semplicemente riscritto senza cancellare la memoria flash. Quindi il modulo LCD non può cambiare la sua luminosità senza essere a conoscenza di tutti gli altri parametri. Ha più senso mantenere tutte le impostazioni in una struttura, ma il costo è spostare le variabili lontano dai moduli.
Qual è il modo migliore per affrontare questo problema senza compromettere la leggibilità e la modularità del codice.