カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810447
FAQカテゴリ(大) コンパイラ
最終更新日 2013-03-23

質問内容

EW430で、ハードウェア乗算器を使用中に割り込みが発生した時、割り込み側でさらにハードウェア乗算器を使用すると誤動作しませんか?

回答内容

MSP430のハードウェア乗算機能は「掛け算命令」に組み込まれているのではなく、周辺ハードウェアに近い構成です。当然、排他制御が必要ですが、EW430では下記のように無条件に割り込み禁止にしていますので、乗算実行中に割り込まれることはありません。

 

      5          int multiplyer (int a, int b) {return a * b;};

   \                     multiplyer:

   \   000000   0212         PUSH.W  SR // ステータスのセーブ

   \   000002   32C2         DINT    // 割り込み禁止

   \   000004   0343         NOP

   \   000006   824C3001     MOV.W   R12, &0x130

   \   00000A   824D3801     MOV.W   R13, &0x138

   \   00000E   1C423A01     MOV.W   &0x13a, R12 // 結果の取得

   \   000012   3241         POP.W   SR     //  ステータスの復帰

   \   000014   3041         RET

 

●参考資料

EW430 IAR C/C++ Compiler Reference Guide Hardware multiplier support

 

TI

MSP430x5xx and MSP430x6xx Family User's Guide

25.2.7 Using Interrupts

他 

参考資料URL