SH4A 7780 フラッシュROMへの消去/書込み

お世話になります。以下の内容について、ご教示のほど、お願い致します。

SH4A 7780 CPU に FlashRom が接続されているボードで、EtherNetのポートがあり、

データ送受信が出来ております。

実現したいことは、EtherNetで別のプログラムをデータ受信し、

FlashRomへの消去/書込みのプログラムを作成したいのです。

動作としては、

1.ボードの起動時はFlashRomからプログラムを読込み、CPU動作を開始する。

2.EtherNetポートが動作してデータ通信を開始する。

3.ボードとEtherNetで接続されたPCなどから、変更したいプログラムをデータ送信する。

4.ボードはデータ受信後DDRメモリなどFlashRomでは無い所でCPUのプログラムを動作する。

5.FlashRomを消去してデータ受信した新たなプログラムをFlashRomへ書込む。

6.FlashRomへ書込みが終了したら、WDTなどでボードを再起動させる。

7.ボードの再起動後は、FlashRomに書込まれた新たなプログラムでCPU動作を開始する

この様な事を実現したいのですが、上記4項のFlashRomではない場所でCPUのプログラムを

動作させるのが上手く行かない感じなのです。

XrossFinderでのデバックで、DDRメモリでプログラムを動作させると上手く動作する様なのです。

リリースプログラムで、flashRomからプログラムを動作させると、FalshRomの消去の動作は行われ

ますが、その後CPUがリセットされる様な感じでフリーズしてしまします。その後、ボードを再起動

させるとFalshRomの中身が消去されていてCPUが動作開始しません。

最初FlashRomから起動してCPUの動作が開始後に、DDRメモリなど別の場所でCPUのプログラムを

動作させる事が上手く出来れば、実現できるような気がしておりますが、アドバイスを頂けたら有難いです。

よろしくお願い致します。 

 

 

 

 

Parents
  • わわいです
    >FlashRomにアクセスしていない見極め方のポイントをご教示頂けたら有難いです。
    リンカのオプションで、全シンボルリストを出し、各シンボルがどこに存在するのかをリストアップして、全ソースを精査するしかありません。
    また、幸運にもSHツールチェインでは最適化のオプションを操作することにより、ライブラリ関数をなしの設定にすることが実行できたので、標準関数、及びインラインを除くライブラリ関数の使用禁止を厳命することによりこれを実現させました。

    まあ、これだけの労力と縛りをかけるより、ブートローダとプログラムを別プロジェクトに分離するというだけでこの問題はすべて解決できるのですが。
Reply
  • わわいです
    >FlashRomにアクセスしていない見極め方のポイントをご教示頂けたら有難いです。
    リンカのオプションで、全シンボルリストを出し、各シンボルがどこに存在するのかをリストアップして、全ソースを精査するしかありません。
    また、幸運にもSHツールチェインでは最適化のオプションを操作することにより、ライブラリ関数をなしの設定にすることが実行できたので、標準関数、及びインラインを除くライブラリ関数の使用禁止を厳命することによりこれを実現させました。

    まあ、これだけの労力と縛りをかけるより、ブートローダとプログラムを別プロジェクトに分離するというだけでこの問題はすべて解決できるのですが。
Children
No Data