Avatar ·

Compilation d'une application pour fonctionner dans des conditions de forte radiation : protection contre les pannes

Bonjour à tous. Je développe un système embarqué en C++ pour un satellite spatial qui fonctionnera en orbite terrestre basse. Le niveau de radiation y est très élevé, et, comme je le comprends, cela peut provoquer des pannes mémoire (bit flips) et même dans les registres du processeur. Mon code C++ est compilé avec GCC pour ARM Cortex-M4.\n\nLe problème est que les méthodes standard de gestion des erreurs (try-catch, assert) ne protègent pas contre les pannes matérielles. Par exemple, si la radiation "retourne" un bit dans une variable stockant un indicateur d'état important, ou dans le code lui-même (dans la Flash), le programme peut commencer à se comporter de manière imprévisible. J'ai déjà rencontré des cas où les calculs donnent des résultats incorrects, et parfois le programme se bloque simplement ou entre dans un HardFault.\n\nVoici un exemple simplifié de mon code, où je calcule une somme de contrô