[H8-ML(3005)] Re: [H8-ML(3000)] H8/3664FユーザモードでのROM消去/書込み
From: "Yoshikazu Abe" <abe@xxxxxxxxxxxx>
Date: 2003年04月19日(土)14時18分22秒
こんにちは
HEW2は使用したことがなく、トラ技も持ち合わせていない
ので的をはずしているかも知れませんが以下確認してください。
1.RAMに転送するプログラムは、RAM上のアドレスで
  リンクしたものになっていますか?
2.暴走と聞くとスタック領域を破壊してそうですが、大丈夫
  でしょうか?内蔵RAMの狭い領域でプログラムとデータ、
  スタックの共存が必要です。
  消去関数に飛ぶ前にスタックポインタを再設定するのが
  確実です。
3.割り込みはすべて禁止にしていますよね。
4.私も、はまったのですがフラッシュ関連のレジスタのアクセス
  前に「フラッシュ制御レジスタのアクセス許可」のビットを
  立ててやらないといけません。(BSET.B  #7,@FENR)
5.ESUビットセットのところで暴走とありますが、多分その直前
  でウオッチドッグをスタートさせていると思います。ウオッチ
  ドッグの設定に誤りがありリセットがかかっているように思われ
  ます。
Yoshikazu Abe
----- Original Message -----
From: "Satoshi Shimada" <sasimada@xxxxxxxxxx>
To: <h8@xxxxxxx>
Sent: Friday, April 18, 2003 8:16 PM
Subject: [H8-ML(3000)] H8/3664FユーザモードでのROM消去/書込み


> はじめまして。
> 島田と申します。
>
> 標記の件で質問です。
> H8を組み込む機械における
> 設定値を記憶させるために行おうとしています。
> 以下の様に行ってみましたが上手くいきません。
> ご教授の程よろしくお願いいたします。
>
> ・ コンパイラはHEW2(無償版)
> ・ 書込み/消去したいデータは128バイト以下
>   →H'0400〜H'07FFをデータ用とする。
> ・ まず、消去関数のみ作成(トランジスタ技術2002.3サンプルコード参考)
> ・ セクションの設定(開始アドレス)
>    PResetPRG、PIntPRG→H'0050
>    P、C、...→H'0800
> ・ 消去関数のみのセクションを追加し、
>   起動と同時にRAMに転送。
>   (H8S、H8/300 C/C++コンパイラ アプリケーションノート8.12参考)
> ・ 消去関数はハードウェアマニュアル参考
> ・ メイン関数の最初に消去関数に飛ぶように設定
>
> →消去関数でSMEビットを1、EBR1をEB1のみ1に設定する所までは
>  OKなのですが、ESUビットを1とするとプログラムが暴走?して
>  その後のプログラムが正常に機能しません。
>
> 以上です。アドバイスや、消去/書込み関数のサンプルコード等
> ありましたら宜しくお願いいたします。
>
>

スレッド概略
[3000(R)](起点)
 └[表示中]


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


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