[KOZOS]Step1(p40): H8/3069フラッシュROMへの書き込み

■USB-to-Serialアダプタドライバのインストール
・まずWindows7のノートPCに、PL2303 USB-to-Serialアダプタを接続する準備。

・PL2303の付属CD内のAutoフォルダのexeを実行し、古いとは思うがドライバをインストール。

・CD付属のドライバインストール後、PL2303をノートPCのUSBへ接続。

・「ドライバソフトウェアのインストール」というウィンドウが起動し、何やらWindows Update
 入手してるとの説明が出る。
 そのまま、Webから何やら入手した後、以下MSG出てドライバインストール成功したみたい。
  「Prolific USB-to-Serial Comm Port(COM5) 使用する準備ができました」

 そもそも、付属CDのドライバをインストールしておく必要無かったかも。

・その後、TeraTerm Proを起動し、ProlificのCOM5を選択。

■フラッシュROMへの焼き込み
・ボード上のDIPスイッチを、1234の順にON,ON,OFF,ONにする。

・h8writeのパスを.bashrcに通してから、以下実行。

w510: h8write -3069 -f20 kzload.mot
com1 open error!!



・そうだった、そいや、.cの中で、COM番号設定を5番にしてないな。

★h8write.c
修正前: #define RSLINE "com1"
修正後: #define RSLINE "com5"


★Makefile
修正前:H8WRITE_SERDEV = com1
修正後:H8WRITE_SERDEV = com5


・comポート設定を修正してから、まずはh8writeコンパイルし直し。
 警告が良くわからんが、実行ファイルが生成されてるのでOKとしよう。

w510: gcc h8write.c -o h8write -Wall
h8write.c: In function `opencom':
h8write.c:846: 警告: 戻り型が void の関数で、`return' に値があります


・次にHello Worldソースのビルド、他し直し。

w510: make
make: `all' に対して行うべき事はありません.


 あ、そうか、Makefile中のcom設定変えたけど、ソースのビルドには無関係だ。
 Makefile内の関連箇所は、フラッシュ書き込みコマンドの引数のみだった。
 だから、ビルドの再実行は必要ないですよーと教えてくれたのか。

・では、フラッシュROM書き込み実行。

w510: make write
../../tools/h8write/h8write -3069 -f20 kzload.mot com5
com5 open error!!



・あれ?まだ設定ミスってる?
 デバイスマネージャでこのUSB-to-Serialアダプタをcom1に設定して、
 さらにh8write.cやMakefileも設定をcom1に戻しても同じ失敗。
 書籍p44にあるように、USB-to-Serialの場合特有の問題かな?
 シリアルポート装備のPCうちにあったかな?

・以下関係あるか?
 デバイスマネージャ > COM1(USBシリアル)のプロパティ > ポートの設定
    > 詳細設定 > 「FIFOバッファを使用する」のチェックを外す

(2012/9/18追記)
うちのデスクトップ、シリアルポート付きは10年以上前に買ったDELL Dimension8200しかない。
しかも前にFreeNAS入れたら、WinXPインストールCD入れたのに、なぜかBootせずに、
FreeNASがBootする。BIOSでCD-ROM優先にしてるのに。なぜだ・・・

(2012/9/20追記)
USBシリアルケーブルを、Polificの他、Arvel(今はバッファロ?)のSRC06USBでやってみた。
これでも同じくCom open errorで、ジェンダーチェンジャーでクロス/ストレートを変えてみてもダメ。
ケーブルも2種類ダメで、クロス/ストレート勘違いでも無く、ボードも2枚ともダメだから、
原因はやっぱり書籍にも書いてあった「USBシリアルとの相性が悪い」って事かな。
やっぱりDELL DimensionをXPにして、マザー備え付けのシリアルポートでやってみる事にする。
先日のFreeNAS起動の問題は、たぶんHDDをまっさらなHDDに取り替えれば直ると思う。

(2012/9/25追記)
DELL Dimension8200のHDDを交換したら、Windows XP ProインストールCD-ROMからBootできて、
インストール完了。
再度トライ。ボードをEEPROM焼きこみモードに設定して、電源プラグ入れて、
TeraTermを起動して、COM1に設定して・・・・
Cygwin起動して、make writeで書き込み。
あら?またCOM1 open errorだ。
USBシリアルでなくて、マザー搭載シリアルポートなのに。

本よくよく見ると、make writeする前にTeraTerm起動なんて書いてない。
TeraTerm起動せずにmake writeしたら以下MSGで成功した。

dell: make write
../../tools/h8write/h8write -3069 -f20 kzload.mot com1
H8/3069F is ready! 2002/5/20 Yukio Mituiwa.
writing
WARNING:This Line dosen't start with"S".
Address Size seems wrong
WARNING:This Line dosen't start with"S".
Address Size seems wrong
......
EEPROM Writing is successed.



もしやUSBシリアルが原因ではなかったのでは?
後でノートPCでもやってみよう。

とにかく、EEPROMへの書き込み成功した後は、電源プラグを抜いて、
DIPスイッチをフラッシュROMからの起動モード
(DIP Sw 1234を左から順にON=上/OFF=下/ON=上/OFF=下)
にする。

それからTeraTermを起動してCOM1設定にしてから電源を入れると、
確かに「Hello world!」表示されて成功。

(2012/9/25追記2)
ノートPCのUSBシリアルでもやってみた。
しかし、以下MSGで失敗。

w510: make write
../../tools/h8write/h8write -3069 -f20 kzload.mot com5
FATAL:Data from H8/300 system something wrong.
H8 data should be E6, but is 00
Makefile:58: recipe for target `write' failed
make: *** [write] Error 7


