Avatar ·

在强辐射环境下运行C++应用程序的构建:防故障保护

大家好。我正在用C++为将在核反应堆内部运行的设备(温度监测系统)编写嵌入式软件。那里的辐射水平非常疯狂。 我已经遇到过这样的情况:运行几周后,程序开始表现异常:计算结果不正确,有时出现segmentation fault,还有几次控制器直接死机。我怀疑这是由于辐射引起的RAM和闪存中的位翻转。 我当前的代码是这样的: ```cpp int main() { int sensor_value = read_sensor(); // 读取ADC的函数 int threshold = 100; if (sensor_value > threshold) { activate_alarm(); } return 0; } ``` 我使用GCC为ARM Cortex-M4编译,带有`-O2 -std=c++17`标志。问题是:如何更改编译方法和代码本身,以最小化辐射故障的影响?是否有特殊的GCC键或编程实践?需要专门针对C++和GCC,最好是无