From: Shinichiro Nakamura Date: Tue, 18 Dec 2012 06:50:52 +0000 (+0900) Subject: Bug fixed. X-Git-Tag: v0.2.0~1 X-Git-Url: http://git.osdn.net/view?p=kz-h8write%2Fkz_h8write.git;a=commitdiff_plain;h=6ea9e6f5ba1192fbc6c3231f5ba8c8bf379d6a83 Bug fixed. --- diff --git a/doc/README.txt b/doc/README.txt index 08e73a9..9cfca87 100644 --- a/doc/README.txt +++ b/doc/README.txt @@ -52,9 +52,13 @@ serial.h シリアルポートライブラリのインターフェー 引数の指定方法を書籍で使っている範囲でh8writeと互換性をとるようにした。 書籍では、-3069、-f20、MOTファイル名、シリアルデバイスが指定されている。 +2012/12/18 Version 0.2.0 + 書き込み対象motファイルに依存して起きるバグを修正した。 + ======================================= 謝辞 ======================================= やまちゅうさん Version 0.0.1でおきる問題について詳細なレポートを頂きました。 - +蔵花たけしさん + Version 0.1.0でおきる問題について詳細なレポートを頂きました。 diff --git a/src/kz_h8write.c b/src/kz_h8write.c index f0d09fb..753e36f 100644 --- a/src/kz_h8write.c +++ b/src/kz_h8write.c @@ -57,6 +57,12 @@ #define SERIAL_TIMEOUT_MS 500 /** + * @brief 切り上げ処理。 + * @details 数値AをBで切り上げる。 + */ +#define ROUND_OUT(A,B) ((((A)+((B)-1))/(B))*(B)) + +/** * @brief ユーザオプション構造体。 */ typedef struct { @@ -530,7 +536,7 @@ enum ErrorCode program(SERIAL *serial) * 128バイト書き込みを実行する。 */ fprintf(stderr, "Programming:"); - for (int i = 0; i < (int)memory_lastaddr; i += 128) { + for (int i = 0; i <= (int)ROUND_OUT(memory_lastaddr, 128); i += 128) { unsigned char buf[256]; unsigned char chksum = 0; buf[0] = 0x50; @@ -740,6 +746,13 @@ int main(int argc, char **argv) } /* + * メモリイメージを初期化する。 + */ + for (int i = 0; i < sizeof(memory_image); i++) { + memory_image[i] = 0xff; + } + + /* * motファイルを読み込む。 */ mot_t mot;