面白そうだったのでうちでも追試をしてみました。
0) 使用している環境
母艦:
Linux version 2.6.34.8-68.fc13.x86_64
(mock...@x86-03.phx2.fedoraproject.org) (gcc version 4.4.5 20101112
(Red Hat 4.4.5-2) (GCC) ) #1 SMP Thu Feb 17 15:03:58 UTC 2011
USBシリアル変換器:
usb 4-2: new full speed USB device using ohci_hcd and address 3
usb 4-2: New USB device found, idVendor=067b, idProduct=2303
usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-2: Product: USB-Serial Controller
usb 4-2: Manufacturer: Prolific Technology Inc.
pl2303 4-2:1.0: pl2303 converter detected
usb 4-2: pl2303 converter now attached to ttyUSB0
1) アップされているソールをそのままコンパイルしてみた場合
** 話題のビットレート部はパスしていますが、どうもフラッシュのイレースに失敗している模様
bluesky:~/H8_TOOL/kz_h8write > ./kz_h8write kzload.mot 20 /dev/ttyUSB0
=======================================
KOZOS H8/3069F Flash Writer.
Copyright(C) 2011 Shinichiro Nakamura
=======================================
Bitrate sequence: Done.
Inquiry device: Done.
Select device: Done.
Inquiry clock mode: Done.
Select clock mode: Done.
Select bitrate: Done.
Write erase failed. (code=0x0c)
** 同じmotファイルをh8writeで書き込んでみた場合、こちらは正常に書き込めている様子。
bluesky:~/H8_C/H8_3069F > ./h8write -f20 -3069 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.
:
:
kzload (kozos boot loader) started.
kzload>
unknown.
kzload>
** motファイルのサイズの大小を疑ってもう少し大きなものを書き込んだ場合。 状態に変化無し。
(TOPPERS/JSP 付属のモニタプログラムを書き込んでみました)
bluesky:~/H8_TOOL/kz_h8write > ./kz_h8write mon3069.mot 20 /dev/ttyUSB0
=======================================
KOZOS H8/3069F Flash Writer.
Copyright(C) 2011 Shinichiro Nakamura
=======================================
Bitrate sequence: Done.
Inquiry device: Done.
Select device: Done.
Inquiry clock mode: Done.
Select clock mode: Done.
Select bitrate: Done.
Write erase failed. (code=0x0c)
bluesky:~/H8_TOOL/kz_h8write > ./kz_h8write mon3069.mot 20 /dev/ttyUSB0
=======================================
KOZOS H8/3069F Flash Writer.
Copyright(C) 2011 Shinichiro Nakamura
=======================================
Bitrate sequence: Done.
Inquiry device: Done.
Select device: Done.
Inquiry clock mode: Done.
Select clock mode: Done.
Select bitrate: Done.
Write erase failed. (code=0x0c)
(念のため、シリアルの”詰まり”も考えて二度繰り返してみた)
bluesky:~/H8_C/H8_3069F > ./h8write -f20 -3069 mon3069.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.
:
:
H8/3069F Monitor v1.12 Copyright (C) 1999-2004 CSE Tomakomai NCT
1:db
00ffbf20 7a 7b e9 dd a7 86 f7 64-0c c8 83 03 38 57 3c c5 z{.....d....8W<.
00ffbf30 00 00 46 6a 22 be 88 dd-21 14 ac 44 d2 15 76 f9 ..Fj"...!..D..v.
00ffbf40 64 0b 1d 69 ca d8 e4 5c-9c 95 08 16 41 cd 5a 72 d..i...\....A.Zr
00ffbf50 28 10 80 90 b8 10 31 2a-53 24 23 82 ba 24 e9 03 (.....1*S$#..$..
00ffbf60 44 25 21 ec 9d 54 c6 01-82 10 d8 24 72 a2 09 b3 D%!..T.....$r...
00ffbf70 27 58 2e b8 b3 30 12 63-a3 40 08 84 90 5b 6f 86 'X...0.c.@...[o.
00ffbf80 ca 02 74 18 4e f5 56 1e-9e 19 41 e6 dc 8a 18 44 ..t.N.V...A....D
00ffbf90 d0 26 83 2e 31 bb e4 87-40 65 01 a0 8a 1a f6 be .&..1...@e......
00ffbfa0 85 92 00 d8 ae ff ec 28-61 10 02 20 91 45 9a 79 .......(a.. .E.y
00ffbfb0 04 20 07 c8 b6 d5 60 7c-00 82 41 41 5f 77 c4 2e . ....`|..AA_w..
00ffbfc0 41 01 00 00 03 07 eb 1b-88 61 14 64 cc ce db f5 A........a.d....
00ffbfd0 43 b1 b2 31 56 8a ab 43-84 35 a5 f0 9a ff fc 2f C..1V..C.5...../
00ffbfe0 dc 81 50 0c b6 51 a1 ef-40 c5 29 04 9b 3a 42 e6 ..P..Q..@.)..:B.
00ffbff0 64 47 01 c3 3a a6 cb 19-18 32 59 d2 00 00 01 00 dG..:....2Y.....
00ffc000 00 00 0f ba 00 00 00 00-00 00 00 00 00 00 00 00 ................
00ffc010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
(こちらは正常動作している様子)
2) 何が起きているのかソースを当たって見ました。当該の部分はこのあたり、、、
デバッグコードを加えて実験をして見ました。
227 enum ErrorCode program(void)
228 {
229 unsigned char c;
230
231 com_putc(0x40);
232 c = com_getc();
233 printf("A1 -- %x\n", c);
///////////////////////////////////////////////
234 c = com_getc();
235 printf("A2 -- %x\n", c);
///////////////////////////////////////////////
236 if (c != 0x06) {
237 c = com_getc();
238
239 printf("AA -- %x\n", c);
///////////////////////////////////////////////
240 return WriteEraseFail;
241 }
最初は234,235行目をコメントアウトしてコンパイルして、プログラムを実行してみると、
bluesky:~/H8_TOOL/kz_h8write > ./kz_h8write kzload.mot 20 /dev/ttyUSB0
=======================================
KOZOS H8/3069F Flash Writer.
Copyright(C) 2011 Shinichiro Nakamura
=======================================
Bitrate sequence: Done.
Inquiry device: Done.
Select device: Done.
Inquiry clock mode: Done.
Select clock mode: Done.
Select bitrate: Done.
A1 -- ff
AA -- 6
Write erase failed. (code=0x0c)
のような結果が帰ってきます。どうやらH8は正常にフラッシュのイレースを行っているのに
その結果の取り込みをミスっている感じ。
次に、上のコメントを外して再度コンパイルして、プログラムを実行してみると、
bluesky:~/H8_TOOL/kz_h8write > ./kz_h8write kzload.mot 20 /dev/ttyUSB0
=======================================
KOZOS H8/3069F Flash Writer.
Copyright(C) 2011 Shinichiro Nakamura
=======================================
Bitrate sequence: Done.
Inquiry device: Done.
Select device: Done.
Inquiry clock mode: Done.
Select clock mode: Done.
Select bitrate: Done.
A1 -- ff
A2 -- 6
Write erase: Done.
Complete.
正常終了されています。書き込まれた内容にも問題ありませんでした。
デバイスの個体差、環境にもよるのかもしれませんが、イレースコマンド(0x40)を発行して
すかさずACK(0x06期待)を取り込もうとすると、取り込みが早すぎてミスっているようです。
スペックシートのフラッシュの項目には typical 1000ms/64kbyte Max 10000ms/64kbyte
(どちらもマージン取りすぎの気がしますが、、)と言っているので、512k全消去の場合は、
それなりのウェイトが必要かと思います。
便利に使わさせていただきます。 ありがとうございます。
2011年5月26日23:25 shintamainjp <shinta....@gmail.com>:
新バージョン、テストしてみました。 所望の動作をしている様子です。
(ソースファイルの変更無し)
bluesky:~/H8_TOOL/kz_h8write-0.0.2 > ./kz_h8write mon3069.mot 20 /dev/ttyUSB0
=======================================
KOZOS H8/3069F Flash Writer.
Copyright(C) 2011 Shinichiro Nakamura
=======================================
Bitrate sequence: Done.
Inquiry device: Done.
Select device: Done.
Inquiry clock mode: Done.
Select clock mode: Done.
Select bitrate: Done.
Waiting for erase done:...
Programming:................................................................
Program: Done.
Complete.
:
:
H8/3069F Monitor v1.12 Copyright (C) 1999-2004 CSE Tomakomai NCT
1:db
00ffbf20 00 00 00 00 30 69 00 00-20 02 02 20 01 00 ff ff ....0i.. .. ....
00ffbf30 58 00 00 2c ff ff ff ff-ff ff ff ff ff ff ff ff X..,............
00ffbf40 58 00 02 4a ff ff ff ff-ff ff ff ff ff ff ff ff X..J............
00ffbf50 ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
00ffbf60 5c 00 01 ee 7a 03 00 fe-e0 24 68 3a 6d f2 7d 30 \...z....$h:m.}0
00ffbf70 70 20 5c 00 02 88 7a 12-00 00 02 8e 0f 83 01 00 p \...z.........
00ffbf80 6f a3 00 a8 01 00 6f a1-00 ae f8 05 7a 23 00 07 o.....o.....z#..
00ffbf90 ff ff 58 30 00 ac f8 03-a9 00 47 06 a9 80 58 60 ..X0......G...X`
00ffbfa0 00 a0 6a 2c 00 fe e0 b5-ac aa 46 0c 7a 21 00 00 ..j,......F.z!..
00ffbfb0 1f ff 58 20 00 8c 40 0a-7a 21 00 07 ff ff 58 20 ..X ..@.z!....X
00ffbfc0 00 80 f8 41 7a 01 00 fe-e0 b0 7c 10 73 70 47 72 ...Az.....|.spGr
00ffbfd0 f8 11 6a 29 00 fe e0 b4-a9 5a 46 66 79 04 00 80 ..j).....ZFfy...
00ffbfe0 0f b5 7a 06 00 00 00 06-0a a6 7b d4 59 8f 7a 06 ..z.......{.Y.z.
00ffbff0 00 ff ff a8 7d 60 70 60-7d 60 72 40 00 00 01 00 ....}`p`}`r@....
00ffc000 00 00 0f ba 00 00 00 00-00 00 00 00 00 00 00 00 ................
00ffc010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2011年5月28日21:50 shintamainjp <shinta....@gmail.com>:
最近雑誌連載とイベント出展などで忙しくお試しできてません.ごめんなさい.
こちらでも通常のh8writeでうまく書き込みできないボードが数枚あり
「書き込み回数の上限のせいかな~荒っぽい使いかたしてたからな~」と
あきらめていたのですが,kz_h8writeを一回試してみたいなあと思っています.
復活してくれたら嬉しい.(最近秋葉原に行っていなくて,見本用のサンプル
ボードが不足しているので…)
<2deb730e-deed-457a...@22g2000prx.googlegroups.com>の記事において
shinta....@gmail.comさんは書きました。
Windows対応どうもです.
sourceforgeのほうも,サポートページからリンクを張らせていただきました.
ちなみにFreeBSDですが,なにも修正せずにmakeはあっさり通りました.
動作は未確認ですが….
<1166ba93-b5d1-4753...@s16g2000prf.googlegroups.com>の記事において
shinta....@gmail.comさんは書きました。
展示用ボードの動作が必要になり,kz_h8writeをFreeBSDで試してみました.
・make → なんの問題もなく通過
・書き込み → 成功.今までh8writeでダメだったボードも復活!
ということで,FreeBSDでも使えそうです.展示用ボードが復活したのが嬉しい!
(でもデモ用PCが壊れてしまってデモができない…)
<1106021943...@kozos.saturn.dti.ne.jp>の記事において
私は書きました。