2

STM32 のイベント ハンドラ内で、関数ポインタを介して関数を呼び出すことが安全かどうか疑問に思っています。イベント ハンドラーは I2C 用で、優先度が最も高くなります。呼び出される関数は高速であると想定できます (一部のバイトの並べ替えのみ)。

ヒントやコメントをありがとう。

アルネ

4

2 に答える 2

2

関数ポインタが初期化されている場合は、正常に動作するはずです。割り込みハンドラーで通常の問題と考えることができる唯一の問題-「バイトの並べ替え」にtx/rxバッファーからのバイトの削除/追加が含まれる場合、バッファー管理は安全に割り込み可能でなければなりません。

于 2012-01-03T10:52:56.587 に答える
1

はい。

そうは言っても、1つの潜在的なリスクがあります。イベント ハンドラーがアクティブ化されたときに、関数ポインターが初期化されていることを確認する必要があります。

通常、グローバル変数は main が呼び出される前に初期化されますが、その前にイベント ハンドラーがアクティブになっていると、問題が発生する可能性があります。

于 2012-01-03T10:30:24.450 に答える