DIP Sw設定もフラッシュROM焼きこみモード(ON/ON/OFF/ON)に変えたし、
シリアルケーブルのストレート/クロスの疑いも、ジェンダーチェンジャー
で試したから両方Errorである事が確認できてるはず。
DELLセットアップは無駄じゃなかったみたい。今後、DELLデスクトップで作業せねば。

(2014.1.1追記)
・iBUFFALO USBシリアルケーブルBSUSRC0610BSでフラッシュROMへのライトを再試行中。
 VMwareでUSBシリアルケーブルを認識し(/dev/ttyUSB0が現れてる状態)、Makefileを修正し、
 make writeで焼き込みを実行した。しかしエラー。

</mnt/hgfs/vm_share/kozos/121201_2050/src/01/bootload/Makefile の修正点>
修正前= H8WRITE = ../../tools/h8write/h8write
修正後= H8WRITE = /usr/local/bin/h8write

修正前= H8WRITE_SERDEV = com1
修正後= H8WRITE_SERDEV = /dev/ttyUSB0


[leon@localhost bootload]$ make write
/usr/local/bin/h8write -3069 -f20 kzload.mot /dev/ttyUSB0
FATAL:Can not open the line to the H8/OS system.
/dev/ttyUSB0make: *** [write] Error 3
[leon@localhost bootload]$ lm /dev/ttyUSB0
0 crw-rw----. 1 root dialout 188, 0 Jan 1 04:05 /dev/ttyUSB0



・rootでchmod 777 /dev/ttyUSB0 を実行してから再度make writeしたら、
 今度はエラーは出ないが、何も表示されず、フリーズしてしまった。

・原因考えてて、ふと思った。
 さっきH8ボードのモードをフラッシュROMライトモードに切り替える時、
 電源ONしたままDIPスイッチを変えたのが問題か?
 ボードの電源OFF -> ONし直して、VMwareも一度シャットダウンした。

 http://monoist.atmarkit.co.jp/mn/articles/1103/31/news004_3.html
 さらに、著者が書いたこの記事を見ると、焼き込み前にsuでrootになってる。
 これに従い、rootで実行してみたら、以下の通り成功した。

