組み込みソフト用のデバッカでH/WブレークポイントとS/Wブレークポイントという
区別がありますがこれらはどう違うのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

要は、ICEの事ですね。



基本的には、デバッガの機種毎に違いが有りますので、その辺をご了承下さい。

H/Wブレークポイントとは、ブレークアドレスを回路で検出してブレーク処理を行う方法。
S/Wブレークポイントとは、ブレークアドレスにインターラプトHALT等のコードを埋め込んで、ブレーク処理を行う方法。

特徴として、H/Wブレークの方が、外部ROM領域でもブレークを張れる事や、複雑な条件のブレークポイント設定を出来る事が多い。
逆に、S/Wブレークは、エミュレートROMエリアなら多数のブレークポイントを張る事が出来る。

こんな感じで、解かって頂けます?

この回答への補足

回答ありがとうございます、かなりわかってきました。もうすこし詳しく教えて頂きたいのですが。

>S/Wブレークポイントとは、ブレークアドレスにインターラプトHALT等の>コードを埋め込んで、ブレーク処理を行う方法。

これは実行コードの途中にHALTコードをICEが埋め込むということでしょうか?そうするとそれ以降のアドレスにある実行コードのアドレスがずれてしまって
実行できなくなってしまう気がするのですが?

補足日時:2001/11/22 18:29
    • good
    • 0

>これは実行コードの途中に・・・


簡単に言うと、エミュレートているROM空間のブレークポイントのアドレスの内容を、一時的にすげ替えるイメージで良いと思います。

勿論、元のアドレスとコードは別の領域に保持させて居て、ブレーク処理の中で復帰させます。
この為、S/Wブレークでも個数の制限が出る事に成ります。

又、基本的にこの方法となる為、キャッシュ等のパイプラインを持つCPUでは、誤動作する事も多々有ります。
(コツとしては、ブランチ先にブレークポイントを張ると、割と正確に動作します。)

後、余談ですが、ROMICEなんかはS/Wブレークのみですので、この方法でブレークさせてます。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング