H8 300HTiny ROMのサム

こんにちは

現在H8 300Tinyの評価キット(デバイスは36079)を使用して、

ROMのサムを計算するプログラムを作成しています。

ROMの0x00000000番地から0x0001EFFF番地の値を加算しているのですが、

毎回サムの計算値が異なってしまいます。

チェックサムの関数は下記のようにしています。

#define ROM_STR_ADDR ((unsigned int)0x00000000)

#define ROM_END_ADDR((unsigned int)0x0001EFFF)

static void check_sum(void)
{
 unsigned char  *sum_addr;
 unsigned int sum_cnt;
 unsigned int sum_data = 0;

 sum_addr = ((unsigned char*)ROM_STR_ADDR);
 for(sum_cnt = ROM_STR_ADDR ; sum_cnt < ROM_END_ADDR ; sum_cnt++ )
 {
  sum_data += *sum_addr;
  sum_addr++;
 } 
}

HEWにて上記関数を実行して、その後Reset実行すると値が変わっていることがあります。

上記の関数が悪いか、他の関数が影響しているか調べている最中なのですが、

何かご存知のある方いましたら教えていただけますか?

  • チェックSUM動きました。

    原因はいまいちわかりませんが、

    ビルド時にROM内のデータが変わっていたようなので、

    やはりソフトウェアブレーク処理かもしれません。

    皆様有難うございました。