マイコンの起動時にRAMテストをすることがある。
で、昔から流用しているプログラムにアドレスのビットウォークというのがある。
0x2000004, 0x2000008, 0x2000010…. とアドレスのビットを変えながらリード・ライトのテストをすると。
これ何の意味があるの? と昔に聞いたことがあった。
そしたら昔は外付けのメモリを使っていて、アドレス線の故障を考える必要があり、
そのアドレス線の故障を検出するためにこういうことをやっていたらしい。
ただ、ワンチップマイコンではアドレス線は外に出ていない。
なので、そこが故障する可能性というのは極めて低いと考えられる。
よって今のマイコンだとこういう処理は意味ないですねという話をしていた。
ところが……という話が最近出てきて困っているわけである。
このBlogに書けることなんてほとんどないのだけど、
そういう故障を想定した分析が必要になってしまったのである。
でも、そこが故障する可能性って果たしてどれぐらいあるのだと。
というわけで非常に困惑しているわけである。
そういう故障が発生する確率は非常に小さいということで済めばよいが、
そういうわけにもいかない事情があり、これが困っているところである。
古典的なアドレス線のビットウォークが役に立つかというと、期待ほどは役に立たないという。
非常に難しい問題である。
アイデアとしては昔ながらのアイデアも参考にするべきところはあるが、
なかなかそれだけではいかないというところが問題ですね。