5

GPIO ピンのハイ/ローをトグルし、( を使用して) ハイとローの間に遅延を設けてからudelay、一定期間 GPIO 状態をサンプリングするルーチンがあります。コードのこの部分が、スケジューラーや考えられる割り込みによってプリエンプトされることなく実行されるようにする必要があります。デュアル コア ARM システムでコードを実行しているので、SMP である必要があります。Spin_Lock_IrqSave()そのような目的には十分安全ですか?私のコードはまだ何らかの形で中断されているように感じましたが、まだ証拠はありません。

どうもありがとう。

4

1 に答える 1

4

プリエンプションを無効にする場合は、 と を使用preempt_disable()preempt_enable()ます。割り込みを無効にする場合は、 と を使用local_irq_disable()します。local_irq_enable()

spin_lock_irqsave 通常、これらの両方を実行しますが、一部の「リアルタイム」拡張機能により、スピンロックをスケジュールできる場合があるため、常に意味を伝えることをお勧めします。

于 2012-09-26T03:31:19.067 に答える