問題タブ [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.
windows - Windows デバイス ドライバー割り込みサービス ルーチン (ISR) が割り込み可能であるのはなぜですか?
Windows デバイス ドライバーの作成は初めてです。
私の理解では、ハードウェア レベルで x86 プロセッサに割り込みが発生したとき (CPU の INTR ラインがデバイスによってトリガーされたとき)、プロセッサは EFLAGS レジスタの割り込みフラグ ビットをクリアして、割り込みサービス ルーチンを実行する前に割り込みを無効にします ( ISR)。したがって、通常、x86 ISR は、作業を終了して IRET 命令を発行する前に、再度中断することはできません。しかし、なぜ Windows ISR は中断可能なのでしょうか? Windows ISR はプロセッサの ISR と同じですか?
Windows デバイス ドライバー ISR は、MSDN:Writing an ISRに従って割り込み可能です。
stm32 - 優先度の高い ISR から FreeRtos タスクをウェイクアップする方法は?
使用:
- Stm32F10x、F2xx、F4xx
- FreeRtos 8.1.1
- gcc-arm-none-eabi-4_8-2014q2
高い割り込み優先度で実行する必要がある ISR があるため、この ISR 内から FreeRtos Api を呼び出すことは禁止されています (こちらとこちらを参照)。
場合によっては、これらの ISR が条件を検出し、スリープ中の FreeRtos タスクを少なくとも可能な限りのレイテンシでウェイクアップする必要があります。
通常 (ISR が FreeRtos Api の呼び出しを許可されている場合は、優先度が十分に低いため)、キューまたはセマフォを使用してこれを解決します。
しかし、優先度の高い ISR でそれを実現するにはどうすればよいでしょうか。
私の現在の暫定的なアプローチは次のようなものです(簡単に概説します):
しかし、このアプローチには欠点があります。
- レイテンシ (ISR でフラグを設定してからタスクがウェイクアップするまで) は、最大 1 FreeRtos tick です。
- フラグをポーリングする必要があります (CPU サイクルの浪費)。
これをより良い方法で、特に待ち時間を少なくして解決するための提案はありますか?
gcc - C/gcc を使用してペリフェラル IO レジスタから読み取るにはどうすればよいですか?
AVR32 に割り込みサービス ルーティングがあります。割り込みをキャンセルするには、割り込みステータス レジスタから読み取る必要があります。ただし、読み取りの結果は使用しません。私はむしろ asm 命令を使用したくありませんが、gcc がダミー変数への読み取りを最適化してしまうのではないかと懸念しています。正しい方法は何ですか?
現在私は持っています:
tmp も揮発性であるべきですか? tmp を使用しないと gcc が読み取りをスキップするのではないかと心配しています。
button - ロータリーエンコーダ付きArduino Mega 2560割り込み
Uno の使用を開始し、オンラインで見つけたロータリー ライブラリから割り込みを機能させることができましたが、プロジェクトを Mega に移動して別のピンに変更しようとすると、停止しました。オンライン ソースからメガの割り込みピンを把握するために数時間を費やしましたが、メガ割り込みピンを十分に説明するための適切なリソースが見つかりません。
私はそのように割り込みを使用しようとしています。
誰かが優先する方法を持っている場合、割り込みにどのピンを使用しているかは問題ではありません。私はそれが機能する必要があります。
real-time - freeRTOS リアルタイム カーネル PIC32 を使用する際に「mainSW1_INT_BIT」の定義がない
「FreeRTOS リアルタイム カーネルの使用に関する実践ガイド - PIC32 版」に従っています。ページのリスト 52 には、mainSW1_INT_BIT の定義がありません。本のソース zip がないため、混乱しています。コード スニペットは次のとおりです。
助けてください。