CQ出版社のトップページへ戻る CqREEKのページへ戻る |
|
ここでは,よく寄せられるCQ RISC評価キット/Vr4300に関する質問についてお答えします.
Q1.
CPUボードの仕様には“ISAバス準拠の外部バスを搭載”となっていますが,このISAバスはPC/AT互換機のISAバスとどの程度の互換性がありますか? またメモリマップはどうなっていますか?A1.
基本的には,メモリ空間(16Mバイト)とI/O空間(64Kバイト),割り込みに対応しています.DMA転送や外部バスマスタには対応していません.本CPUボードのISAバスについては,Interface 1998年9月号に“Vr4300 CPUボードのISAバス研究”という記事を掲載しています.こちらを参照してください.
なお,メモリマップについてはこちらを参照ください.
Q2.
ボードにRS-232-Cインターフェースがついているようですが,これを使ったアプリケーションは製作可能でしょうか?A2.
CPUボードに実装されているRS-232-Cコネクタは,デバッガであるPARTNER-CQ版と通信するために使用するので,デバッグと同時にアプリケーションで使用することは難しいと思われます.
Vr4300 CPUボードにはISA準拠の拡張バスがあるので,このバス上にPC/AT互換機用に市販されているシリアル増設カードを実装し,それをアプリケーションで使用するシリアルポートとするのが開発しやすいと思われます.
なお,CPUボード搭載のRS-232-Cインターフェースを、デバッグと同時にアプリケーションで使うための対策を解説した記事を,近号のInterface誌上で掲載したいと考えています.
Q3.
付属のコンパイラexeGCC-CQ版はROM化をサポートしていますか?A3.
CqREEK/Vr4300は,CPUボードにROMエミュレーション機能などがありません.よってROM領域に対してユーザーのプログラムをダウンロードしたり,ブレークポイントを設定してデバッグを行うことができず,DRAM領域に対してのみ行うことができます.このようにデバッグがDRAM領域に対してしか行えないので,同梱されているコンパイラexeGCC-CQ版もROM化をサポートしていません.
しかし疑似ROM化という手法により,ROM化と同等の使い勝手を実現可能です.Q4(下)をご参照ください.
またexeGCC-CQ版およびexeGCC評価版に関する質問のQ2もご参照ください.
Q4.
SH-1やV821などで用意されていた疑似ROM化ツールなどは用意されないのでしょうか?A4.
お待たせしました.ダウンロードコーナに準備しましたのでダウンロード可能です.添付の取扱説明書に従ってお使いください.
なお疑似ROM化の概要についてはexeGCC-CQ版およびexeGCC評価版に関する質問のQ6をご参照ください.
Q5.
ボードを見ると,CN6という用途不明のコネクタを実装する部分がありますが,これはいったい何ですか? 使い方を説明してください.A5.
このコネクタはCqREEK/Vr4300では使用しません.というより,使用できません.
CPUのアドレス線や信号線の一部がここに接続されているので,ボードを改造する記事などの場合には,はんだ付けのしやすさからここから信号線を取り出す場合もあるかと思いますが,ここにコネクタを接続して何かをするということは,CqREEKシリーズでは想定されていません.
Q6.
CqREEK/Vr4300ではアセンブラによるプログラム開発は可能ですか?A6.
exeGCC-CQ版およびexeGCC評価版に関する質問のQ4をご参照ください.
CqREEK/Vr4300では標準で,タイマー割り込みによりCPUボード搭載の7セグメントLEDを点灯制御するサンプルプログラムが添付されています.この割り込み処理でアセンブラを使っているので,このプログラムを参考にされることをおすすめします.
Q7.
動作環境が Windows95/98 となっていますが,WindowsNT では使用できないのでしょうか?A7.
デバッガとコンパイラが正式にサポートしているOSは,Windows95/98のみです.
Q8.
COM1にモデムを接続したままCqREEKをインストールし,PARTNER-CQ版を起動するとハングアップします.PARTNER-CQ版はCOM1でもCOM2でも使用できるはずではなかったのですか?A8.
PARTNER-CQ版 & PARTNER-J/Win評価版に関する質問のQ2をご参照ください.
Q9.
exeGCC-CQ版のライブラリ関数にはどのようなものがあるのでしょうか? また,printfなどの関数がある場合は,どこに対して表示されますか?A9.
exeGCC-CQ版およびexeGCC評価版に関する質問のQ3をご参照ください.なお,Vr4300はメモリマップドI/O方式のため,x86系コンパイラにあるような inp/outp のような関数は必要ありません.
Q10.
exeGCC-CQ版(Vr4300)ではx86系コンパイラにあるようなinterrupt修飾子はないのでしょうか? 割り込みを使うにはどうすればよいのでしょうか?A10.
exeGCC-CQ版およびexeGCC評価版に関する質問のQ5をご参照ください.
Q6にもあるように,CqREEK/Vr4300では標準で,タイマー割り込みによりCPUボード搭載の7セグメントLEDを点灯制御するサンプルプログラムが添付されています.この割り込み処理を参考にされることをおすすめします.
Q11.
CPUボードに実装されているROMにはホストと通信するためのモニタが格納されていると思いますが,デバッガを使わない場合はこのモニタROMを外してしまい,自分の開発したプログラム書き込んだ別のROMを入れても問題ないでしょうか?A11.
まったく問題ありません.若干注意が必要なのは,モニタROMが完全になくなりますから,デバッグ時と同じような環境にするにはシステム・レジスタ関連の設定を自前のプログラムで面倒を見る必要があります.取扱説明書のp.26のような初期化ルーチンを入れれば,デバッグ時と同様なシステム環境となります.
なお,取り外したモニタROMは,ROMの内容を読み出したり,別のCPUボードに使用したりすることはできません.PARTNER-CQ版 & PARTNER-J/Win評価版に関する質問のQ1をご参照ください.
Q12.
exeGCC-CQ版(Vr4300)を普通のMS-DOS上で使いたいのですが……A12.
exeGCC-CQ版はDOS窓で動作しますが,内部はWin32アプリケーションです.MS-DOS環境では動作しません.
Q13.
CPUボードをよく見ると,SIMMソケットが実装できるようなスルーホールがあいていますが,ここにSIMMソケットを実装すれば,72ピンSIMMを実装してメモリを増設できますか? また他にDRAMを増設する方法はありますか?A13.
添付の回路図をよく参照されて,自己の責任において実行してください.またハードウェア的に問題なく増設できたとしても,システムコントローラであるSKMのDRAM制御レジスタを初期化しないとDRAMとしては使用できません.
SIMM以外でDRAMを増設するには,本CPUボードの裏面に増設用のパターンが用意されています.ただしこちらも同様に,添付の回路図を参考にハードウェア的に問題がないかを判断してから,自己の責任において実行してください.
Interface誌上でも,いずれ改造記事を掲載したいと考えていますが,今のところ目処はたっていません.
Q14.
CqREEK/Vr4300はISAバス対応だそうですが,このCPUボードをPC/AT互換機のISAバスに差し込んで,PC/AT互換機からサブCPUボードとしては使えませんか?A14.
残念ながらそのような使い方はできません.本CPUボードはマザーボード側と同じく,このCPUボードがアドレスバスを出力します.よってPC/AT互換機のISAバスに実装すると,バスが衝突してしまい動作しません.動作しないどころか,ボードを破損することもあるので注意してください.
Q15.
カードエッジコネクタのISAバスではなく,PC/104には対応していないのでしょうか?A15.
PC/104とISAバスは電気的にはまったく同じです.違いはコネクタ形状です.本CPUボードにも,PC/104用のスタック接続コネクタを実装できるスルーホールを用意しています.コネクタは未実装なので,使用する場合はコネクタをはんだ付けして実装する必要があります.
Q16.
Vr4300はプロセッサであり周辺機能を内蔵していないはずですが,DRAMの制御やCPUボードのRS-232-Cポートを制御しているのは,どんなコントローラでしょうか?A16.
ご指摘の通りVr4300は単体のプロセッサで,このCPUには周辺機能が内蔵されていません.よってDRAMも直接接続できませんし,RS-232-Cポートも実現できません.本CPUボードでは通称SKMと呼ばれるVr4300用のシステムコントローラを搭載し,DRAMおよびISAバスなどを制御しています.またRS-232-Cは,ISAバスと同様のタイミングで制御できる空間にマッピングした 16C550 を搭載しています.
Q17.
Vr4300 CPUのローカルバスの信号を取り出すことはできますか?A17.
残念ながら本CPUボードでは,Vr4300 CPUのローカルバスはすべてシステムコントローラであるSKMに接続されており,CPUボード外部に取り出すことはできません.よって外部にデバイスを接続するには,すべてISAバス上に接続することになります.
Q18.
次のプログラムをコンパイルして実行させると,プログラムの実行が勝手に終了します.#include <math.h> #include <stdio.h> main() { double a; a=sqrt(0.99999999998); printf("sqrt(0.99999999998)=%lf\n",a); }A18.
プログラムの実行が終了してしまうのは,例外が発生しているためのようです.sqrt関数に問題があるよです.とりあえずの解決策としては,次のようなオプションを指定してsqrt命令をインライン展開(FPU命令)してください.これで上記プログラムは正常に動作するようになるはずです.
>gcc -O -g -ffast-math -o test.out test.c[リターン]
Q19.
CPUボードには4MバイトのDRAMが搭載されているそうですが,ということは最大4Mバイトまでのプログラムを作成しデバッグできるということでしょうか?A19.
残念ながら,ユーザープログラムはDRAMの4Mバイトのうちの最後の約1Mバイトの空間に配置されます.exeGCC-CQ版の制限で,このアドレスは固定です.よって開発できるプログラムはスタックや変数エリアを合わせて最大約1Mバイトとなります.
実際問題,CPUボードとの通信がシリアル通信なので,500Kバイトを越えるサイズはダウンロードするだけで結構な時間がかかります.よって巨大なサイズのプログラムは本キットでの開発は難しいと考えてください.
Q20.
CPUボード搭載の7セグメントLEDに出力したデータを読みだそうとプログラムしたのですが,FFhが読み出されるだけで点灯中のデータが取得できません.7セグメントLEDに出力したデータをもう一度読み出すにはどうしたらよいのでしょうか?A20.
取扱説明書の7セグメントLEDレジスタの項目を見てください.R/Wの欄には“W”とだけ明記されていると思います.つまり7セグメントLEDは書き込み専用デバイスなのです.よって点灯データをプログラムで使うときは,変数などで保持しておく必要があります.
なお添付の回路図も参照ください.7セグメントLEDの点灯データを保持するラッチには,書き込みクロックしか接続されていません.これが書き込み専用デバイスである理由です.
Q21.
CPUボードを購入したのですが,ROMソケットは32ピンなのに,28ピンのROMが差し込まれています! 当然ピン数が合わないので,ROMソケットの3番ピンにROMの1番ピンを合わせて差し込まれています! 間違った部品で製造された不良品ではないでしょうか!!A21.
ご安心ください.マイコンの世界ではよく使う手で,不良品ではありません.こちらをご参照ください.
Q22.
Q17にあるようにこのCPUボードに外部デバイスを増設するにはISAバス上に接続するとあります.Vr4300 CPUは電源電圧3.3Vだそうですが,このCPUボードのISAバスも3.3Vレベルなのでしょうか?A22.
CPU自身は3.3V動作ですが,Q17にもあるシステムコントローラSKMが,3.3V-5Vのレベル変換も兼ねています.ISAバスの各信号はこのSKMで制御されており,ISAバスはすべて5Vレベルの信号です.
Q23.
Vr4300 CPUボードのISAバスのシステムクロックは何MHzですか? 正確な周波数を教えてください.A23.
CPUボードには32MHzのクリスタルを搭載し,CPUコアには3逓倍した96MHzが,ISAバスには1/4分周した8MHzが供給されています.
Q24.
キット添付のサンプルプログラムでも使っているタイマー割り込みですが,取り扱い説明書では約900μsecとなっていますが,これは固定なのでしょうか? 割り込み時間を変えることはできませんか?A24.
多少可変できるようです.以下の表を参照してください.
アドレス 1F00_0000h(論理アドレス 0xBF000000)
ビット 31 30 29 28 27 26 25 24 23〜0 ビット名称 - INT CLR CNT3 CNT2 CNT1 CNT0 - R/W R - - R/W R/W R/W R/W R/W - デフォルト 1 - - 0 0 0 0 0 -
INT CLR:インターバルタイマー割り込みクリア
CNT3 CNT2 CNT1 CNT0 インターバル
タイマー値0 0 0 0 約900μsec(基準) 0 0 0 1 約1.8msec(2倍) 0 0 1 0 約2.7msec(3倍) 0 0 1 1 約3.6msec(4倍) 0 1 0 0 約4.5msec(5倍) 中略 1 1 1 1 約14.4msec(16倍)
リード時:“0”INT割り込みなし/“1”INT割り込みあり
ライト時:“0”割り込みクリア/“1”何もしない
簡単にテストするには,本キットをインストールすると同時にインストールされるサンプルプログラムの timer.c の35行目を書き換えます.
#define TIMER_INT_CLR_DATA 0x01000000これで,LEDの点灯周期が約2秒(約1.8秒)になります.
Q25.
本キット購入の前に,Vr4300 CPUのユーザーズマニュアルやプログラミングマニュアルのようなデータブックを見てみたいのですが…A25.
Vr4300に関するマニュアルは,インターネットのホームページからダウンロード可能です.こちらのダウンロードコーナからリンクをたどってみてください.
Q26.
CPUボードのNMIの設定を変更しようと思います.しかし取扱説明書には“JP7”とあるのですが,CPUボードのどこを探してもJP7がありません.回路図を見ると,NMIの設定は“JP6”のような気がします.取扱説明書に間違いはないでしょうか?A26.
申し訳ございません.取扱説明書の間違いです.Vr4300 CPUボードのNMIの切り替えは,“JP6”が正しいです.こちらを参照ください.
Q27.
コンソール入出力関数である getch() などがうまく動かないようです.これはコンパイラのバグではないでしょうか?
A27.
申し訳ありません.コンソール入出力関数の一部に問題がありました.ライブラリのバージョンアップ版を公開しました.ここから説明を読んで新バージョンのライブラリをダウンロードしてください.
Q28. New!!
CqREEK/Vr4300が販売終了と聞きましたが,本当ですか?
A28.
誠に申し訳ありません.CqREEK/Vr4300で使用しているシステムコントローラSKMというチップが入手不可能な状態であるため,CPUボードを製造できなくなってしまいました.よって在庫が無くなった時点で販売終了とさせていただきました.
Q29. New!!
Vr4300は64ビットモードがあると思いますが、そのモードは使えますか?
A29.
Vr4300は64ビットモードには2つの意味があります.アドレス空間が64ビットのモードと,レジスタの演算を64ビットで行うモードです.64ビットアドレス空間を使うためには,TLBのアドレス変換などがそれに対応している必要があります.もう一つの,レジスタ演算を64ビットで行うモードは,カーネルモードであれば32ビットアドレスモードでも使用できます.
CqREEK/Vr4300のデバッガ/コンパイラは32ビットモード専用なので,64ビットアドレス空間を使うことは出来ません.またCqREEK/Vr4300のモニタROMはリセット直後のカーネルモードのままで動いているので,CPUそのものとしては64ビット演算命令を使うことが可能かと思われますが,64ビット演算命令の動作については考慮していないモニタROMを搭載しているので,CPUが正しく動作するかどうかはわかりません.ユーザーの責任においてお使いください.