(toppers-users 1892) Re: H8/3048Fでの割り込みハンドラ利用手順に関する質問です.

oohashi oohashi @ tms-ltd.co.jp
2005年 2月 7日 (月) 13:28:29 JST


涌田様

大箸です。
申し訳ありません。混乱させるようなことを書いてしまいました・・・。

H8の場合、BCLR命令は、
1.読み出し
2.ビット操作
3.書き込み
となっています。

CPUのマニュアル、「2.6.5:ビット操作命令使用上の注意」を見ますと、判るのですが
「1」になっていることが確実な場合、読み出す必要はありません。
という記述があります。
割り込みハンドラの中で、割り込みのステータスクリアに使用する場合、BCLRだけで
クリアできます。

私などは汎用的なマクロやサブルーチンを用意しておいて、割り込みの中でも外でも
使えるようにしていたりするので、1回読み取ってクリアしていますが。

割り込みハンドラの中でしか使わないのでしたら、割り込みがかかって「そこ」に来ている
ので、必ず「1」になっていますのでBCLRだけでOKになります。
逆に割り込みハンドラの外でクリアするのなら、読み取ってからクリアする必要があります・・・。

本当に余分なことを書いてしまいました。。

------------------------------------
(有)東京マイクロシステム

  システム開発部
   大箸 隆久

〒120-0036
 東京都足立区千住仲町18−11−4F
                 
TEL 03-3888-6281(代表)
FAX 03-3888-6388
E-mail oohashi @ tms-ltd.co.jp
------------------------------------

----- Original Message ----- 
From: "Yuki WAKUDA" <wakuda @ robo.mein.nagoya-u.ac.jp>
To: <users @ toppers.jp>
Sent: Saturday, February 05, 2005 4:09 PM
Subject: (toppers-users 1880) Re: H8/3048Fでの割り込みハンドラ利用手順に関する質問です.


> 大箸 様
>
> 湧田です.
> アドバイス有難う御座います.
>
>> ITUによるインターバルタイマーはIMFAフラグのクリアをしないと
>> RTEしたあとにすぐ割り込みがかかってきてしまいます。
>> そのため、使い始めるときも、TCNTをクリアしたときにIMFAも1回読み込んで
>> クリアし、割り込みルーチンの最後でIMFAを読み込んでクリアが必要かと思います。 
>> 
>
> そうですよね.
> マニュアルを読むとそのように書いてあるのですが,net上などのサンプルプログラム等では,IMFAクリアのみを行っている場合ばかり見かけま
> す.
> とりえあえず以下のように変更してみました.
> /*======== ITU2   */
> .globl _imia2_handler_disable_int
> _imia2_handler_disable_int:
> mov.b @0xFF7B, r01 /*ITU2用IMFAフラグのダミーリード*/
> mov.l #0xFF7B, er0 /*ITU2用IMFAフラグのクリア*/
> bclr #0, @er0
> rts    /*サブルーチンからのリターン*/
> /*--------*/
> ですが,
>
> jspカーネル純正のシステムタイマーであるITU0の割り込み出口処理でも,
> /*========
> *  タイマ -- Compare Match フラグをクリアーする。
> */
> .globl _timer_handler_disable_int
> _timer_handler_disable_int:
>
> mov.l #SYSTEM_TIMER_IFR, er0
> bclr #SYSTEM_TIMER_IF_BIT, @er0
> rts
> /*--------*/
> のようにしてあるので,IMFAクリアの前のIMFAのリードは不要な気がするのですが,H8/3048のハードウェアマニュアル“10.5.2 ステータスフラグ
> のクリアタイミング”にあるような,
> 「ステータスフラグはCPUが1の状態をリードした後0をライトするとクリアされます.」 
> 
> という記述はユーザーとしてどう読めばよいのでしょうね.
>
> コンペアマッチ動作の中でIMFAをリードしているということなのでしょうか.
>
> 湧田 雄基
>
>
>
>
>