SSブログ

ColdFire V1 - 謎のソフトウェア割り込み [ColdFire (ColdeFire) V1]このエントリーを含むはてなブックマーク#

謎のソフトウェア割り込み

MCF51QE128のリファレンスマニュアルの "Chapter 8 Interrupt Controller"の例外ベクタテーブルには、 "Level X Software Interrupt"というベクタがあります。 日本語にすると、「ソフトウェア割り込み」です。

8-bitマイコンには、ソフトウェア割り込み"SWI"という命令があり、 この命令を実行すると割り込み相当の処理を行ってくれます。 ところが、32-bitマイコンである、 ColdFire V1には、そんな命令はありません。 近い命令は、"TRAP"命令ですが、この命令には別の例外ベクタが用意されています。

いくらリファレンスマニュアルを探しても、"Software Interrupt"という言葉が出てこないので、 "freescale.com"から"Service Request"を出しました。

Service Request

"Service Request"は、 freescale.com の正式な総合質問受付窓口です。 幅広い質問に答えてくれるのですが、 英語で受け答えしなくてはならないのが、日本人には難点でしょう。 今回の質問も英語で問い合わせて、英語で返答がありました。

割り込み制御モジュールは、ソフトウェア割り込みと呼ばれる7種類の割り込みを発生することが出来、一つ一つが割り込みレベルに対応しています。

ソフトウェア割り込みは、"INTC Force Interrupt Register (INTC_FRC)"や "Set/Clear Force Interrupt Register (INTC_SFRC, INTC_CFRC)"に 書き込みを行うことで発生させることができます。

詳しくは、MCF51QE128リファレンスマニュアルの"Chapter 7"を 参照してください。

ソフトウェア割り込みは、ソフトウェアがINTC_FRCレジスタに書き込みを行う事によって、 割り込みを発生させるために使われます。

[VBR+0x178; VBR+0x3FC]の領域をコードやデータのために使用することは、 お勧めできません。 この領域は、 ソフトウェアがソフトウェア割り込みを発生させなければ、 このマイクロ・コントローラにとっては、未使用領域として記載されています。 それでもなお、この領域は、予約領域です。

加えて、USBが付いたり、CANデバイスが付いたり、LCDコントローラが付いたりした、新たなFlexisマイクロ・コントローラが登場しようとしています。 これらの新しいマイクロ・コントローラは、おそらく、この領域にさらなる割り込みソースを持つことになるでしょう。

(いつになく、丁寧な訳)

"Chapter 7"を見ろと書いてありますが、きっと、これは、"Capter 8"の間違いでしょう。

というわけで、ソフトウェア割り込みというのは、 "Force Interrupt Register"で発生させられる割り込みであることが判明しました。

と、謎が解けた後、リファレンスマニュアルを読んでも、 やっぱり、これがソフトウェア割り込みのことを言っているとは思えません。 あとは、実機で確認するしかなさそうですね。


nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。