RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)のPythonコンソール上でシリアルポート操作 (3)
RL78/G10の内蔵フラッシュメモリ書き込みコマンドの詳細は他のRL78マイコンとは違ってマニュアルに記載
されていませんが、ルネサスの国内向けのユーザコミュニティサイト(Rulz)にコミュニティのお二人が解析した
結果が投稿されています。前のエントリではCS+(旧CubeSuite+)のPythonコンソール上にシリアルポートの
受信データを表示させ続けることを試してみましたが、今度はRulzの情報を元にRL78/G10の内蔵フラッシュ
メモリ書き込みコマンドの1つを使ってPythonコンソール上で内蔵フラッシュメモリのチェックサム値を取得
するプログラムを作ってみました。取り敢えず書き込みコマンドが使えるかどうかを確認してみたかったので
大雑把なプログラムにはなっていますが、Renesas Flash Programmerで取得したチェックサム値と同じ値を
取得することは出来ました。(書き込みプログラムも後日作ってみたいとは思っていますが、、、)
import System, time
def checksum():
sdat = System.Array.CreateInstance( System.Byte, 1 )
rdat = System.Array.CreateInstance( System.Byte, 4 )
com = System.IO.Ports.SerialPort( 'COM14', 115200, System.IO.Ports.Parity.Odd )
com.Open()
com.RtsEnable = False
com.BreakState = True
com.RtsEnable = True
com.BreakState = False
com.DiscardInBuffer()
print ' '
sdat[0] = 0x3A
com.Write( sdat, 0, 1 )
time.sleep( 1 )
com.Read( rdat, 0, 2 )
print format( int( rdat[0] ), "02X" )
print format( int( rdat[1] ), "02X" )
sdat[0] = 0x53
com.Write( sdat, 0, 1 )
time.sleep( 1 )
com.Read( rdat, 0, 3 )
print format( int( rdat[0] ), "02X" )
print format( int( rdat[1] ), "02X" )
print format( int( rdat[2] ), "02X" )
sdat[0] = 0x06
com.Write( sdat, 0, 1 )
time.sleep( 1 )
com.Read( rdat, 0, 4 )
print format( int( rdat[0] ), "02X" )
print format( int( rdat[1] ), "02X" )
print format( int( rdat[2] ), "02X" )
print format( int( rdat[3] ), "02X" )
print ' '
com.Close()
checksum()

なお、RL78/G10の内蔵フラッシュメモリ書き込みコマンドですが、以下のウェブページを参照しました。
Home >> かふぇルネ >> 101:RL78-Forum >> RL78/G10の外部UARTによる書き込み - Rulz
http://japan.renesasrulz.com/cafe_rene/f/82/p/2163/9301.aspx?loc=JP
追記 : 雑感
Pythonには本体とは別に開発されているpySerialという追加のシリアルポート操作パッケージがあり、これを
使うとOSの違いを意識することなくシリアルポート操作を行うPythonスクリプトを書くことが出来るようです。
pySerialはRasPiやBBBのPythonでも使えそうな気がしますので、RL78/G10の内蔵フラッシュメモリ書き込み
プログラムをpySerialを使って作れば、そのPythonスクリプトでRasPiやBBBからRL78/G10に書き込めそうな
気もします、、、 (何か良いことがあるかどうかは別にして、、、 UART信号の電圧変換も必要ですし、、、)
追記 : 雑感その2
それから、RL78/G10の内蔵フラッシュメモリ書き込みコマンドは単純なのでArduinoやmbedでプログラムを
作ることも大した手間ではないような気もします、、、 (ビルド時にHEXフォーマットのファイルからバイナリ
べた詰めファイルを生成するように工夫しておけば、HEXフォーマットのデータをバイナリデータへ変換する
処理をArduino側やmbed側で作る必要は無いですし、、、)
されていませんが、ルネサスの国内向けのユーザコミュニティサイト(Rulz)にコミュニティのお二人が解析した
結果が投稿されています。前のエントリではCS+(旧CubeSuite+)のPythonコンソール上にシリアルポートの
受信データを表示させ続けることを試してみましたが、今度はRulzの情報を元にRL78/G10の内蔵フラッシュ
メモリ書き込みコマンドの1つを使ってPythonコンソール上で内蔵フラッシュメモリのチェックサム値を取得
するプログラムを作ってみました。取り敢えず書き込みコマンドが使えるかどうかを確認してみたかったので
大雑把なプログラムにはなっていますが、Renesas Flash Programmerで取得したチェックサム値と同じ値を
取得することは出来ました。(書き込みプログラムも後日作ってみたいとは思っていますが、、、)
import System, time
def checksum():
sdat = System.Array.CreateInstance( System.Byte, 1 )
rdat = System.Array.CreateInstance( System.Byte, 4 )
com = System.IO.Ports.SerialPort( 'COM14', 115200, System.IO.Ports.Parity.Odd )
com.Open()
com.RtsEnable = False
com.BreakState = True
com.RtsEnable = True
com.BreakState = False
com.DiscardInBuffer()
print ' '
sdat[0] = 0x3A
com.Write( sdat, 0, 1 )
time.sleep( 1 )
com.Read( rdat, 0, 2 )
print format( int( rdat[0] ), "02X" )
print format( int( rdat[1] ), "02X" )
sdat[0] = 0x53
com.Write( sdat, 0, 1 )
time.sleep( 1 )
com.Read( rdat, 0, 3 )
print format( int( rdat[0] ), "02X" )
print format( int( rdat[1] ), "02X" )
print format( int( rdat[2] ), "02X" )
sdat[0] = 0x06
com.Write( sdat, 0, 1 )
time.sleep( 1 )
com.Read( rdat, 0, 4 )
print format( int( rdat[0] ), "02X" )
print format( int( rdat[1] ), "02X" )
print format( int( rdat[2] ), "02X" )
print format( int( rdat[3] ), "02X" )
print ' '
com.Close()
checksum()

