• No : 4447
  • 公開日時 : 2019/11/02 00:00
  • 印刷

【NXP:Auto】 CodeWarrior for MCUを使って、割り込み関数を記述する方法

CodeWarrior for MCUs (Eclipse IDE)を使って、MagniVマイコン(S12Zコア)向けのプログラムで割り込み関数を記述する方法を教えてください。
 
カテゴリー : 

回答

○割り込み関数として指定する方法
関数の前に「__declspec(interrupt)」の記述をつけることにより、コンパイラは割り込み関数として認識します。
例えば、
__declspec(interrupt) void PORT_P_ISR(void); // プロトタイプ宣言
  <省略>
__declspec(interrupt) void PORT_P_ISR(){ // 実際の関数処理
     <割り込み処理>
}
 
○割り込み関数と割り込み番号紐付ける方法
リンカファイル(.prm)にて、関数名と割り込み番号を紐付けます。
例えば、S12ZVLのPort Pの割り込み番号は60のため、
\Project_Settings\Linker_Files\mc9s12zvl32.prmの末尾に下記のように記述します。
VECTOR 60 PORT_P_ISR
割り込み番号は、リファレンスマニュアルのTable 1-12.を参照してください。

MC912ZVL Family Reference Manual, Rev. 2.49
 - Table 1-12. Interrupt Vector Locations