SH-2A SH7262でTOPPERS/JSPを走らせる
TOP > チョロっとμITRON > SH-2A SH7262でTOPPERS/JSPを走らせる

雑誌Interface 2010年6月号にはルネサスエレクトロニクス社製の SH7262 が付属しています。

この基板を動かすには部品を実装します。
若松通商でセット販売されています。
SH-2A マイコン基板周辺部品一式

付属SH-2Aマイコン基板と接続するには、

拡張ベースボード CQBBまたはCQBB-ELがあれば、SCIFが使えます。

1. 開発環境の用意

1.1. ターゲット側の準備

付属基板のシリアル・フラッシュROM には、あらかじめプログラムが書き込まれており、
まず、それをアップデートする必要があります。

付属SH-2A基板特設ージSH-2Aマイコン基板スタートアップ・ファイルにアップデートファイルがあります。

ただ、書き込むには HEW を使うので、ソフトウェア開発ツールの入手方法を参考にして下さい。

また、GCC対応シリアル・ダウンローダROM化ユーザ・プログラム書き込み用プログラムもそれぞれ必要です。

1.2. ホスト側の準備

1.2.1. Cygwin のインストール

Windows を開発環境にする場合、Cygwin を利用するのが簡単でしょう。

Cygwin をインストールする時に、
  1. binutils
  2. gcc
  3. perl
を忘れないようにします。

1.2.2. SH-2A用のコンパイラ

SH-2A用のコンパイラ(sh-hitachi-elf)は
gnu_sh-hitachi-elf_cygwin-2.95.3-1.tar.gz
です。

展開する先(フォルダ)を Cygwin から見える位置にしておきます。

1.2.3. TOPPERS/JSP のソース

SH-7262用の TOPPERS/JSP のソースは、
jsp-1.4.3_cq_frksh2a-20100409.tar.gzです。

1.3. 環境・ソースの修正

1.3.1 TOPPERS/JSPの修正

Cygwin の GCC のバージョンは現在(2010/07/06) 4.4 ですが、ヘッダファイルの読み込み位置が変更されているため、
jsp/cfg の make に失敗します。
そこで、TOPPERS/JSP のソースを修正する必要があります。

jsp/cfg/base/directorymap.h

--- directorymap.org.h2010-07-06 19:32:38.625000000 +0900 +++ directorymap.h2010-07-06 19:35:30.078125000 +0900 @@ -56,6 +56,7 @@ #include <map> #include <iostream> +#include <cstring> class Directory : public std::map<std::string, Directory *> { private: jsp/cfg/base/fc_binutils.cpp --- fc_binutils.org.cpp2010-07-06 19:40:41.296875000 +0900 +++ fc_binutils.cpp2010-07-06 19:42:50.515625000 +0900 @@ -51,6 +51,7 @@ #include <cstdio> #include <cstdlib> +#include <cstring> #define _isspace(x) isspace(x) #define _isprint(x) isprint(x) jsp/base/singleton.h --- singleton.org.h2010-07-06 19:48:12.062500000 +0900 +++ singleton.h2010-07-06 19:47:57.015625000 +0900 @@ -51,6 +51,7 @@ #include <new> #include <stdexcept> +#include <cstdlib> /* * シングルトンパターン 実装

つまり、インクルード文を追加します。

1.3.2. Cygwin の GCC のダウングレード

上記の対策をしても、Cygwin の GCC のビルドオプションが変更されているため、
結局、コンフィギュレータのビルドに失敗します。
仕方ないので、GCC のバージョンを 3.3.x へ落としました。

/etc/alternativesで、
% rm g++
% ln -s /usr/bin/g++-3.exe g++
% rm gcc
% ln -s /usr/bin/gcc-3.exe gcc
つまり g++ と gcc の symlink を g++-3 gcc-3 に貼り直します。 こちらで報告されています。

2. ビルド

2.1. TOPPERS/JSP の tool を作成


% cd jsp/cfg
% make realclean
% make depend
% make

2.2. 環境構築

% cd jsp
% mkdir 00NEW
% cd 00NEW
% ../configure -C sh2 -S cq_frksh2a
つまり、jsp の下に適当なディレクトリを作り、そこから ../configure します。
cq_frksh2a はターゲットボード名で、 jsp/config/(CPU名)/ 以下にあるディレクトリ名のことです。

これで、Makefile sample1.c sample1.h sample1.cfg ができます。

2.3. 実行ファイルのコンパイル

2.3.a 方法その1

% make depend
% make
です

この基板の場合、ダウンロードするファイルはバイナリファイルなので、
% make jsp.bin
して、 最終的に jsp.bin を作成します。

2.3.b 方法その2

Makefile を *** Makefile.org2010-07-08 22:03:31.000000000 +0900 --- Makefile2010-07-08 21:38:05.890625000 +0900 *************** *** 177,185 **** # # ターゲットファイル(複数を同時に選択してはならない) # ! all: $(OBJFILE) #all: $(OBJNAME).out ! #all: $(OBJNAME).bin #all: $(OBJNAME).srec # --- 177,185 ---- # # ターゲットファイル(複数を同時に選択してはならない) # ! #all: $(OBJFILE) #all: $(OBJNAME).out ! all: $(OBJNAME).bin #all: $(OBJNAME).srec # にすると、
% make depend
% make
で、最終的な jsp.bin が作成できます。

3. フラッシュROM への書き込み

  1. JPP2ピンをショートさせた状態で JPP1 をショート(リセット)すると
    基板上の仮想シリアル・ダウンローダが動きます。
  2. TeraTerm 等のシリアル通信を起動します。

  3. 設定は下記です。
  4. TeraTerm 上で、ub と入力すると、ダウンロード・モードに入ります。
  5. ファイル送信 で jsp.bin を バイナリファイル欄にチェックを入れて送信します。
  6. 書き込みが完了すると、プログラムが実行されます。

TOP > チョロっとμITRON > SH-2A SH7262でTOPPERS/JSPを走らせる
http://www.yumi-chan.com/