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
No answers yet.
Faça login para deixar uma resposta
Blogs