8

違うように見えるので(たとえば、WFIとWFEは別の命令です)、疑問に思っていましたが、正確に特定することはできません。

4

2 に答える 2

13

数年後、この質問が一般的であることがわかり、その間、私は経験によって答えを理解しました.

イベントは、メモリ バスに沿って MCU ARM コアに入るラインとして実装されます (実際にはコアもイベントを生成できます。ラインは一方向でポイント ツー ポイント専用であり、これはバスではありません)。 MCUにバスアービトラーがなくても、メモリバス管理または命令実行の外部のコアにリアルタイムで物事を伝えるこれらの行(バス周波数でクロックされていると思います)。

次に、これらのイベントはコアによって処理され、割り込みを発生させて (より正確には、割り込みとして解釈できる NVIC にラインを接続して)、イベントをプログラムの世界に入れる 1 つの方法は、ビットを反転することです。コアクロックを再起動するか、DMAペリフェラルに接続して転送を開始または停止することにより、コアレジスタの1つ。コアにはイベント管理専用のロジック部分があり、それらをマスクし、例外のソースまたは DMA アクションのソースとして使用します。

イベントのリストは MCU 実装者によって決定され、NVIC や DMA を使用するか、それらを PLD ロジックに接続するかを決定できます (一部のサイプレス MCU は DMA をトリガーしたり、PLD 部分から割り込みを行うことができます)。

イベントを処理する最も一般的な方法は、イベントを無視することです。2 番目に一般的な方法は、コードを実行するために例外を送信することです。

于 2016-01-13T17:32:06.087 に答える
3

両方の命令は、電力管理/節約を目的としています。WFI割り込みまたは例外が発生するまでコアを停止することになっている間WFE、命令によって送信できる「イベント」も待機しSEVます。

命令がどのレベルに実装されるかは実装定義であり、それらは単なる NOP である可能性があります。したがって、たとえば、WFE が戻ったときに割り込みまたは「イベント」が実際に発生したことを信頼することはできません。

于 2013-05-03T07:25:57.850 に答える