[H8-ML(4321)] Re:Message for h8
From: "masanobu suzuki" <signas@xxxxxxxxxxxxxxx>
Date: 2004年01月19日(月)17時42分57秒
> ところでCCRの設定についてなのですが、次のスタートアップ
> ルーチンの、init:の2行目のldc	#0,ccr	;CLEAR INTERRUPT
> MASK,NOT USE UI BIT
>  は、「CCRに割り込み許可を与えている」という意味でいい
> のでしょうか?そう僕は解釈しているのですが...。そのた
> め上のメインプログラムには記述しませんでしたが、やはり記
> 述すべきでしょうか?

CPU側の割り込みを許可するタイミングは、割り込み要因となる
ペリフェラル側のレジスタ設定を全て完了していること、割り込み
処理に必要な変数や配列などが確保され、必要ならその初期化
が終わっていることが、最低限必要になります。

従って、石山さんの場合のように、スタートアップルーチン側で
CPUの割り込みを許可する場合、上記の処理(初期化)をCCRの
割り込みマスクbitの解除前に完了しておく必要があります。

今回のように割り込み要因が一つしかない場合は、この記述でも
動くと思いますが、割り込み要因が複数あった場合は、複数のレ
ジスタ設定を同時には完了できませんから、場合によっては初期化
の途中で予期しない割り込みが次々に入る可能性があります。
また、I/Oやレジスタの設定、変数の初期化をスタートアップルーチン
側に記述すると、プログラムの見通しが悪くなり判りにくいものに
なるため、スタートアップルーチンは必要最低限にすることが望まし
いです。

他にも理由はありますが、CPU側の割り込み許可は、C側に置いた
方が良いでしょう。

鈴木(正)
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.563 / Virus Database: 355 - Release Date: 2004/01/17

スレッド概略
[4293(R)](起点)
 └[4319(U)]
   └[表示中]
     ├[4325(1)]
     └[4327(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]