mspgcc で割り込みハンドラを宣言するための推奨される方法は何ですか?
質問する
7985 次
2 に答える
7
この情報は MSPGCC v4.6.3 に適用されることに注意してください。これは、現在 code composer studio で配布されている MSPGCC の Ti/Redhat/SOMNIUM ポートより前の日付です。
この回答については、Mspgcc-users メーリング リストの Peter Bigot に感謝します。
次の 2 つの可能性があります。
A. _ コード コンポーザ スタジオ スタイルの構文を使用します (CCS に移植できるという追加の利点があります)。
#pragma vector=TIMER0_A0_VECTOR
__interrupt void
ta0cc0_isr (void)
(これは、Mspgcc のバージョン 20120406 前後で導入されたことに注意してください)。
B. _ ネイティブの gcc 構文を使用します。
static void
__attribute__((__interrupt__(TIMER0_A0_VECTOR)))
isr_cc0_TA0 (void)
C. _ ベクタ テーブルに含まれるように、関数に正しい名前を付けます (ASM 関数に役立ちます)。
割り込み属性により、関数に名前が付けられます__isr_X
。ここで、X はベクタ テーブルの開始点からの割り込みのワード オフセットです (割り込み属性のパラメータの値を 2 で割った値に等しい)。
これらの__isr_X
シンボルは、crt0ivtbl.o のベクター テーブルを初期化するために使用されます。
于 2013-03-19T13:27:40.803 に答える