Avatar ·

C++-Anwendung für den Betrieb unter starker Strahlung kompilieren: Schutz vor Ausfällen

Hallo zusammen. Ich schreibe eingebettete Software in C++ für ein Gerät, das in einem Kernreaktor arbeiten wird (Temperaturüberwachungssystem). Die Strahlung dort ist extrem. Ich bin bereits darauf gestoßen, dass das Programm nach ein paar Wochen Betrieb anfängt, sich seltsam zu verhalten: Berechnungen liefern falsche Ergebnisse, manchmal treten segmentation faults auf, und ein paar Mal ist der Controller einfach eingefroren. Ich vermute, dass dies auf Bitfehler im RAM und Flash-Speicher zurückzuführen ist, die durch Strahlung verursacht werden. Mein aktueller Code sieht so aus: ```cpp int main() { int sensor_value = read_sensor(); // Funktion, die den ADC liest int threshold = 100; if (sensor_value > threshold) { activate_alarm(); } return 0; } ``` Ich kompiliere mit GCC für ARM Cortex-M4 mit den Flags `-O2 -std=c++17`. Frage: Wie muss ich meinen Ansatz beim Kompilieren und den Code selbst ändern, um die Auswirkungen von Strahlungsfehlern zu minimieren? Gibt es spezielle GCC-Flags oder Programmierpraktiken? Es muss speziell für C++ und GCC sein, möglichst