Compilation d'une application C++ pour fonctionner dans des conditions de forte radiation : protection contre les pannes
Bonjour à tous. J'écris un logiciel embarqué en C++ pour un dispositif qui fonctionnera à l'intérieur d'un réacteur nucléaire (système de surveillance de la température). Le niveau de radiation y est extrême.
J'ai déjà rencontré des problèmes : après quelques semaines de fonctionnement, le programme commence à se comporter étrangement : les calculs donnent des résultats incorrects, parfois des segmentation fault se produisent, et à quelques reprises le contrôleur a simplement planté. Je soupçonne que cela est dû à des erreurs de bits dans la RAM et la mémoire flash causées par les radiations.
Mon code actuel ressemble à ceci :
```cpp
int main() {
int sensor_value = read_sensor(); // fonction qui lit l'ADC
int threshold = 100;
if (sensor_value > threshold) {
activate_alarm();
}
return 0;
}
```
Je compile avec GCC pour ARM Cortex-M4 avec les flags `-O2 -std=c++17`. Question : comment modifier mon approche de compilation et le code lui-même pour minimiser l'impact des erreurs de radiation ? Existe-t-il des flags GCC spéciaux ou des pratiques de programmation ? C'est spécifiquement pour C++ et GCC, de préférence sans
No answers yet.
Connectez-vous pour laisser une réponse