◆ CQ出版 インタフェース 2010/6月号 付録基板CQ-FRK-SH2A SH-2AにMESを移植する ◆
5-8 MES対応 Tiny BASICのソースコードを公開します。CQ-FRK-SH2A付録基板のみで動作可能です。
HOME 製品情報 製品販売 開発実績 会社紹介 マイコンBlog
◆ CQ出版 インタフェース 2010/6月号 付録基板 SH-2AにKOZOSを移植する ◆
1.手始めに、RTCを動かそうと思いSH4基板で使用実績のある32.768KHz(負荷容量12.5pF)の水晶発振子
を取り付けても、動作しないので、抵抗器R16(1MΩ)を外したところ、無事発振しました。
2.外部バス(8bit設定)動作確認のためにFPGAボードMAI-SP3E-D64-M4を接続する。
FPGAボード接続図
MAIPRJ-CQSH2A_MAI-SP3E-D64.pdf
8bit IO Port X 4 の回路図
FPGA PIO8回路図
FPGA PIO8回路図.pdf
仮想LED表示器
3.CQ-FRK-SH2A FPGA PIO8サンプルプログラム
FPGA PDポートの内容をFPGA PA,PB,PCに転送する。
割り込みは使用しない。
SH7262_PIO8_OUT1.zip
タイマー割り込みサンプル
SH7262_PIO8_TIMER_OUT1.zip (FPGAボードがなくても動きます。)
ROM_UpDate0517によりCMT CLK ENABLE追加しました。
タイマー割り込みサンプル2
SH7262_PIO8_TIMER_OUT2.zip
4.USB仮想シリアルS-Recordフォーマットローダ
CQ出版 インタフェースUSB仮想シリアル・サンプル・プロジェクトと
MURAMATSU Atsushi / 村松 篤 様 作成のSH3 用のモニタ・プログラム
のmon_load.cを利用して、USB仮想シリアルS-Record フォーマットローダを作成する。
mon_load.h
mon_func.h
mon_func_tbl.h
mon_load.c
mon_func.c
mon_func_tbl.c
以上のファイルをまとめた物
mon_load.zip
mon_load.c,mon_func.c,mon_func_tbl.cをp_main.cのあるディレクトリにコピーし
USB仮想シリアル・サンプル・プロジェクトに追加する。
ロードしたプログラム(ユーザプログラム)からUSB入出力(USB仮想シリアルローダのUSB入出力関数をコール)
できるように 0xFFF89F80 CMON_FUNC_TBL セクションを追加します。
ユーザプログラムから,0xFFF89F80番地を参照することにより、USB入出力関数をコールします。
セクションの設定
P_Main関数を下記のように修正し、ビルドすれば、
USB仮想シリアルS-Recordローダを作成できる。
#include "mon_load.h"
void P_Main(void)
{
unsigned long adr;
unsigned char c;
while(1)
{
c = Console_Getch();
if( c == 0x0D )
{
if(1 == monitor_load(&adr));
{
adr = 0x1C000000;
set_imask(0x000000F0);
INTC.IPR10.BIT._USB = 0;
Restart((void *)adr);
}
}
}
}
修正の追加(2010/09/14)
_Restart:
MOV.L @R4+,R0 ; ジャンプ先アドレス取得
LDC R4,VBR ; ユーザVBR設定 VBR+4になっている。
restart.srcの一部を以下のように修正
ユーザVBR設定
ジャンプ先アドレス取得
の順番にする。
_Restart:
LDC R4,VBR ; ユーザVBR設定
MOV.L @R4+,R0 ; ジャンプ先アドレス取得
CQ出版 インタフェースROM化ユーザ・プログラム書き込み用プログラム
を利用してビルドしたUSB仮想シリアルS-RecordローダをSPI ROM後半32Kbyteに書き込みます。
USB仮想シリアルS-Recordローダから起動できるサンプルプログラム
SH7262_USB_OUT1.zip (FPGAボードがなくても動きます。)
SH7262_USB_OUT1サンプルプログラムはUSB仮想シリアルS-RecordローダのUSB関係の関数、USB割り込み関係の関数をコールしますので
このローダ以外から起動させないで下さい。
サンプルプログラムからUSBを扱うことができるようになっています。
JPP2にジャンパーPINを挿し,リセットでUSB仮想シリアルS-Recordローダを起動します。
TeraTermのシリアルポートをセットアップ
シリアルポートをセットアップ
Transmit Delayに 1 ms/lineをセットする。
サンプルSH7262_USB.motをロードし起動する。
サンプルをロードし起動する。
Windows XP付属ハイパータームで同様の設定をすれば使用可能です。
ハイパータームはTransmit Delayの設定はありません。
5-1 MES対応USB仮想シリアルS-Recordフォーマットローダ
4のUSB仮想シリアルS-Recordフォーマットローダはスタートアドレスコード(S804000600F5)で
ロードを終了するため、MESをロードできません。
ローダ(mon_load.c)を以下ように変更します。
スタートアドレスコードを検出後
0xFFデータ(S2140483CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA)を検出して終了とする。
mon_load.cの変更後のファイル名はmes_load.cとする。
mes_load.h
mes_func.h
mes_func_tbl.h
mes_load.c
mes_func.c
mes_func_tbl.c
以上のファイルをまとめた物
mes_load.zip
5-2 MES対応USB仮想シリアルS-RecordフォーマットローダにSCIF2 受信割り込みに対応させる。
USB仮想シリアル・サンプル・プロジェクトはUSB及びSCIF2にも
対応してますが、SCIF2は送信及び受信が割り込みに対応しません、
送信は割り込みを使用してなくても、特に問題はありませんが、
受信は割り込みに対応ないと、文字抜けする可能せいがあるため、
割り込み処理プログラムを追加します。
scif2_rx.c
5-3 MES対応USB仮想シリアルS-Recordフォーマットローダは
1.USB仮想シリアル
2.SCIF2シリアル
3.SD-CARDボード(MAI-XC95-SD)
に対応しました。
SD-CARDボード(MAI-XC95-SD)からのBoot機能を追加しました。
以上の機能を32Kbyte以内で作成できましたので、
USER ROM領域に書き込んで使用可能です。
5-4 MES対応USB仮想シリアルS-Recordフォーマットローダの
バイナリファイルとMESのDiskイメージファイルを公開します。
MES対応USB仮想シリアルS-Recordフォーマットローダ (MESローダ)
USERROM.BIN
MES対応USB仮想シリアルS-Recordフォーマットローダ ソース
MESのDiskイメージファイル
MESH2ACQ.mot
注:操作をミスをするとROMモニターを壊す可能性がありますので、ROMモニターの復旧手段をあらかじめ用意しておいたほうがよいです。
ROMモニターを壊れても一切保証しません。
私は、2度壊しました。
MESローダ USERROM.BINを
CQ出版 インタフェースROM化ユーザ・プログラム書き込み用プログラム
を利用してビルドしたUSB仮想シリアルS-RecordローダをSPI ROM後半32Kbyteに書き込みます。
書き込みが完了するとLEDが点滅します。
MESのDiskイメージファイルには
P.IGMONさんのサイト h83069f
よりDownLoad fload2.exeをUSB仮想シリアル対応に変更したfload2A.exeが含まれています。
P.IGMONさん、改造品の再配布を許可いただきありがとうございます。
fload2Aソース
5-5 MES対応USB仮想シリアルS-Recordフォーマットローダの起動方法
USBコネクタを抜き電源OFFにする。
JPP2にジャンパープラグを差込み、
USBコネクタを挿し込み電源ONにする。
ハイパーターミナルを起動させ。
m or Mをキーインすると下記のような表示が出ます。
転送(T)>テキストファイルの送信(T)
ファイル MESH2ACQ.MOTを選択して送信
送信時間は約2分必要です。
f or FをキーインするとSD-CARD起動します。
SD-CARDからの起動は約10秒です。
キー入力が約10秒間ない場合、自動的にFを
入力してSD-CARDから起動します。
送信が完了すると、MESが起動します。
5-6 MES Ver2.5r17起動画面
USB仮想シリアルでパソコンと接続
基板単体でも使用可能です。
5-7 簡単なユーザアプリのコンパイルと実行
Hello.c
Hello.cba
C:\wingcc\Helloのディレクトリを作成する。
ディレクトリにHello.c、Hello.cbaをコピーし
設定ファイルUser_SH2A_coff.xmlを使用してコンパイルする。
Hello.exe
fload2A.exeを使用してRAMディスクに書き込む。
>MES fload2A.exe Hello.exe
ハイパーターム
転送(T)>ファイルの送信(S) プロトコル Xmodemに設定
してファイルを送信する。
>MES Hello.exe
で実行
5-8 MES対応 Tiny BASICのソースコードを公開します。
6502 と TinyBASIC Windows 版 Tiny BASIC まに:まに:様 作成のTinyBASIC.cppをMESに対応するようにC言語に変更しました。
まに:まに:様より再配布の承諾をいただきました。
ありがとうございます。
TnyBASIC_OUT2.zip
実行ブレークkeyをESC-> CTRL_Cに変更
TnyBASIC_OUT3.zip
設定ファイルUser_SH2A_coff.xmlを使用してコンパイルする。
fload2A.exeを使用してRAMディスクに書き込む。
>MES fload2A.exe TnyBASIC.exe
ハイパーターム
転送(T)>ファイルの送信(S) プロトコル Xmodemに設定
してファイルを送信する。
>MES TnyBASIC.exe
で実行
>10 PRINT "Hello Tiny BASIC World"
>20 END
>run
5-9 下記のように記述すれば COUNT.BASをロードランするように機能を追加
MES>TnyBASIC.exe COUNT.BAS
TnyBASIC_OUT5.zip
5-10
整数演算を32bitに変更
TnyBASIC_OUT6.zip
6.SD-CARDボードMAI-XC95-SDを接続する。
7.LANボードMAI-AX88を接続する。
8.USB HOSTボードMAI-SL811を接続する。
9.USB ターゲットボードMAI-USBN9604を接続する。
注:このサイトのソフト使用によるROMモニターの破損は保証しません。
自己責任でお願いします。
MES対応USB仮想シリアルS-Recordフォーマットローダは
MURAMATSU Atsushi / 村松 篤 様 作成のSH3 用のモニタ・プログラム
に
USB仮想シリアル・サンプル・プロジェクト
Interface2010年9月号 SD/MMCカード対応ブート・ローダ 著者 松浦様
を組み込むことにより作成できました。
USB仮想シリアル・サンプル・プロジェクト ルネサス提供
Interface2010年9月号 SD/MMCカード対応ブート・ローダ 著者 松浦様
SD/MMCカード対応ブート・ローダ
CQ出版Interface編集部経由で
「USB仮想シリアル・サンプル・プロジェクト
SD/MMCカード対応ブート・ローダ先行アップロード
を変更して
三岩 様 作成のMESをCQ-FRK-SH2Aに
移植しました。
変更したソフトのバイナリファイル、及びソースファイルを
公開、再配布をしたいのですが、許可をいただきたいのですが」
で問い合わせたところ、再配布の承諾を頂ました。
MESのDiskイメージファイルには
P.IGMONさんのサイト h83069f
よりDownLoad fload2.exeをUSB仮想シリアル対応に変更したfload2A.exeが含まれています。
P.IGMONさん、改造品の再配布を許可いただきありがとうございます。
MESは三岩氏が作成したGPL2ライセンスのOSです。
Micro Embeded System/MES Ver 2.5のサイト
CQ出版社様 、インタフェース著者の皆さん、松浦様、村松 篤 様 P.IGMONさん 三岩様ありがとうございます。
関連情報
MAI-XC95 CPLDボードをバファとして使用してARM JTAGデバッガを作る。
モニターを壊したときに役立つ情報
FT2232CでHJ-Link/USBのソフトを動かす
BCC55は『猫でもわかるC言語プログラミング』付録CD-ROMより入手しました。
mkbcc.batを下記のようにIncludeとlibのパスを追加してコンパイルしました。
path=C:\Borland\BCC55\Bin;
bcc32 -c -WD -Ic:\borland\bcc55\include ftd2xx.cpp
ilink32 -r -Tpd -Lc:\borland\bcc55\lib ftd2xx.obj c0D32.obj, ftd2xx.dll, ftd2xx.map, import32.lib cw32mt.lib, ftd2xx-bcc.def,
IMPLIB ftd2xx ftd2xx.dll
Windows2000の場合
C:\WINNT\system32にftd2xx.dllとftd2xx_org.dllをコピーする。
シリアル・フラッシュROMのアップデート手順はインターフェース2010/6月号 P113を参照して下さい。
基板の改造は自己責任でお願いします。
注:このサイトのソフト使用によるROMモニターの破損は保証しません。
自己責任でお願いします。
各種基板の組み合わせにより試作品及び小ロット品の
開発をバックアップいたします。