(toppers-users 1885) Re: H8/3048Fでの割り込みハン

Yuki WAKUDA wakuda @ robo.mein.nagoya-u.ac.jp
2005年 2月 5日 (土) 22:48:42 JST


もなか 様

湧田です.
早速の詳細な解説有難う御座います.

#尚,先ほどの返信内容のトップにてもなか様への宛名が抜けておりました.複数回MLを汚すのも問題かと思い,ここで一応お詫びさせていただき
ます.


 > H8版においては、config.txtの内容は、h8.txtの内容でオーバーライドされていると
 > 理解してください。
この一文と
 > H8の場合は、設定すべきベクタがROMなので、本来define_inhで設定すべきコードを
 > 手で書くしかないです。
 > 逆説的に、設定すべき情報はアプリケーションプログラマがなんとかしてくれると
 > 期待して、define_inhは空となっています。
この文章で

 > H8の場合はROMですので、例外的に開発者がsys_support.Sに手で書き込みます。
 > 手間ですが、仕方ないです。
と,
 > 2. 3  CPU 例外管理機能と CPU 例外ハンドラ
 >   割込みハンドラ番号のデータ型 (EXCNO) は unsigned int 型に定義されて
 > いる。H8 の割込みと CPU 例外ベクタは ROM 領域にあり、 動的に内容を変更
 > するためには特別の方法が必要であるため、動的なハンドラの登録機能はない。
 > 従って、 割込みハンドラの設定関数 define_inh、CPU 例外ハンドラの設定関
 > 数 define_exc は、何もしない関数である。
のつながりが理解できました!

一応整理して記述すると.
H8ターゲットでは,割り込みベクタはROM上にて記述しなくてはならない為に,カーネル起動時に動的に生成できないので,割り込みハンドラ番号
を登録するdefine_inh()は空になっており,
_irq1_handler_entry
等を自力で割り込みベクタ部に入力する必要があるということですね.
(もなみさんが言われた文章とほぼ同じですが...)

とりあえず,もっとシンプルなプログラムにて,割り込み動作をテストしてみます.

詳細な解説,どうも有難う御座いました.

湧田 雄基