Projektstatus: Im Einsatz

Small Device C Compiler - Standardkompatibilität und Usability

Wir entwickeln einen benutzer*innenfreundlichen Compiler für 8-Bit-Mikrocontroller.

Dr. Philipp Krause, Dr. Felix Salfelder, Benedikt Freisen
#Runde11 #Softwareinfrastruktur
sdcclogo1024

Welche gesellschaftliche Herausforderung adressiert euer Prototyp?

Informations- und Kommunikationstechnik trägt wesentlich zum globalen Ressourcen- und Energieverbrauch bei. Ein großer Faktor hierbei sind Mikrocontroller (µC), die in nahezu allen elektronischen Geräten integriert sind. Obwohl der einzelne µC in Herstellung und Betrieb wenig Ressourcen erfordert, ist der Gesamtaufwand auf Grund der Stückzahl an µC enorm. Hierbei ist zwischen größeren 32-Bit-µC, und sparsameren 8-Bit-µC, die eingesetzt werden, wenn es starke Einschränkungen bei Kosten, Größe und Energieverbrauch gibt, zu unterscheiden. Wenn statt eines einfachen 8-Bit-µC ein 32-Bit-µC eingesetzt werden muss, entstehen maßgebliche Sprungkosten im Ressourcen- und Energieverbrauch.

Aktuelle Software, insbesondere auch FOSS, verwendet oft Features aus Sprachstandards, die von den Compilern GCC und clang unterstützt werden, und vorwiegend Systeme ab 32 Bit unterstützen. Um diese Software auch auf 8-Bit-µC einsetzen zu können, ist ein benutzerfreundlicher Compiler für 8-Bit-µC nötig. Der Small Device C Compiler (SDCC) ist ein solcher Open-Source-Compiler, der in der Sprache C geschriebene Programme für 8-Bit-µC übersetzt.

Wie geht ihr das Problem an?

Dieses Projekt baut die Unterstützung für Standards / Normen in SDCC aus, um dessen Interoperabilität und Benutzbarkeit zu verbessern. Es vervollständigt die vorherige Unterstützung der ISO C-Standards C90, C99 und C11 und fügt C23 hinzu. Es wird die Ausgabe von Debug-Informationen im Standardformat DWARF implementiert, welches die Nutzung im weit verbreiteten FOSS-Analysewerkzeug GDB erleichtert. Außerdem wird der Zugang erleichtert, indem die Unterstützung von SDCC in FOSS-Entwicklungsumgebungen wie Code::Blocks und Eclipse verbessert wird, etwa hinsichtlich des interaktiven Debuggens mit Simulator oder auf dem µC.

An wen richtet sich euer Tool?

Die Zielgruppe dieses Projektes sind Programmierer*innen von µC und Nutzer*innen von Geräten, die ihr Recht auf Reparatur wahrnehmen (wollen) – sowohl solche, die bereits SDCC verwenden, als auch solche, die bisher nur andere Compiler verwenden.