E1 / E2 Liteの外部バスへのダウンロード速度

お世話になります。

新規にRXシリーズを採用し、デバッグを開始したのですがプログラムのダウンロードに時間がかかり非常に困っています。

具体的には

CPU:RX231

外部バス接続のRAMへダウンロード

プログラムサイズ:4MB弱

FINEボーレート:最速

ベリファイ無し

E1:2分20秒

E2 Lite:3分10秒

ダウンロード前のレジスタ設定でバスのウェイトを最小にするも変化なし

 

他になにか改善の方法はありますでしょうか?

よろしくお願いします。

Parents
  • きー さん、こんにちは。NoMaYと申します。

    以前に他の方から頂いた情報(品種やIDE(CS+?e2 stuido?)や方式(JTAG?FINE?)は不明)では以下のダウンロード速度とのことでしたので、それと比較してもこれは遅いですね。使用されているIDEですが、CS+でしょうか?e2 studioでしょうか?ちなみに、新規にRXマイコンを採用、とのことですが、以前はどのようなマイコンでどれぐらいのダウンロード速度だったのか、もし差し支えなければ、教えて頂けないでしょうか?

    私自身は外部メモリへダウンロードした経験が乏しいのですが、昔の記憶では内蔵フラッシュメモリへのダウンロードでCPU動作クロックがダウンロード速度に影響した経験がありました。(リセット直後は数百KHzの内蔵低速発振回路、クロック設定を変更して数十MHzの外部発振子、といったシステムだったような、との記憶です。) ですので、今回の件も、咄嗟には、それが気になります。記憶が定かでは無いですけど、クロック設定完了位置にブレークポイントを設定してダウンロード前にGo/Breakさせてそれからダウンロードしたとか、ダウンロード前の内蔵周辺レジスタ設定ファイル(或いはスクリプト)でクロック設定を変更したとか、そんなことをしていたような気がします。

    私に出来ることとして、手持ちのTB-RX231でon-board E2 Lite+FINE 1.5Mbpsでの512KBの内蔵フラッシュメモリへのダウンロード速度を試しに計ってみる、といったことでしょうか。でも、その前に、参考になりそうなデータがE1とかE2 Liteとかのマニュアルに載っていないか探してみることでしょうかね、、、ちょっと探してみようと思います、、、

    きーさんの今回の状況

    外部バス接続のRAMへダウンロード
    プログラムサイズ:4MB弱
    FINEボーレート:最速
    ベリファイ無し
    E1:2分20秒 ← 4MB ÷ 140sec ≒ 29KB/sec
    E2 Lite:3分10秒


    E2Liteでのダウンロード速度はE1との相対比でどれくらいでしょうか?
    japan.renesasrulz.com/cafe_rene/f/forum21/4742/e2lite-e1/32153#32153

    3MB品、8割ぐらいの使用率です。ほぼ倍ですね。 ← 2.4MB程ですね
    E2 Lite Load time: 41 sec
    E2 Load time: 21sec
    E1 Load time: 21sec ← 2.4MB ÷ 21sec ≒ 114KB/sec

  • NoMaYさん
    こんにちは

    IDEはCS+を使っています。
    以前はARM + JTAG ICEで30秒程度だったように思います。

    クロックの速度も、ダウンロード前のフック処理でレジスタを実運用と同じ速度のシステム54MHz、外部バス27MHに設定し、端子出力で実際に希望のクロックになっていることを確認しています。

    E1とE2 Liteの速度差はFINEボーレートの比
    E1:2Mbps
    E2 Lite:1.5Mbps
    で計算上は合っているんですよね
  • きー さん、こんにちは。NoMaYです。

    > E1とE2 Liteの速度差はFINEボーレートの比
    > E1:2Mbps
    > E2 Lite:1.5Mbps
    > で計算上は合っているんですよね

    でも、その計算が有効なのは、びっちりデータが詰まった通信が行われている状況下、だと思うのです。たとえば、ひとまず単純化して10ビットで1バイトが転送されるとして、E1で200KB/secとかE2 Liteで150KB/secとか、そのあたりでの話ではないかと思うのです。

    ただ、FINEのプロトコルというかデータ表現というか、そういうものは公開されていませんので推測にはなりますが、JTAGのTDI/TMSの状態を2ビットで表現していたりすると、それだけで単純計算机上最大転送速度は半分になり、E1で100KB/secとかE2 Liteで75KB/secとか、落ちてしまう可能性も無くはないですが、、、いや、充分あり得るのかな、、、

    思ったのですが、試しに、FINEボーレートを1/2および1/4へ下げてみたらどうなりますでしょうか?もし、ダウンロード時間が2倍および4倍になるようであれば、もうそれがFINEの限界ということになるような気がするのです、、、

    いや、でも、それですと、内蔵フラッシュにダウンロードする時も、それぐらいのダウンロード速度になる筈なので、他の方からそれぐらいの速度ですよ、というリプライが来そうな気がするのですが、、、これから来るかな、、、あっ、でも、内蔵フラッシュにダウンロードする場合とそれ以外の領域にダウンロード(というか見方を変えるとRAMへの書き込みと同義)では、FINEのプロトコルというかデータ表現というか、をガラッと変えている可能性もありますので、結局、何とも言えないのかな、、、

    やはり、FINEボーレートを1/2および1/4へ下げてみたらどうなるか、それが気になります、、、

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

    > 以前はARM + JTAG ICEで30秒程度だったように思います。

    これも推測ではありますが、E1でもJTAG方式なら速い、という可能性もあるかなと思いました。逆に、ARMでもSWDだとそんなに速度は出ないかも知れません。JTAGのTCK/TDI/TDO/TMS/TRSTZの5本(TCKは数十MHz)がFINE/SWDの1本(ボーレートは数Mbps)になったことと引き換えに速度が低下してしまっていたとしても、納得出来るトレードオフと皆さん考えておられる可能性もあるかも、とも思いました。(ちょっと後ろ向きな考え方かも知れませんが、、、)

    [追記]

    あっ、RX231ではJTAG方式は出来なかったですね、、、

  • NoMaYさん

    いろいろとアドバイスありがとうございます。

    E1でFINEボーレートを750kbpsで行ってみたところ6分5秒かかり、計算上2.7倍でFINEの速度に依存していました。
    FINEボーレートの選択肢が2Mの下は750Kだったので1/2は確認できませんでした。

    内蔵フラッシュの書き込みとは処理が違うだろうとは思っていますが、外部バスにプログラムを置くということをあまり想定していないのですかね...
  • きー さん、こんにちは。NoMaYです。

    > FINEボーレート:最速
    > ベリファイ無し
    > E1:2分20秒
    ...
    > E1:2Mbps

    > E1でFINEボーレートを750kbpsで行ってみたところ6分5秒かかり、計算上2.7倍でFINEの速度に依存していました。

    計算途中を書くと 2分20秒:6分5秒 = 140:365 = 1:2.61 ≒ 1/2Mbps:1/750Kbps = 1:2.67 といったところで、きっちり反比例していますね。これは、ユーザ側では改善が出来そうに無いですね。ルネサスさんにCS+の改善を持ち掛けてみるしか無さそうです。

    > 外部バスにプログラムを置くということをあまり想定していないのですかね...

    やはり、RXマイコンとしては主流の使い方では無いですので、開発している人達は、指摘されるまで気が付かなかった、といった反応を示されるのではなかろうか、と思います。

    とはいえ、外部バスにプログラムを置く人はちゃんといて、かふぇルネでも、RX63Nだったと思いますが、外部バスにプログラムを置いて実行させている常連の人がいらっしゃいます。(その方はデバッガを使わず、ダウンロードとかGoとかメモリダンプとかをマイコン内蔵USBのUSBシリアル経由でそういったコマンドを実行させることが出来るモニタプログラムを自作されていて、それでデバッグされているそうです。)

  • NoMaYさん

    いろいろありがとうございます。
    FINEの限界ということですかね。

    引き続き他のユーザーさんからの情報を待ちつつ、まずはプログラムサイズを小さくできないか、分割してデバッグするなど検討したいと思います。
Reply
  • NoMaYさん

    いろいろありがとうございます。
    FINEの限界ということですかね。

    引き続き他のユーザーさんからの情報を待ちつつ、まずはプログラムサイズを小さくできないか、分割してデバッグするなど検討したいと思います。
Children
No Data