CQ出版社のトップページへ戻る CqREEKのページへ戻る |
|
ここでは,よく寄せられるCQ RISC評価キット/SH-3に関する質問についてお答えします.
Q1.
CPUボードを見るとROMが1個搭載されていますが,その隣にもう一つROMを実装できそうなソケットが見えます.これは何でしょうか?A1.
標準で搭載されているROMはデバッガと通信するためのモニタプログラムが格納されています.このプログラムはサイズが小さいので,32Kバイト以下のサイズに十分収まっています.
SH-3のエリア0は,8/16/32ビット幅として使えるように設定できます(本CPUボードでは8ビットまたは16ビット幅で使用可能).そこでモニタROMを8ビット幅のROM1個に書き込み,エリア0を8ビット幅で使用しています.このモニタROMをはずしてユーザーが開発したROM化プログラムを実装するときは,CPUボード上の設定を変えて,16ビット幅(8ビット幅のROMを2個並べる)で使用します.空いているソケットはそのためのものです.
Q2.
ボードにRS-232-Cインターフェースがついているようですが,これを使ったアプリケーションは製作可能でしょうか?A2.
SH-1ではCPUにシリアルコントローラが2チャネルあったのですが,SH7708では1チャネルしかありません.CPUボードに実装されているRS-232-Cインターフェースは,デバッガであるPARTNER-CQ版と通信するために使用するので,デバッグと同時にアプリケーションで使用することは難しいと思われます.
基本的には外部にアプリケーションで使用するために専用にシリアルコントローラを接続する方法をおすすめしています.
なお,CPUボード搭載のRS-232-Cインターフェースを、デバッグと同時にアプリケーションで使うための対策を解説した記事を,近号のInterface誌上で掲載したいと考えています.
Q3.
付属のコンパイラexeGCC-CQ版はROM化をサポートしていますか?A3.
CqREEK/SH-3は,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/SH-3では使用しません.というより,使用できません.
CPUのアドレス線や信号線の一部がここに接続されているので,ボードを改造する記事などの場合には,はんだ付けのしやすさからここから信号線を取り出す場合もあるかと思いますが,ここにコネクタを接続して何かをするということは,CqREEKシリーズでは想定されていません.
Q6.
CqREEK/SH-3ではアセンブラによるプログラム開発は可能ですか?A6.
exeGCC-CQ版およびexeGCC評価版に関する質問のQ4をご参照ください.
CqREEK/SH-3では標準で,タイマー割り込みにより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をご覧ください.なお,SH-3はメモリマップドI/O方式のため,x86系コンパイラにあるような inp/outp のような関数は必要ありません.
Q10.
exeGCC-CQ版(SH-3)ではx86系コンパイラにあるようなinterrupt修飾子はないのでしょうか? 割り込みを使うにはどうすればよいのでしょうか?A10.
exeGCC-CQ版およびexeGCC評価版に関する質問のQ5をご参照ください.
Q6にもあるように,CqREEK/SH-3では標準で,タイマー割り込みによりCPUボード搭載の7セグメントLEDを点灯制御するサンプルプログラムが添付されています.この割り込み処理を参考にされることをおすすめします.
Q11.
CPUボードに実装されているROMにはホストと通信するためのモニタが格納されていると思いますが,デバッガを使わない場合はこのモニタROMを外してしまい,自分の開発したプログラム書き込んだ別のROMを入れても問題ないでしょうか?A11.
まったく問題ありません.若干注意が必要なのは,モニタROMが完全になくなりますから,デバッグ時と同じような環境にするにはシステム・レジスタ関連の設定を自前のプログラムで面倒を見る必要があります.取扱説明書のp.20のような初期化ルーチンを入れれば,デバッグ時と同様なシステム環境となります.
なお,取り外したモニタROMは,ROMの内容を読み出したり,別のCPUボードに使用したりすることはできません.PARTNER-CQ版 & PARTNER-J/Win評価版に関する質問のQ1をご参照ください.
Q12.
exeGCC-CQ版(SH-3)を普通のMS-DOS上で使いたいのですが……A12.
exeGCC-CQ版はDOS窓で動作しますが,内部はWin32アプリケーションです.MS-DOS環境では動作しません.
Q13.
CPUボード搭載のDRAM容量は4Mバイトだそうですが,DRAMを増設する方法はありますか?A13.
本CPUボードの裏面に増設用のパターンが用意されています.ただし添付の回路図を参考にハードウェア的に問題がないかを判断してから,自己の責任において実行してください.
Interface誌上でも,いずれ改造記事を掲載したいと考えていますが,今のところ目処はたっていません.
Q14.
SH-3 CPUの信号線を取り出すことはできますか?A14.
本CPUボードにはSH-3 CPUのほぼすべての信号線を取り出せるようにスルーホール(外部拡張コネクタ)を用意しています.外部にデバイスを接続するときは,このスルーホールから信号を取り出せます.
Q15.
SH-3 CPUボードのサイズはSH-1と同じと書いてありますが,ということは外部コネクタも同一のピン配置なのでしょうか? 違いはCPUのクロック速度の違いによるアクセス速度の違いだけですか?A15.
残念ながらCPU基板の外形寸法だけが同じなだけです.外部接続コネクタとはCPUの各信号ピンを取り出せるようにしたスルーホールで,CPUのピン数だけ用意しています.つまりSH-1(SH7032)は合計112ピンなのに対し,SH-3(SH7708)は144ピンです.またスルーホールの配列も,CPUのピン配列そのままで,CPUの1番ピンがスルーホールの1番ピンに該当しています.
よって外部接続コネクタは,ピン配列はもちろんピン数もそのタイミングもまったく異なるものです.
Q16.
CPUボードには4MバイトのDRAMが搭載されているそうですが,ということは最大4Mバイトまでのプログラムを作成しデバッグできるということでしょうか?A16.
残念ながら,ユーザープログラムはDRAMの4Mバイトのうちの最後の約1Mバイトの空間に配置されます.exeGCC-CQ版の制限で,このアドレスは固定です.よって開発できるプログラムはスタックや変数エリアを合わせて最大約1Mバイトとなります.
実際問題,CPUボードとの通信がシリアル通信なので,500Kバイトを越えるサイズはダウンロードするだけで結構な時間がかかります.よって巨大なサイズのプログラムは本キットでの開発は難しいと考えてください.
Q17.
CPUボード搭載の7セグメントLEDに出力したデータを読みだそうとプログラムしたのですが,FFhが読み出されるだけで点灯中のデータが取得できません.7セグメントLEDに出力したデータをもう一度読み出すにはどうしたらよいのでしょうか?A17.
取扱説明書の7セグメントLEDレジスタの項目を見てください.R/Wの欄には“W”とだけ明記されていると思います.つまり7セグメントLEDは書き込み専用デバイスなのです.よって点灯データをプログラムで使うときは,変数などで保持しておく必要があります.
なお添付の回路図も参照ください.7セグメントLEDの点灯データを保持するラッチには,書き込みクロックしか接続されていません.これが書き込み専用デバイスである理由です.
Q18.
CPUボードを購入したのですが,ROMソケットは32ピンなのに,28ピンのROMが差し込まれています! 当然ピン数が合わないので,ROMソケットの3番ピンにROMの1番ピンを合わせて差し込まれています! 間違った部品で製造された不良品ではないでしょうか!!A18.
ご安心ください.マイコンの世界ではよく使う手で,不良品ではありません.こちらをご参照ください.
Q19.
CPUボード搭載のROMを交換してROM化したプログラムを動かそうと考えています.しかし取扱説明書には,ROMソケットは16ビット幅では使えないような説明がありますし,CPUボードもジャンパピンでなく,ジャンパ線がはんだ付けされています.ROMを交換して使用することはできないのでしょうか?A19.
取扱説明書の説明が不十分でした.標準搭載のモニタROMは8ビット幅専用に作られているので,16ビット幅の設定では使えないという意味です.
プログラムをROM化してROMを交換する場合は,16ビット幅で使用されることを推奨しています.その場合は,JP6のジャンパ線をはずして1-2をショートし,まだSW1-4(SH7708のMD3)をON(0),SW2-1(SH7708のMD4)をOFF(1)に切り替えます.
また使用するROMの容量に合わせてJP4/9/10/11を選択してください.
Q20.
ROM化するプログラムが32Kバイト以下なので,安く済ませるために256KビットROMを1個だけで8ビット幅で使いたいのですが,そのままROM化してもプログラムが実行されません.何が問題なのでしょう?A20.
取扱説明書にあるように,8ビット幅で使うときはアドレスバスの配線の都合で,ROM内の配置が変則的なため,普通にROM化ファイルを作成してROMに書き込んでも動きません.近日中公開予定のSH-3用疑似ROM化ツールに,このような変則的なROM配置にデータの配置を変換してくれるツールを用意しする予定です.それを使ってROM化ファイルを作成すれば,256KビットROMを1個使った8ビット幅の設定で使用可能です.
これに関連した解説として,CqREEK/SH-1に関する質問のQ24も合わせて参考にされるとよいと思います(CPUとROMソケット部分の配線に関してはSH-1とSH-3は同じ配線方式となっています).
なお,8ビット幅で使用する場合は,JP6を2-3ショート,SW1-4(SH7708のMD3)をOFF(1),SW2-1(SH7708のMD4)をON(0)という,CPUボード出荷時の設定に戻すことを忘れないでください.
Q21.
このCPUボードに搭載されているCPU SH7708は,3.3V動作だそうですが,Q14にある外部拡張コネクタから取り出せる信号は3.3Vレベルなのでしょうか?A21.
本CPUボードの外部拡張コネクタは,バスバッファなどを経由させずにCPUのピンを直接配線しています.よって3.3Vレベルとなっています. またSH7708は5V入力に対応していないので,5V電源系デバイスを接続する場合は,間にレベル変換バスバッファが必要です.
Q22.
Q14やQ21に関連して,どんな信号が出力されているか,本キット購入前に調べてみたいのですが,SH7708のマニュアルを見せていただけますか?A22.
SH7708に関するマニュアルは,インターネットのホームページからダウンロード可能です.こちらのダウンロードコーナからリンクをたどってみてください.
Q23.
Q19や取扱説明書,また添付の回路図を参考にしてROM容量にあったジャンパ設定にして,フラッシュROMをROMソケットに差し込みました.もちろんフラッシュROMの/WE信号はCN2から取り出しています.この環境でフラッシュROMにプログラムを書き込むことができません.
同じSH7708 CPUで,ほぼ同じメモリマップを採用しているCPUボードでは問題なくフラッシュROMに書き込みできます.CqREEK/SH-3のCPUボードはエリア0には書き込み動作できないのでしょうか? それともこのソースをコンパイルしたexeGCC-CQ版がおかしいのでしょうか?A23.
まず回路図を見てください.SH7708は3.3V系デバイスなので,5V系デバイスであるUV-EPROMのために間にバッファが入っています.このバッファのイネーブルおよび方向制御をしているのがIC18のGALです.本キット出荷時の状態では,CPUがエリア0に対してリード要求を出したときにしかバッファが有効になりません.これがエリア0に接続したフラッシュROMに書き込みができない理由です.基本的にはROMなので,読み出し方向のみの設定になっているのです.
しかし本キットではこのような用途を想定して,ROM領域のバッファを書き込み方向でも有効にする設定があります.CPUボードを見るとIC18(GAL)とD-Sub25ピンコネクタとの間に,HJP11というはんだジャンパがショートされていると思います.このはんだジャンパのショートを切り離します(解放状態にしてください).これでCPUがエリア0に対して書き込みをすると,そのデータがROMソケットのデータバスまで出力され,フラッシュROMに対して正常に書き込みが行えるようになります.
なお,なぜそうなるのかは,本キット添付のCD-ROMの \PARTNER\PLD\ に収録されている,ABELファイルと添付回路図を参考にご自身でお考えください.
Q24. New!!
コンソール入出力関数である getch() などがうまく動かないようです.これはコンパイラのバグではないでしょうか?
A24.
申し訳ありません.コンソール入出力関数の一部に問題がありました.ライブラリのバージョンアップ版を公開しました.ここから説明を読んで新バージョンのライブラリをダウンロードしてください.