◆ CQ出版 インタフェース 2010/6月号 付録基板CQ-FRK-SH2A SH-2AにMESを移植する ◆

5-8 MES対応 Tiny BASICのソースコードを公開します。CQ-FRK-SH2A付録基板のみで動作可能です。

超小型,超低価格SH2A デュアルコアCPUボード MAI-SH2A-DUAL-MX1 新発売記念特価\13,980円

超小型,超低価格SH4A SH7730 CPUボード 数量限定特価 MAI-SH4A-MX1 新発売記念特価\9,980円


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モニターの破損は保証しません。 自己責任でお願いします。 各種基板の組み合わせにより試作品及び小ロット品の 開発をバックアップいたします。

◆日本一安いSH4CPUボード◆を作っています。 オンラインショップで販売中 オンラインショップ//www.mai-denshi-shop.co.jp
エムエーアイ電子有限会社 本多 弘 愛知県豊橋市花田町字越水73-2 (2B) TEL 0532-32-5118 TEL 050-3424-9251 お問い合わせメール: メール:mai@inc.email.ne.jp HOMEぺ−ジ//www.mai-denshi.co.jp