IAR-RL87-F13 : ブートローダをフラッシュした後、アプリケーション プログラムのフラッシュが失敗する - ベクター テーブルでスタックする

みなさん こんにちは。

Vish です。

次の問題があります。これについてご意見を聞かせてください。

ーーーー

IAR RL78 - F13 - 48pin -R5F10BGG
私のプロジェクトにはブートローダーとアプリケーション両方があります。
ブートローダは 0x0000 から始まり、ベクタ テーブルは 0x0004 から配置されます。
ブートローダー プロジェクトから出力 srec ファイルを作成しました。
(ブートローダはサード パーティのです、アプリケーション プログラムとは異なるベクタ テーブル定義を持っています)

アプリケーション プロジェクトは 0x4000 から始まります。
アプリケーション ベクター テーブルを 0x4004 に配置しようとしています。
(リンカーファイルを変更しました - .icf file)
アプリケーション プロジェクトから出力 srec ファイルを作成しました。

最初に、ブートローダー srec をボードにフラッシュしています-フラッシュ成功。
次に、アプリケーション srec をフラッシュしようとしています。
コードをフラッシュして実行しようとすると、ベクターテーブルでスタックします。

その理由は何ですか?
ベクターテーブルを再配置する必要がありますか?

Parents
  • Vishさん、こんにちは。NoMaYです。

    最近、以下のスレッドに関わった時にも思ったのですけれども、ブートローダを販売している or 開発した/受注した、そちらの企業の人は手助けしてくれないのでしょうか?ルネサスさんのアプリケーションノートに従って作ったけど動作しない、ということであればユーザフォーラムでも手助け出来ると思いますが、全く仕様不明なブートローダに関してリプライするのは、さすがにちょっとユーザフォーラムでは無理な気がするのですよね。

    なので、もう単純に一般論になってしまいますが、以下のようなことを調べる必要があるだろうと思うのです。

    (1) 動作するサンプルプログラムを入手して同じように作る
    (2) EWRL78を命令ステップ実行モードにしてブートローダからアプリケーションへの移行部をデバッグして暴走箇所を調べる

    IAR RL78 F13 アプリケーション コードをブートローダー コードと統合
    community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/9573/iar-rl78-f13
     

Reply
  • Vishさん、こんにちは。NoMaYです。

    最近、以下のスレッドに関わった時にも思ったのですけれども、ブートローダを販売している or 開発した/受注した、そちらの企業の人は手助けしてくれないのでしょうか?ルネサスさんのアプリケーションノートに従って作ったけど動作しない、ということであればユーザフォーラムでも手助け出来ると思いますが、全く仕様不明なブートローダに関してリプライするのは、さすがにちょっとユーザフォーラムでは無理な気がするのですよね。

    なので、もう単純に一般論になってしまいますが、以下のようなことを調べる必要があるだろうと思うのです。

    (1) 動作するサンプルプログラムを入手して同じように作る
    (2) EWRL78を命令ステップ実行モードにしてブートローダからアプリケーションへの移行部をデバッグして暴走箇所を調べる

    IAR RL78 F13 アプリケーション コードをブートローダー コードと統合
    community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/9573/iar-rl78-f13
     

Children
  • NoMay さん、
    あけましておめでとうございます。

    ありがとうございます。了解しました。
    1)動作するサンプルプログラムを入手して同じように作る
    >>聞いてみます

    (2)EWRL78を命令レベルステップ実行モードにしてブートローダからアプリケーションへの移行部分をデバッグして暴走箇所を調べる
    >>デバッグ中に割り込みベクタテーブルにとまりました。

    も一度ためしてみます。

  • Vishさん、こんにちは。NoMaYです。

    > 聞いてみます

    そうして下さい。

    なんというか、常識的には、業務の発注元がブートローダのサンプルプログラムまたはドキュメントを提供していないということは、そもそも発注元が発注した作業の遅延を引き起こすことになってしまうわけなのですから、意図的に発注元がそうしているなんてことは無いと思うのですけれどもね。単に忙しくて忘れていただけ、かと思うのですけれどもね。

    なお、ブート部とアプリケーション部の間の割り込みメカニズムというのは何十種類もあるわけではありませんので、その点に関しては、私とVishさんの間でのやり取りを繰り返せば理由を推測出来ないことは無いのですが、そちらのブートローダのサンプルプログラムまたはドキュメントをVishさんが参照したらすぐに分かってしまうようなことでも、そのようにやり取りすることには時間が掛かってしまって効率が悪いと思うのです。