問題タブ [isr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
time - ISR実行時間を測定する方法は?
私はLinuxカーネル2.6.32を使用しています。2つのISR(シリアルとイーサネット)の1つが、何度か/わからないシナリオで、より多くの時間(数百マイクロ秒)を費やしているという問題に直面しています。ISRを実行するたびに時差を取得したいと思います。
最善の方法は何でしょうか(関連するオーバーヘッドの点で最も安価です)。ARMアーキテクチャにTSCレジスタ(read_tsc api)があり、他のアーキテクチャで提供されているように時間に直接アクセスできるとは思いません。
つまり、アイデアは1)ISRが呼び出された瞬間に時間を測定します。2)ISRが完了した瞬間に時間を測定します。3)1と2の差を取得し、それをいくつかの変数に格納します。4)手順1〜2を続行し、手順3で受け取った値が過去の値よりも大きい場合は、それを上書きします(最大遅延で値を保持/保持します)。問題が発生したとき(突然の状態で値が出力されます)または最後の10個の値の配列)。
カーネルドライバーで行う必要があるので、最も安価な方法を教えてください。
stack - スタックがマイクロプロセッサの割り込みサービスの FILO 構造であることが重要なのはなぜですか?
私はスタックとその実装を理解しようとしていますが、最も悩まされているのは、「スタックがマイクロプロセッサの割り込みサービスの FILO 構造であることがなぜ重要なのですか?」ということです。スタックの概念を理解する前に、まず何を理解する必要がありますか? 誰でもこれについて包括的な説明を教えてください。ありがとうございました
operating-system - ISRと関数呼び出しの違いは?
ISR (Interrupt Service Routine) と関数呼び出しの違いを理解したい。
関数呼び出しも ISR もハードウェア的には同じような気がします。間違っている場合は修正してください。ISR と関数呼び出しについて私が見つけたのは次のとおりです。
ISR:
プログラムの実行中にいつでも発生する可能性のある非同期イベント
PC、フラグ、およびレジスタをスタックに保存し、すべての割り込みを無効にして、ISR のアドレスをロードします。
ISR に渡すことができる引数を持つことはできません
- 値を返すことはできません
- 割り込みを有効にします
- 他のプロセスに時間がかかっているため、通常は小さい
- 一部の ISR には独自のスタックがあります
関数:
関数呼び出しがあるたびに発生します
PCとレジスタをスタックに退避
引数を持つことができます
値を返すことができます
実行のサイズと期間に制限なし
これ以外に違いはありますか?私にお知らせください。また、ISR からの関数呼び出しがどのように行われるかについても読みました。その上でハイライトしてください。
c - 割り込みが発生した行に戻りたくない
通常、割り込みが発生すると、プログラムは割り込みが発生した行に戻ります。
ISR ルーチンが完了した後、新しい行からプログラムを実行したい、つまり、割り込みが生成された場所から戻りたくない。
SPに保存されているIPを変更する必要がありますか?
ありがとう
linux - Linux での共有 IRQ
IRQ ラインが複数の登録された割り込みサービス ルーチン間で共有されている場合、割り込みラインが発生したときの ISR の実行順序は何によって決定されますか?