なお、RL78/G10の内蔵フラッシュメモリ書き込みコマンドですが、以下のウェブページを参照しました。
Home >> かふぇルネ >> 101:RL78-Forum >> RL78/G10の外部UARTによる書き込み - Rulz
http://japan.renesasrulz.com/cafe_rene/f/82/p/2163/9301.aspx?loc=JP
追記 : 雑感
Pythonには本体とは別に開発されているpySerialという追加のシリアルポート操作パッケージがあり、これを
使うとOSの違いを意識することなくシリアルポート操作を行うPythonスクリプトを書くことが出来るようです。
pySerialはRasPiやBBBのPythonでも使えそうな気がしますので、RL78/G10の内蔵フラッシュメモリ書き込み
プログラムをpySerialを使って作れば、そのPythonスクリプトでRasPiやBBBからRL78/G10に書き込めそうな
気もします、、、 (何か良いことがあるかどうかは別にして、、、 UART信号の電圧変換も必要ですし、、、)
追記 : 雑感その2
それから、RL78/G10の内蔵フラッシュメモリ書き込みコマンドは単純なのでArduinoやmbedでプログラムを
作ることも大した手間ではないような気もします、、、 (ビルド時にHEXフォーマットのファイルからバイナリ
べた詰めファイルを生成するように工夫しておけば、HEXフォーマットのデータをバイナリデータへ変換する
処理をArduino側やmbed側で作る必要は無いですし、、、)
- 関連記事
-
- RL78マイコン|volatile変数アクセスの衝突防止(結局はDI/EIですが) (1)
- RL78マイコン|32bit変数へのアクセスはアトミックじゃない
- RL78マイコン(G12,G13,G14)|CS+(CubeSuite+)でインターバルタイマシミュレーションを試す
- RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)で内蔵周辺機能シミュレーションを試す (3)
- RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)で内蔵周辺機能シミュレーションを試す (2)
- RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)で内蔵周辺機能シミュレーションを試す (1)
- RL78マイコン基板(RL78/G10)|e2studio同梱のPython 2.7.2+pySerial 2.7でシリアルポート操作
- RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)のPythonコンソール上でシリアルポート操作 (3)
- RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)のPythonコンソール上でシリアルポート操作 (2)
- RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)のPythonコンソール上でシリアルポート操作 (1)
- RL78マイコン基板(RL78/G10)|TOOL0端子へのシリアル出力を使ったgetch()関数もどきのコード
- RL78マイコン基板(RL78/G10)|TOOL0端子へのシリアル出力を使ったkbhit()関数もどきのコード
- RL78マイコン基板(RL78/G10)|TOOL0端子から2Mbaudでソフトウェアシリアル出力するコード
- RL78マイコン基板(RL78/G10)|Renesas Flash Programmerのコマンドラインでフラッシュ書き込み
- RL78マイコン基板(RL78/G10)|秋月のRL78/G10 10pin DIP基板に自作回路でフラッシュ書き込み (2)
2015/01/15 blog-entry-551 category: RL78 /* 16bit,8bit CISC */
| h o m e |