RL78マイコン基板(RL78/G13)|KurumiWriter V1.00(ソース公開版)とrl78flashの書き込み時間の比較
2つ前のエントリでKurumiWriter V1.00(ソース公開版)のバグを暫定修正したことで(私のパソコンで)安定して
動作するようになりましたので、秋月電子さん販売のRL78/G13 64pin R5F100LGAFB搭載変換モジュールを
使って、RL78マイコンの内蔵フラッシュメモリへの書き込み時間をrl78flashと比較してみました。書き込んだ
プログラム(binファイル or motファイル)は以前のエントリでR5F100LGAFBで動作するようにルネサスWeb
コンパイラのCOTTON基板のデフォルトのスケッチのリンカスクリプトを変更してビルドしたもの(45KB)です。
(追記 : rl78flashを1つ前のエントリで書き込みボーレート変更不具合を暫定修正したものに置き換えました。)
FT232RLのWindowsドライバのデフォルト設定
* KurumiWriter (V1.00、Run after COM openのチェック無し、cotton_sketch.bin)
115,200bps → 22sec
500,000bps → 20sec
1,000,000bps → 未サポート
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -a COM14 cotton_sketch.mot)
115,200bps → 16sec
500,000bps → 11sec
1,000,000bps → 11sec
以前のエントリでRL78/G10への書き込み時間が短くなることに気付いてから私が常用している設定
* KurumiWriter (V1.00、Run after COM openのチェック無し、cotton_sketch.bin)
115,200bps → 40sec
500,000bps → 36sec (+/-2sec程度のバラツキあり)
1,000,000bps → 未サポート
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -a COM14 cotton_sketch.mot)
115,200bps → 10sec
500,000bps → 4sec
1,000,000bps → 4sec
追記 : メモ
rl78flashの-aオプションは-ewvrオプション(消去して、書き込んで、ベリファイして、プログラムを実行)と
等価なのですが、ベリファイの動作は書き込んだデータと同じデータを再度送信して書き込まれていたデータ
(つまり読み出したデータ)と一致するか調べて正常に書き込まれているかチェックする方式になっています。
正常に書き込まれたかどうかをチェックする方法には、他に、書き込んだデータのCRC値と書き込まれていた
データ(つまり読み出したデータ)のCRC値を比較する方法もあり、KurumiWriterではCRC値を比較する方式に
なっています。前者は後者よりデータを再度送信する分だけ処理時間が長くなる傾向がありますが、いつもの
ようにちょっと好奇心から、rl78flashでベリファイを省いた場合の書き込み時間も計ってみました。(なお、
今のところ(G10専用のrl78g10flashにはあるものの)rl78flashにはCRC値を比較するオプションが無く、単に
ベリファイを省いただけなのでKurumiWriterとの公平な比較になりませんが、好奇心から計ってみました。)
FT232RLのWindowsドライバのデフォルト設定
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -ewr COM14 cotton_sketch.mot)
115,200bps → 10sec
500,000bps → 7sec
1,000,000bps → 7sec
以前のエントリでRL78/G10への書き込み時間が短くなることに気付いてから私が常用している設定
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -ewr COM14 cotton_sketch.mot)
115,200bps → 6sec
500,000bps → 3sec
1,000,000bps → 3sec
追記 : メモ
RL78マイコンの内蔵フラッシュメモリへの書き込みは11bit(=1 start bit + 8bit + no parity + 2 stop bit)の
UART通信で行われているのですが、通信ボーレートと内蔵フラッシュメモリサイズとデータ転送時間の関係を
以下の計算式で単純に計算して結果を表にしてみました。(通信パケットのヘッダとかチェックサムとかは無視
しています。もっと言ってしまえば、通信手順(プロトコル)に関わることも全て無視しています。)
データ転送時間 = 内蔵フラッシュメモリサイズ × 11bit / 通信ボーレート
通信ボーレートと内蔵フラッシュメモリサイズから単純に計算したデータ転送時間
動作するようになりましたので、秋月電子さん販売のRL78/G13 64pin R5F100LGAFB搭載変換モジュールを
使って、RL78マイコンの内蔵フラッシュメモリへの書き込み時間をrl78flashと比較してみました。書き込んだ
プログラム(binファイル or motファイル)は以前のエントリでR5F100LGAFBで動作するようにルネサスWeb
コンパイラのCOTTON基板のデフォルトのスケッチのリンカスクリプトを変更してビルドしたもの(45KB)です。
(追記 : rl78flashを1つ前のエントリで書き込みボーレート変更不具合を暫定修正したものに置き換えました。)
FT232RLのWindowsドライバのデフォルト設定
* KurumiWriter (V1.00、Run after COM openのチェック無し、cotton_sketch.bin)
115,200bps → 22sec
500,000bps → 20sec
1,000,000bps → 未サポート
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -a COM14 cotton_sketch.mot)
115,200bps → 16sec
500,000bps → 11sec
1,000,000bps → 11sec
以前のエントリでRL78/G10への書き込み時間が短くなることに気付いてから私が常用している設定
* KurumiWriter (V1.00、Run after COM openのチェック無し、cotton_sketch.bin)
115,200bps → 40sec
500,000bps → 36sec (+/-2sec程度のバラツキあり)
1,000,000bps → 未サポート
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -a COM14 cotton_sketch.mot)
115,200bps → 10sec
500,000bps → 4sec
1,000,000bps → 4sec
追記 : メモ
rl78flashの-aオプションは-ewvrオプション(消去して、書き込んで、ベリファイして、プログラムを実行)と
等価なのですが、ベリファイの動作は書き込んだデータと同じデータを再度送信して書き込まれていたデータ
(つまり読み出したデータ)と一致するか調べて正常に書き込まれているかチェックする方式になっています。
正常に書き込まれたかどうかをチェックする方法には、他に、書き込んだデータのCRC値と書き込まれていた
データ(つまり読み出したデータ)のCRC値を比較する方法もあり、KurumiWriterではCRC値を比較する方式に
なっています。前者は後者よりデータを再度送信する分だけ処理時間が長くなる傾向がありますが、いつもの
ようにちょっと好奇心から、rl78flashでベリファイを省いた場合の書き込み時間も計ってみました。(なお、
今のところ(G10専用のrl78g10flashにはあるものの)rl78flashにはCRC値を比較するオプションが無く、単に
ベリファイを省いただけなのでKurumiWriterとの公平な比較になりませんが、好奇心から計ってみました。)
FT232RLのWindowsドライバのデフォルト設定
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -ewr COM14 cotton_sketch.mot)
115,200bps → 10sec
500,000bps → 7sec
1,000,000bps → 7sec
以前のエントリでRL78/G10への書き込み時間が短くなることに気付いてから私が常用している設定
* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -ewr COM14 cotton_sketch.mot)
115,200bps → 6sec
500,000bps → 3sec
1,000,000bps → 3sec
追記 : メモ
RL78マイコンの内蔵フラッシュメモリへの書き込みは11bit(=1 start bit + 8bit + no parity + 2 stop bit)の
UART通信で行われているのですが、通信ボーレートと内蔵フラッシュメモリサイズとデータ転送時間の関係を
以下の計算式で単純に計算して結果を表にしてみました。(通信パケットのヘッダとかチェックサムとかは無視
しています。もっと言ってしまえば、通信手順(プロトコル)に関わることも全て無視しています。)
データ転送時間 = 内蔵フラッシュメモリサイズ × 11bit / 通信ボーレート
通信ボーレートと内蔵フラッシュメモリサイズから単純に計算したデータ転送時間
32KB | 64KB | 128KB | 256KB | 512KB | |
115.2Kbps | 3.1sec | 6.3sec | 12.5sec | 25.0sec | 50.1sec |
250Kbps | 1.4sec | 2.9sec | 5.8sec | 11.5sec | 23.1sec |
500Kbps | 0.7sec | 1.4sec | 2.9sec | 5.8sec | 11.5sec |
1Mbps | 0.4sec | 0.7sec | 1.4sec | 2.9sec | 5.8sec |
- 関連記事
-
- RL78マイコン基板(RL78/G13)|CP2102+rl78flashで秋月のRL78搭載変換モジュールに書き込み
- RL78マイコン基板(RL78/G13)|CP2102+KurumiWriterで秋月のRL78搭載変換モジュールに書き込み
- RL78マイコン基板(RL78/G13)|rl78flashで書き込んでPython+pySerialでシリアル通信する設定
- RL78マイコン基板(RL78/G13)|TeraTermでログにタイムスタンプを付けて自動保存してくれる機能
- RL78マイコン基板(RL78/G13)|WebコンパイラのSerial.printに日本語出力させてTeraTermで表示
- RL78マイコン|日立/RSDの人のCC-RLの論文が情報処理学会の優秀論文(全54編)の1つに選ばれていた
- RL78マイコン基板(RL78/G13)|rl78flashで書き込んでTeraTermでシリアル通信する設定
- RL78マイコン基板(RL78/G13)|KurumiWriter V1.00(ソース公開版)とrl78flashの書き込み時間の比較
- RL78マイコン基板(RL78/G13)|rl78flashの書き込みボーレート変更不具合の暫定修正('workaround')
- RL78マイコン基板(RL78/G13)|KurumiWriter V1.00(ソース公開版)で不安定動作の暫定修正
- RL78マイコン基板(RL78/G13)|KurumiWriterで書き込んでTeraTermでシリアル通信する設定
- RL78マイコン基板(RL78/G13)|rl78flashで秋月のR5F100LGAFB搭載変換モジュールに書き込み
- RL78マイコン基板(RL78/G13)|KurumiWriterで秋月のR5F100LGAFB搭載変換モジュールに書き込み
- RL78マイコン基板(RL78/G13)|GR-COTTONのフラッシュ書き込み回路は抵抗のみ
- RL78マイコン基板(RL78/G13)|Webコンパイラで秋月のR5F100LGAFB搭載変換モジュールを使う
2016/09/14 blog-entry-811 category: RL78 /* 16bit,8bit CISC */
| h o m e |