c - 使用数据镜像保护数据损坏

标签 c embedded type-safety

我想实现数据镜像以避免 RAM 内存中的数据损坏。

我发现了一篇关于此主题的有用文章:https://betterembsw.blogspot.com/2014/05/mitigating-data-corruption.html

现在我开始实现与上面链接中所述相同的策略:

对于全局数据,我很清楚如何创建 2 个结构,第一个包含所有全局数据,另一个包含相同的数据但相反。这些结构应在两个不同的部分中声明。

但是对于本地数据和静态本地数据,我不清楚如何继续。如果我在一个函数内创建两个结构,与全局数据相同,那么我如何在堆栈内选择它们的部分?

您知道如何实现本地数据和静态本地数据的数据镜像吗?

最佳答案

你为什么想要它?

如果需要,您将需要硬件支持,或实现该策略的编译器,或两者兼而有之,因为每次写入都需要镜像操作,每次读取都需要验证操作。

您引用的文章中描述的镜像无法检测“位翻转”,或者更准确地说,它无法找到哪个副本发生了位翻转,除非您也使用原件和镜像上的错误检测机制。例如,由于热或宇宙射线而发生的轻微翻转可能会击中您的任何副本。这再次涉及到硬件。

关于c - 使用数据镜像保护数据损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911131/

相关文章:

c++11 - 如何在 C++ 中实现逻辑门

c - 在嵌入式 c 中使用单个名称访问不同的端口引脚

java - 类型安全警告如何避免泛型赋值

javascript - 即使从 ts 编译为 js 后如何保持类型安全

javascript - 强制函数仅接受特定结构的对象(在 typescript/js 中)

c - 将 HCI 命令写入 USB BT Dongle

c - 原始套接字中的 TCP 数据包 - Centos 6.6

c - 我真的应该使用 make 吗?

c - 为什么静态变量在每次调用函数时都会初始化,但在 C 中每次都必须声明它

c - C 中的默认枚举值是否对所有编译器都相同?