[root@localhost bootload]# make write
/usr/local/bin/h8write -3069 -f20 kzload.mot /dev/ttyUSB0
H8/3069F is ready! 2002/5/20 Yukio Mituiwa.
writing
WARNING:This Line dosen't start with"S".
Address Size seems wrong
WARNING:This Line dosen't start with"S".
Address Size seems wrong
......
EEPROM Writing is successed.



・WindowsではTeratermを使ってたが、CentOSで使えるターミナルソフトとして、
 著者が記事で推奨してたminicomをインストールする。

yum install minicom



・minicomを起動しようとしたら、失敗。

[leon@localhost Desktop]$ minicom
minicom: there is no global configuration file /etc/minirc.dfl
Ask your sysadmin to create one (with minicom -s).



・rootでも実行してみたら、違う反応が。

[root@localhost Desktop]# minicom
minicom: WARNING: configuration file not found, using defaults
Device /dev/modem access failed: No such file or directory.



・ここを見ると、rootでminicom -s と実行するとコンフィグ画面に行くらしい。
http://www.pclinuxos.com/forum/index.php?topic=115355.0

・rootでminicom -s 実行 > Serial port setup > 以下設定に変更。

A - Serial Device : /dev/ttyUSB0
B - Lockfile Location : /var/lock
C - Callin Program :
D - Callout Program :
E - Bps/Par/Bits : 9600 8N1
F - Hardware Flow Control : No
G - Software Flow Control : No

 Exit from minicomではなく、Exitで終了して、minicomは起動したままにする。

・すると、以下画面で待ち受け状態になる。

Welcome to minicom 2.3

OPTIONS: I18n
Compiled on Aug 19 2010, 05:48:57.
Port /dev/ttyUSB0

Press CTRL-A Z for help on special keys



・先程フラッシュROMに焼き込んだH8ボードは電源OFFにしてあり、
 DIPスイッチを1番から順番にON/OFF/ON/OFF(動作モード)にした後に、ACアダプタを接続して電源ONに。
 すると、待ち受け画面の下に「Hello World!」の文字が出た。これで成功。
 minicomを終了する時は、Ctrl-Aと押した後Qキーを押すと、終了確認メッセージが出る。

(2014.1.2追記)
・フラッシュROMへの焼き込み問題解決かと思ったら、連続してmake writeするとエラーになる。なぜ?

[root@localhost bootload]# make write
/usr/local/bin/h8write -3069 -f20 kzload.mot /dev/ttyUSB0
H8/3069F is ready! 2002/5/20 Yukio Mituiwa.
writing
WARNING:This Line dosen't start with"S".
Address Size seems wrong
WARNING:This Line dosen't start with"S".
Address Size seems wrong
......
EEPROM Writing is successed.
[root@localhost bootload]# make write
/usr/local/bin/h8write -3069 -f20 kzload.mot /dev/ttyUSB0
FATAL:Can not to set line speed and put Query mode.
make: *** [write] Error 15



・本書サポートページにある2回目以降の実行出来ない対策として「killall h8write」
 も試してみたが、そもそもh8writeというプロセルは無いと言われ、その後にmake write
 を実行しても案の定エラーになる。

(2014.1.4追記)
以前フラッシュROMへの焼き込みが成功していた、マザーボード上のシリアルポートを保有する
DELL Dimension 8200で試してみた。Windows XP上のCygwinでの試験。
h8write(kz_h8writeではない)でやると、1回目は成功するものの、2回目以降はエラー。
kz_h8write 0.2.1でやっても2回目以降であり、エラー。
1回目に戻すために、どうやってリセットするかも分からない。
これは1回焼き込む度に毎回PCを再起動する方法になるのかな?

新PCにPCI接続のシリアルポートを増設しようと思ったが、Dimensionと同じ結果になるだけかな。
スポンサーサイト
カレンダー
08 | 2012/09 | 10
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード