SH/TinyのFLASHへシリアルポート経由でUSARTを使ってデータを書き込むプログラムを作った. 書き込むデータはモトローラS形式ファイル(.mot)でなければならない. わざわざ自作したのはLinuxからROM書き込みを行うためである.
プログラム言語には,ほとんどOSに依存しないコードにするためにpythonを使った. また,シリアルポートを操作するために,pyserialモジュールを使っている.
shtiny_writer_yymmdd ディレクトリの中身が書き込みプログラム(pythonスクリプト)であり, write_yymmdd.py は便利に使うためのスクリプトである.
SH-71253に対応させることしか考えていない. とはいえ,shtiny_writer.pyの先頭のパラメータを変更することで 他のSH/Tinyシリーズに対応できると思われる.
python環境とpyserialモジュールがインストールされている必要がある. Linuxにおいては標準でインストールされていることが多い. Windowsの場合,以下の手順でセットアップする.
基本的な使い方は,オプションと書き込むファイル(filename.mot)をコマンドライン引数にして "shtiny_writer_yymmdd/shtiny_writer.py" を実行すればよい. 例えば,次のように使う.
オプション | 説明 |
---|---|
--port=(PORT) | シリアルポートを指定(Windowsの場合com1など) |
--baudrate=(RATE) | ボーレートを指定 |
--compare | 書き込み後,読み込んで元データと比較する |
--checksum | 書き込み後,書き込みデータとFLASHの内容のchecksumを比較する |
--time | デバイスとの接続がとれた瞬間からの経過時間を表示する |
'--compare' オプションは書き込んだデータを再度読み込んで比較するため時間がかかる. '--checksum' は和の比較だけであるが,高速である.
上記「使用方法1」が基本ではあるが, 毎回オプションを指定するのはあまりに面倒なので, 各オプションをあらかじめ設定したpythonスクリプト(write_yymmdd.py)を準備した. 書き込み後TeraTermなどの通信ソフトを起動するようにしている. 不要であれば削除かコメントアウトすればよい.
環境と目的にあわせてスクリプト内のいくつかの項目を書き換える必要がある.
使い方は以下の通りである.
本プログラムを作成するにあたって下記ドキュメントを参照した.