

プログラムできないのですがsfじみた質問で申し訳ないです。

マイコンのROMとramに乱数を書き込んだ場合、実行され続けますか？それとも停止しますか？

もし、実行され続ける場合に、2つの乱数が書き込まれたマイコンを使ってそれをシリアルないしパラレルでつないだ場合秩序ある通信を始めますか？


CC BY-SA 3.0
2016-03-15T11:59:12.080
23162
2016-03-16T00:36:35.117
2016-03-15T12:03:10.423
3054
14794
question
c
マイコンに乱数を書き込んだ場合、実行され続けるか


そもそも議題の開始時点がランダムな値ということは、以下全て「確率論」に終始します。  
極めて低い確率も除外しないのであれば「なんだってあり」です。  
以下はきわめて高い確率でこうなる論であることに限定しておきます。

一番ありそうなシナリオ例  
ランダムな値ということは当該マイコンの命令として不正な値を含むということです。  
[命令はすべてのビット列に対して割り当てられているのか](https://ja.stackoverflow.com/questions/13097/)  
よってマイコンハードウエアは「未定義命令例外」を発行するでしょう。  
未定義命令例外ハンドラの中に未定義命令が入っていて無限ループするでしょう。  
これは内部的には停止せず実行を続ける状況に相当します。

次にありそうなシナリオ例  
命令値がたまたま `HALT` とか `SLEEP` とか呼ばれる停止命令に一致すれば、  
マイコンは省電力モードに入って「停止」します。  
省電力モードから通常動作に復帰させるための初期化が正しく行われていないであろうから、  
リセット以外に復帰手段が無くて停止し続けることでしょう。

現実的にありうる動作は上記２つのどちらか、だと思われます。

> 秩序ある通信を始めますか？

最近のマイコンは「たまたま」そういう状況にならないように保護機能が充実しています。  
充実しすぎていて、まともに動かすにも一苦労が必要なほどです。  
・リセット直後はシリアル通信機能周辺回路が省電力モードに入っていて動作しない  
・リセット直後はマイコンピンが周辺回路機能無効になっている  
・プログラマが意識して「保護機能」を解除する操作をして始めて、機能を有効化できる  
・「保護機能解除」の操作には特定命令を意識的に組み合わせる必要がある  
・保護機能は複数個設けられていることが多い  
（省電力解除と機能割り当ては別の保護機構で保護されている）

杞憂のレベルで心配しなくて良いと思います。

まあオイラ、尋常の方法では起こらないであろう事象には何度も遭遇してますけど NDA で。


CC BY-SA 3.0
2016-03-16T00:36:35.117
23179
2016-03-16T00:36:35.117
2017-04-13T12:52:38.920
-1
8589
23162
answer