Hallo,

ich habe ein recht umfangreiches Projekt, welche schon diverse HW-Iterationen durchgemacht hat (angefangen bei AVR, dann XMega, jetzt STM32-wird auch bleiben!).
Um bei einer neuen HW-Version nicht immer allzu viel umschreiben zu müssen (und weil der Code über die Jahre auch ziemlich fett und hässlich geworden ist), möchte ich alles neu strukturieren. Programmiert wird in Plain-C, das soll auch so bleiben.
Momentan siehts so aus:
Verschiedene Bibliotheken lesen zb Sensoren aus, deswegen brauchen sie Funktionen, um auf die Hardware zuzugreifen (meistens SPI). Wenn jetzt eine neue HW kommt, kann es sein, dass Sensor X vorher an SPI1 angeschlossen war, jetzt aber an SPI2 hängt. Dadurch ändern sich aber diverse Dinge, zb. der Bus (wichtig für Clock), die Pins....

Meine Frage ist, wie löse ich das möglichst "professionell" und zukunftssicher?
Die erste Idee war, eine Header Datei zu erstellen "HWBoard.h", in welcher ich alle Peripherien etc. definiere und dann in Zukunft nur noch diese ändern muss.
Dann bekommt jedes Modul, welches auf HW zugreifen muss, nur noch eine Glue-Funktion, welche dann den Zugriff auf die richtige Schnittstelle umleitet.

Wäre das der goto Weg oder gibt es bessere Möglichkeiten?
Der Aufwand der Umsetzung ist für mich zweitrangig, solange es eine einmalige Sache ist und ich in Zukunft neue HW schnell einpflegen kann!

Vielen Dank & Gruß
Chris