Avatar ·

Compilação de aplicação C++ para operar em condições de radiação intensa: proteção contra falhas

Olá a todos. Estou escrevendo software embarcado em C++ para um dispositivo que operará dentro de um reator nuclear (sistema de monitoramento de temperatura). O nível de radiação lá é insano. Já enfrentei problemas onde, após algumas semanas de operação, o programa começa a se comportar de forma estranha: cálculos produzem resultados incorretos, às vezes ocorrem segmentation faults, e algumas vezes o controlador simplesmente trava. Suspeito que isso seja devido a bit flips na RAM e memória flash causados pela radiação. Meu código atual se parece com isso: ```cpp int main() { int sensor_value = read_sensor(); // função que lê o ADC int threshold = 100; if (sensor_value > threshold) { activate_alarm(); } return 0; } ``` Estou compilando com GCC para ARM Cortex-M4 com as flags `-O2 -std=c++17`. Pergunta: como devo mudar a abordagem de compilação e o código para minimizar o impacto de falhas por radiação? Existem flags especiais do GCC ou práticas de programação? Preciso especificamente para C++ e GCC, de preferência sem