H8/3069F writer for KOZOS - kz_h8write
リビジョン | 6ea9e6f5ba1192fbc6c3231f5ba8c8bf379d6a83 (tree) |
---|---|
日時 | 2012-12-18 15:50:52 |
作者 | Shinichiro Nakamura <shinta.main.jp@gmai...> |
コミッター | Shinichiro Nakamura |
Bug fixed.
@@ -52,9 +52,13 @@ serial.h シリアルポートライブラリのインターフェー | ||
52 | 52 | 引数の指定方法を書籍で使っている範囲でh8writeと互換性をとるようにした。 |
53 | 53 | 書籍では、-3069、-f20、MOTファイル名、シリアルデバイスが指定されている。 |
54 | 54 | |
55 | +2012/12/18 Version 0.2.0 | |
56 | + 書き込み対象motファイルに依存して起きるバグを修正した。 | |
57 | + | |
55 | 58 | ======================================= |
56 | 59 | 謝辞 |
57 | 60 | ======================================= |
58 | 61 | やまちゅうさん |
59 | 62 | Version 0.0.1でおきる問題について詳細なレポートを頂きました。 |
60 | - | |
63 | +蔵花たけしさん | |
64 | + Version 0.1.0でおきる問題について詳細なレポートを頂きました。 |
@@ -57,6 +57,12 @@ | ||
57 | 57 | #define SERIAL_TIMEOUT_MS 500 |
58 | 58 | |
59 | 59 | /** |
60 | + * @brief 切り上げ処理。 | |
61 | + * @details 数値AをBで切り上げる。 | |
62 | + */ | |
63 | +#define ROUND_OUT(A,B) ((((A)+((B)-1))/(B))*(B)) | |
64 | + | |
65 | +/** | |
60 | 66 | * @brief ユーザオプション構造体。 |
61 | 67 | */ |
62 | 68 | typedef struct { |
@@ -530,7 +536,7 @@ enum ErrorCode program(SERIAL *serial) | ||
530 | 536 | * 128バイト書き込みを実行する。 |
531 | 537 | */ |
532 | 538 | fprintf(stderr, "Programming:"); |
533 | - for (int i = 0; i < (int)memory_lastaddr; i += 128) { | |
539 | + for (int i = 0; i <= (int)ROUND_OUT(memory_lastaddr, 128); i += 128) { | |
534 | 540 | unsigned char buf[256]; |
535 | 541 | unsigned char chksum = 0; |
536 | 542 | buf[0] = 0x50; |
@@ -740,6 +746,13 @@ int main(int argc, char **argv) | ||
740 | 746 | } |
741 | 747 | |
742 | 748 | /* |
749 | + * メモリイメージを初期化する。 | |
750 | + */ | |
751 | + for (int i = 0; i < sizeof(memory_image); i++) { | |
752 | + memory_image[i] = 0xff; | |
753 | + } | |
754 | + | |
755 | + /* | |
743 | 756 | * motファイルを読み込む。 |
744 | 757 | */ |
745 | 758 | mot_t mot; |