0

私の環境...

  • PIC24
  • MPLab (V.8.80)
  • ICD3

どのルーチンが読み取りを行っており、どのルーチンが実際に書き込みを行っているか、またそれがいつ発生するかを確認するために監視したいバイトがあります。

ブレークポイントしか設定できません

  • バイトが書き込まれるとき、または
  • それが読まれるとき

どちらのアクセスにもブレークポイントを設定できる方法を知っている人はいますか? つまり、何が書かれていて、何が読まれているのか、どの順序で、どの命令によって、どのルーチンで行われるのかを監視したいのです。

私が持っているのは、PICkit 3 とこの ICD-3 だけです。これは、2 つのチップがそれぞれの UART に接続された (最終的にはペリフェラル ピン選択を介して) いくつかのワイヤを介して通信するデュアル プロセッサ システムです。

私は本物の氷を使ったことも、触ったことも、見たこともありません。それは私がこれを行うことを可能にしますか?つまり、任意のバス メモリ アクセス。

これが MpLab が ICD-3 で今できることです ここに画像の説明を入力

4

1 に答える 1

0

以下のように変数を関数で囲み、新しい .c ファイルに入れることはできますか。ヘッダー ファイルに定義を設定します。

少し重いかもしれませんが、交換すれば助かります。FILELINEは、ソース コードのどのファイルから、どの行で呼び出されたかを知らせるコンパイラ フラグです。Nop(); 割り込みが数命令遅れて発生する可能性があるためです。

ファイルと行に監視を追加して、それがどこから呼び出されたかを確認します。

#define setvar(x) zsetvar(x, __FILE__, __LINE__)
#define getvar() zgetvar( __FILE__, __LINE__)


byte my_var;

void zsetvar(byte val, volatile char * file, volatile char * line)
{
 my_var = val;// set breakpoint
 Nop(); 
}
byte zreadvar(volatile char * file, volatile char * line)
{
 Nop(); //set breakpoint
 Nop();
 return my_var;
}
于 2014-01-03T12:41:29.050 に答える