2012-01-03 11 views
2

STM32上のイベントハンドラ内で関数ポインタを介して関数を呼び出すことが安全かどうかは疑問です。イベントハンドラはI2C用で、最も高い優先度を持ちます。呼び出される関数は高速であると仮定することができます(ちょうど何バイトかの並べ替え)。イベントハンドラからのSTM32関数ポインタ

ヒントやコメントありがとうございます。

アルネ

+2

はい、問題はありません。あなたは正確に何を心配していますか? – avakar

+0

私は唯一の疑問です。 – Arne

答えて

2

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

1

はい。

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

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

+0

注意してくれてありがとうございます。しかし、I2Cイベントは起動コードの後に​​長く起動します。 – Arne

関連する問題