(toppers-users 1877) Re: H8/3048Fでの割り込みハンドラ利用手

Masaki Muranaka monamour @ monaka.org
2005年 2月 4日 (金) 01:32:07 JST


こんばんは。

3048は会社に転がっているものの、使ってないので的確なアドバイスは
できそうにないのですが…。

On 2005/01/29, at 6:46, Yuki WAKUDA wrote:
> これ以上進みません.
> 経験のある方,アドバイスいただけますでしょうか.

とりあえず、より簡単にしてみましょう。2つの割込みハンドラを書いてしまったら
どちらが原因か解らなくなります。簡単なほう…もしどちらも簡単だと思うなら
自分が使い慣れているデバイスのほうのみでやってみましょう。

つぎに、割込みが来るか来ないかというような根幹部分のデバッグで
syslogみたいな複雑で重いものを使うのは止めましょう。
LEDを光らすとかブザーならすとか、そういう単純なアクセスが可能か
どうか検討してみましょう。

じれったいくらい当たり前のことしか書いていませんが、当たり前のことをすれば
当たり前に動きます。


> また,_irq1_handler_entryなどは実体が見当たりませんが,上述のように,sys_support.Sでは 
> _irq1_handler_entryを指定するという形式で合っ
> ているのでしょうか.

cpu_config.h の INT_ENTRY マクロ → kernel_cfg.c の CFG_INT_ENTRY マクロ →  
kernel_cfg.c の /* Object iinitializer [interrupt] */付近
と追って行くと、宣言と参照は見えてきますね。
割込みベクタがRAM上にあるようなアーキテクチャでは、起動時にカーネルがINHINIBの値から割込みベクタを設定します。
H8の場合はROMですので、例外的に開発者がsys_support.Sに手で書き込みます。手間ですが、仕方ないです。

…理解の助けになるでしょうか?

--
from もなか