4

私の意見では: ソフトリセット:リセットベクターから起動します。 ハード リセット: CPU の電気レベルを引き上げます。

4

4 に答える 4

4

ハード リセットとは、CPU チップ全体とそのすべての周辺機器がリセットされることを意味します。これには多くの原因が考えられます: 外部からプルされたリセット ピン、クロック障害、オンチップ低電圧検出、ウォッチドッグ、不正な命令トラップなど。

ソフトリセットはおそらく、リセットベクターに戻るための「ダーティ」ブランチを意味します。リセットベクターは、スタックを含むすべての CPU コアレジスタを復元します。これは非常に疑わしい慣行であり、それが何をもたらすかはわかりません。主な問題は、これを行ったときにすべての MCU 周辺ハードウェア レジスタがデフォルトにリセットされないことです。特に最近の平均的な MCU には 1000 以上のレジスタが搭載されているため、そのようなレジスタすべてのリセット状態について仮定しないことはほとんど不可能です。したがって、このソフト & ダーティ リセットを使用すると、次のような動作になる可能性が高くなります。

subtle intermittent bugs <= my program <= complete haywire

ソフト リセットは、ソフトウェアによって引き起こされるリセットを意味する可能性があります。その場合、ウォッチドッグ レジスタに間違った値を書き込んでリセットを強制するか、ウォッチドッグの更新に失敗している可能性があります。または、不正な命令の実行である可能性があります。これらにより、チップ全体が完全にリセットされる可能性が高くなります。

于 2012-05-08T08:52:29.427 に答える
2

これは、チップごとに非常に大きくなる可能性があると思います。ハード リセットは、デバイス (ピン、ボールなど) のリセット ラインであり、特定の方向に引っ張るとチップの一部またはすべてがリセットされることが合意されている可能性があります。ソフト リセットは、ゼロへの分岐またはリセット ベクトルへの分岐のような単純なものである場合もあれば、書き込みレジスタまたはハード リセットを引き起こすレジスタ内のビットである場合もあれば、ハード リセットに近いものである場合もあります。ハードリセットはチップ内のレイヤーにヒットし、ソフトリセットはおそらくチップ全体ではなく、内側のレイヤーにヒットします。たとえば、pcie バスから落ちたくないので、そのままにしておきます。通常、たとえば jtag (またはその一部) は、どちらのリセットによっても変更されるべきではありません。ソフトウェアがリセットラインを引っ張ると、それ自体が停止します。誰がそのリセットを解放するのでしょうか? ハードウェアの何か、

于 2012-05-08T03:39:45.233 に答える
1

システム設計者が意味したいことは何でも意味します。一般的な定義はありません。たとえば、RAM の内容は、ハード リセットではなくソフト リセットによって維持される場合があります。また、単に外部ハードウェア リセット信号とソフトウェア RESET 命令の違いによるものである場合もあります。

于 2012-05-08T16:30:40.563 に答える