-- H8 writer program for H8S/2144A junk board --
Multi-platform H8 writer. (req. python-2.2 or higher and pySerial)
-- write control program for H8S/2144A junk(1) --
Write control program for H8S/2144A junk(1)
-- source code --
Write control program source
Write control program crt0 source
Write control program source(header)
link&loader script for write control program
-- write control program for H8S/2144A junk(2) --
Write control program for H8S/2144 junk(2)
-- source code --
Write control program source
Write control program crt0 source
Write control program source(header)
link&loader script for write control program
-- special thanks --
yamasan's H8 writer and more(H8ライター + H8工作 + PIC工作)
--
●H8Sジャンクの関連リンク
[H8Sジャンク掲示板] 秋月のH8S搭載ジャンク基板の話題はこちらにどうぞ
[秋月H8Sジャンク(その1)]
[秋月H8Sジャンク(その2)]
[超ミニBASIC for H8S/2144]
[H8S簡易モニタ]
[AtmelAVRを使った何か]
--
Pythonによるマルチプラットフォーム版H8ライタ
[特徴について]
・pythonで記述されているので,後述する動作条件の環境下であれば動作すると思います。
・レガシーフリーPCでも,ネットワーク接続可能な環境とシリアルIFを持ったPCがあれば
書込みすることも可能(H8S書込み限定のシリアルポートリダイレクタとお考え下さい)。
・yamasan氏の配布されている制御プログラムを使用すれば,H8Sジャンク以外にも書込み
することができるかもしれません(未テスト)。
[動作の前提条件]
・python-2.2以降の動作する環境(python公式サイト)
・pyserialパッケージの動作する環境(pySerialサイト)
[使用条件]
GPLv2ライセンスにて配布します。
[インストール方法]
(0) Windows環境で,以下のインストールが面倒な場合には,py2exeで作成した実行形式
を置いておきますので,適当なディレクトリに展開してご利用ください。h8wrt.zip
(1) pythonをインストールする。python公式サイトには,WindowsおよびMacOSXなどの
一般的なプラットフォーム用のインストールイメージが置かれています。それを利用
してください。cygwin環境であれば,setup.exeを使用して追加インストールするのが
簡単です。
主なLinuxディストリビューションであればパッケージで導入するのが簡便でしょう。
インストールするバージョンは,2.2以降であればよいと思われますが,2.6以降の
場合には,pythonV3に対するコンパチビリティの警告がでるかもしれません。
BSD環境であれば,portsかsrcによるインストールになるかと思います。
※コマンドラインからpythonと入力して,pythonインタープリタが起動する環境を動作環境
として前提にしています。
(2) pySerialをインストールする。ディストリビューションのパッケージやportsにあれ
ば,そちらを使用してインストールするのが簡単です。
ソースからインストールする場合には,pySerialサイトからソースアーカイブを取得し,
以下のログを参考にインストールしてください。
$ tar zxf pyserial-2.4.tar.gz
$ cd pyserial-2.4
$ python setup.py install
standart distutils
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/serial
copying serial/serialcli.py -> build/lib/serial
copying serial/serialjava.py -> build/lib/serial
copying serial/serialposix.py -> build/lib/serial
copying serial/serialutil.py -> build/lib/serial
copying serial/serialwin32.py -> build/lib/serial
copying serial/sermsdos.py -> build/lib/serial
copying serial/__init__.py -> build/lib/serial
running install_lib
creating /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/serialcli.py -> /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/serialjava.py -> /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/serialposix.py -> /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/serialutil.py -> /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/serialwin32.py -> /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/sermsdos.py -> /usr/lib/python2.5/site-packages/serial
copying build/lib/serial/__init__.py -> /usr/lib/python2.5/site-packages/serial
byte-compiling /usr/lib/python2.5/site-packages/serial/serialcli.py to serialcli.pyc
byte-compiling /usr/lib/python2.5/site-packages/serial/serialjava.py to serialjava.pyc
byte-compiling /usr/lib/python2.5/site-packages/serial/serialposix.py to serialposix.pyc
byte-compiling /usr/lib/python2.5/site-packages/serial/serialutil.py to serialutil.pyc
byte-compiling /usr/lib/python2.5/site-packages/serial/serialwin32.py to serialwin32.pyc
byte-compiling /usr/lib/python2.5/site-packages/serial/sermsdos.py to sermsdos.pyc
byte-compiling /usr/lib/python2.5/site-packages/serial/__init__.py to __init__.pyc
running install_egg_info
Writing /usr/lib/python2.5/site-packages/pyserial-2.4-py2.5.egg-info
$
(3) H8ライタプログラム h8wrt.pyを適当な場所にインストールする。
[使用方法]
・スタンドアロンモードでの使い方
h8wrt.py [-b ブート通信速度] [-p 書き込み時の通信速度] [-d シリアルデバイス名] [-n] [-A] 書き込み制御motファイル ROMに書込むmotファイル
・ネットワークモードでの使い方(サーバモード)
h8wrt.py -s ポート番号 [-b ブート通信速度] [-p 書き込み時の通信速度] [-d シリアルデバイス]
・ネットワークモードでの使い方(クライアントモード)
h8wrt.py -c ポート番号 -a サーバIP [-n] [-A] 制御.mot ユーザ.mot
※実行形式版の場合には,h8wrt.pyをh8wrt.exeとしてください。
[オプション説明]
-b ブート通信速度
ブート制御プログラム転送時の通信速度(デフォルト9600)
-p 書き込み時の通信速度
書き込み制御プログラム転送時の通信速度(デフォルト9600)
-d シリアルデバイス名
シリアルデバイス名
(unix系なら/dev/ttyS0など, Win/DOS系ならCOM1:など接続ポートを指定する)
-n
motファイルのチェックサムを無視する。
(秋月の開発環境で作成したMOTファイルなどのチェックサムが誤っている場合に有用)
-A
プロトコルAと呼ばれる書き込み制御プログラムを使用する場合に指定する。
(書き込みブロックが32バイト単位となる。AサフィックスでないH8S/2144や2128など)
-v
ブロック書込み毎にベリファイを行います。
以下, ネットワークモード指定オプション
-s ポート番号
サーバモード指定でTCPポート番号を指定する。
(スタンドアロンモード&クライアントモードとは排他)
-c ポート番号
クライアントモード指定で接続先のTCPポート番号を指定する。
(スタンドアロンモード&サーバモードとは排他)
-a サーバIP
クライアントモードで接続先のIPアドレスを指定する。
cygwinでCOM2を使った場合の実行例は,こんな感じです。
$ chmod a+x ./h8wrt.py
$ ./h8wrt.py -d /dev/ttyS1 ~/H8W/CTRL_MOT/2144A_F20M_P384.MOT ~/temp/H8Smon/mon2144.mot
./h8wrt.py:
-b = 19200
-p = 38400
-d = /dev/ttyS1
BootFile=~/H8W/CTRL_MOT/2144A_F20M_P384.MO
UserFile=~/temp/H8Smon/mon2144.mot
Boot program length=1296
User program length=22732
booting start.
/dev/ttyS1 open.
0x0000 bytes loaded.
(途中略)
0x0500 bytes loaded.
done.
loaded booting = 1296
chip erase start
chip erase done.
/dev/ttyS1 closed.
booting done.
user program remapping(blksize=128).
user program remapped(0x00000000 - 0x000058ff).
write user program on flash.
/dev/ttyS1 open.
ADDR: 0x00000000 wrote.
ADDR: 0x00000080 wrote.
(途中略)
ADDR: 0x00005800 wrote.
ADDR: 0x00005880 wrote.
/dev/ttyS1 closed.
wrote user program. 178 blocks (blksize=128)
$
●謝辞
・H8ライター + H8工作 + PIC工作
H8ライターと複数のH8書き込み制御プログラムを公開されていて,それをもとに2144A
対応の書き込み制御プログラムを作ることができました(ほとんどH8S/2636用のを流用してます)
リンクまで貼っていただきYamasanに感謝!!
[ご注意]
・このページの記載事項については,一切無保証です。