RX631書き込みに対応する(雑)

以前こちらで RX220 用の書き込み内容等々について書きました。一部情報が古いのですがリンク先の上部リンクも含めて御覧くださいね。

さて、本記事では RX631 の書き込みについて、rx_prog の改造方法について示します。モチベはRTの青木さんがこちらで記事にし始めているからです。青木さんがどうやるか楽しみですが、僕は僕なりにまとめておきます。

基本的には以前の記事通りです。異なる点のみ示しますね。イチから書くのは面倒なので

rx631_protocol.hpp

コピーするファイルは当然 RX63T のものですが、当然ながらファイル名は RX631 仕様にします。

$ cp rx63t_protocol.hpp rx631_protocol.hpp

rx_prog.hpp

以下ではもともと RX220 用に追加してあります。RX220 を使わない場合は除外して OK です。

30行目付近

using に追加。

        using protocol_type = boost::variant<rx63t::protocol, rx24t::protocol, rx64m::protocol, rx220::protocol, rx631::protocol>;

143行目付近

条件分岐を追加する。

            if(rx.cpu_type_ == "RX63T") {
                protocol_ = rx63t::protocol();
            } else if(rx.cpu_type_ == "RX24T") {
                protocol_ = rx24t::protocol();
            } else if(rx.cpu_type_ == "RX64M") {
                protocol_ = rx64m::protocol();
            } else if(rx.cpu_type_ == "RX220") {
                protocol_ = rx220::protocol();
            } else if(rx.cpu_type_ == "RX631") { // ADD
                protocol_ = rx631::protocol();
            } else {
                std::cerr << "CPU type missmatch: '" << rx.cpu_type_ << "'" << std::endl;
                return false;
            }

main.cpp

420行目付近

       if(rx.cpu_type_ == "RX631") {
            rx.master_ = 1200;  // 12.00MHz
            rx.sys_div_ = 8;    // x1 (96MHz)
            rx.ext_div_ = 4;    // x1 (48MHz)
        }

rx_prog.conf

秋月の 100pin を使う方は以下のように追加。その他の人は自分のものにあわせてください。まあなくてもいいですが。

R5F5631FD {
    group = "RX631"
    clock = 12000
    divide_sys = 8
    divide_ext = 4
    rom = 2048K
    ram = 256K
    data = 32K
    comment = "; RX631 Flash:2048K DataFlash:32K RAM:256K"
    rom-area  = FFE00000,FFFFFFFF
    data-area = 00100000,00101FFF
    ram-area  = 00000000,00003FFF
}

書き込み

いい感じにやりましょ。

$ ~/RX/rxprog/rx_prog -d RX631 -s 19200 --port=/dev/tty.usbserial-AI0454E0 -w path_to_mot_file --verbose

というわけで終了です。色んな人がこのブログを見てくれているらしい。ありがたやありがたや。