• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisãofe4e796efb65394b2bae868e33c8d1cbbe7ae2c9 (tree)
Hora2011-04-30 21:31:22
AutorYoshinori Sato <ysato@user...>
CommiterYoshinori Sato

Mensagem de Log

some cleanup

Mudança Sumário

Diff

--- a/README
+++ b/README
@@ -1 +1,33 @@
1-h8flush - H8/300 Internal flush memory writer.
1+Renesas CPU on-chip flash memory writer
2+
3+1. Requirement
4+- Standard POSIX library
5+- libusb
6+
7+2. Build and Install
8+please run "make".
9+
10+3. Usage
11+h8flash [-p port] [-f freq] [-b] [-l] [-V] filename
12+-p
13+ commnunication port setting.
14+ 'usb' is using usb. others using serial port.
15+
16+-f
17+ CPU clock frequency setting
18+ This is external clock frequency (MHz)
19+
20+-b
21+ force binary writing
22+
23+-l
24+ show device configuration list
25+
26+-V
27+ verbose mode
28+
29+filename
30+ S-Record file or binary image.
31+
32+4. Licenses
33+This program license is GPL v3 or later.
--- a/README.ja
+++ /dev/null
@@ -1,55 +0,0 @@
1-■ h8flash - 20050203
2-
3-○概要
4-Renesas single chip CPU用のフラッシュ書き込みユーティリティです。
5-プログラム内蔵型であればある程度対応できると思いますが、H8/3069以外で確認していないので、
6-この名前にしてあります。
7-
8-○動作環境
9-linux-2.4.28 + glibc-2.3.2な環境で開発しています。
10-特に変わった事はやっていないので、termiosが使えればどこでも動くはず。
11-
12-○コンパイル・インストール
13-configureは無いので、そのままmake出来ます。
14-h8flash.hにいくつか設定できる部分があるので、必要な場合は変更してください。
15-出来上がった実行ファイルを適当なディレクトリに入れてください。
16-
17-○使用法
18-ターゲットボードを書き込み可能な状態で起動してから、このプログラムを実行してください。
19-起動時の引数は次のようになります。必須の物は、指定しないとエラーになります。
20-
21-$ h8flash -f clock freq [-p serial device] [--userboot] filename
22--f     (必須)CPUクロックをMHz単位で指定。小数点以下2桁まで受け付けます。
23--p     (任意)使用するシリアルポートを指定します。指定しない場合は /dev/ttyS0 になります。
24---userboot (任意)指定した場合、ユーザーブートマットへ書き込みます。
25-filename  書き込むファイル名です。Motorola-Sとraw binaryを自動判別して書き込むことが出来ます。
26-
27-○注意事項
28-限界まで通信速度を上げるので、安定した通信の出来る環境が必要です。
29-
30-○カスタマイズ
31-h8flash.hの設定可能な項目は以下の物があります。
32-・DEFAULT_SERIAL
33--pを指定しなかった場合に使用するシリアルポートです。
34-
35-・SELDEV
36-・SELCLK
37-・SELAREA
38-デバイス種別、クロックモード、書き込みエリアを任意に設定できます。
39-今のところCPU側が対応していないので、変更してもエラーになります。
40-
41-・LOCKDIR
42-シリアルポートのロックファイルを作るディレクトリを指定します。
43-
44-○ライセンス
45-GPL v2以上です。
46-
47-○謝辞
48-通信の謎な仕様はh8writeを参考にしました。作者の三岩氏に感謝します。
49-
50-○履歴
51-2005/04/18 誤差計算修正。コードの整理。
52-2005/02/03 シリアルロック追加、いくつかのバグを修正。
53-2005/02/02 初期リリース
54-
55-Yoshinori Sato <ysato@users.sourceforge.jp>
--- a/main.c
+++ b/main.c
@@ -35,7 +35,7 @@ const static struct option long_options[] = {
3535
3636 static void usage(void)
3737 {
38- puts(PROGNAME " [-p serial port][-f input clock frequency][-b][--userboot][-l] filename");
38+ puts(PROGNAME " [-p port][-f input clock frequency][-b][--userboot][-l][-V] filename");
3939 }
4040
4141 /* read raw binary */
--- a/serial.c
+++ b/serial.c
@@ -78,7 +78,7 @@ static int setbaud(int bitrate)
7878 return 1;
7979 }
8080
81-/* connection target CPU */
81+/* connect to target CPU */
8282 static int connect_target(void)
8383 {
8484 int try1;
--- a/usb.c
+++ b/usb.c
@@ -1,3 +1,13 @@
1+/*
2+ * Renesas CPU On-chip Flash memory writer
3+ * USB I/O
4+ *
5+ * Yoshinori Sato <ysato@users.sourceforge.jp>
6+ *
7+ * This file is subject to the terms and conditions of the GNU Lesser
8+ * General Public License version 2.1 (or later).
9+ */
10+
111 #include <usb.h>
212 #include <stdio.h>
313 #include "h8flash.h"
@@ -6,18 +16,26 @@
616
717 static struct usb_dev_handle *handle;
818
9-static int usb_send_data(const unsigned char *buf, int len)
19+/*
20+EP1: bulk out
21+EP2: bulk in
22+*/
23+
24+/* send byte stream */
25+static int send_data(const unsigned char *buf, int len)
1026 {
1127 return usb_bulk_write(handle, 0x01, (const char *)buf, len, USB_TIMEOUT);
1228 }
1329
14-int usb_read_byte(unsigned char *data)
30+/* receive 1byte */
31+static int read_byte(unsigned char *data)
1532 {
1633 static unsigned char buf[64];
1734 static unsigned char *rp;
1835 static int count = 0;
1936
2037 if (count == 0) {
38+ /* refilling */
2139 int r = usb_bulk_read(handle, 0x82, (char *)buf, 64, USB_TIMEOUT);
2240 if (r < 0)
2341 return r;
@@ -29,7 +47,7 @@ int usb_read_byte(unsigned char *data)
2947 return 1;
3048 }
3149
32-/* connection target CPU */
50+/* connect to target CPU */
3351 static int connect_target(void)
3452 {
3553 unsigned char req = 0x55;
@@ -57,6 +75,7 @@ static struct port_t usb_port = {
5775 .close = port_close,
5876 };
5977
78+/* USB port open */
6079 struct port_t *open_usb(unsigned short vid, unsigned short pid)
6180 {
6281 struct usb_bus *busses;
@@ -73,10 +92,9 @@ struct port_t *open_usb(unsigned short vid, unsigned short pid)
7392 for (dev = bus->devices; dev; dev = dev->next) {
7493 if ((dev->descriptor.idVendor == vid) &&
7594 (dev->descriptor.idProduct == pid))
76- goto found;
95+ break;
7796 }
7897 }
79-found:
8098 if (dev == NULL)
8199 return NULL;
82100 handle = usb_open(dev);