RXマイコン用、フラッシュ書き込みプログラム(RX63T)

先日、gcc-4.9.3 を使って、R8C の開発環境を整えた。

RXマイコンにおいても、gcc-4.9.3 で、構築でき、そのコンパイラでビルド
したプロジェクトも問題無く動作する事を確認した。

以前に R8C 用のフラッシュ書き込みプログラムを作成して、もはや、ルネサス
のツールを一切利用する事なく、オープンソースだけで開発出来るようになった。
※Mac-Book でも、R8C マイコンの開発が可能となった。

RXマイコン用のフラッシュ書き込みツールも、ブート時のプロトコルが公開さ
れている為、実装は可能だと思っていた。
そこで、RX63T のハードウェアーマニュアルに記載されたプロトコルを理解しな
がら、少しづつ、機能を実装して、書き込みまで確認出来たので、とりあえず公開
する。
同じルネサスでも、R8C とは、構成が違うので、基本的な部分以外は書き直しとな
った。
※RX63T の仕様を元にしているが、他のRXシリーズにも、そのまま、又は少しの
修正で使えると思う。

いつものように GitHub に公開している。
※R8C のソースと重複するソースコードが含まれているが、多少更新している。
そのうち、重複する部分は、別にまとめておきたいと思う。

—–
まず参考にした資料は、「RX63Tグループ ユーザーズマニュアル ハードウェア編」
で、ルネサスからダウンロードできる。

細かい仕様は、マニュアル「40.8 ブートモード」に詳細に書かれているので、それを
理解すれば、誰でも実装する事が出来る。
16ビットや32ビットの値を送る場合や、読み込む場合は、ビッグ・エンディアン
になっているようだ。
※これは、マニュアルには書かれていなかった。

現在使っている、デバイスは、RX63Tの64ピン版で、USBを持たないので、
シリアル通信に限定している。

また、コードプロテクト機能を使わない場合でも、フラッシュ書き込みモード(P/E)
に移行すると、内部フラッシュは自動で消去されてしまう為、内部フラッシュの状態を
読み出す必要がある場合は、必ず、プロテクトIDを設定する必要があるようだ。

ソースコードをマルチプラットホームにしたいので、RS232C の入出力は、「termios.h」
を使って実現しているので、MSYS2 環境でコンパイルする必要があり、また、boost を
使っている為、「/usr/local/」以下に boost のソースを配置しておく必要がある。
※ライブラリーを使っていないのでヘッダーだけあれば良い。
MacOS や Linux でもコンパイルする事が出来ると思う。
※現状では「termios.h」は、MSYS2 環境にのみ存在する。
※ MSYS2 環境では、boost はインストーラーで管理していないみたい。
※ボーレートの設定範囲は、環境に依存する様なので、どの環境でもサポートされている
ボーレートのみを使っている為、上限は、115200 となっている。

IMG_0782

フラッシュへの書き込みは、必ず256バイトのブロック毎に行う仕様で、ベリファイの
コマンドは無いので、比較を行う場合は、P/E モード中に読み出して、比較する必要がある。

コードプロテクト行った場合は、フラッシュの消去は自動では無いので、書き込む前に消去
を行う必要がある。

まだ、未完成ではあるが、とりあえず、RX63T に、書き込めるようになったので、とりあえず
公開しておく。

カテゴリー: ソフトウェアー・エンジニアリング, 電子工作な日々 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください