技術サポート情報
USB/exを購入したお客様からの、技術サポートに寄せられるよくあるご質問に回答します。
ターゲットボードについて
サンプルアプリケーションについて
- usblInit( USBEX_PRI )が0xFFFFFFF7 (-9)で終了してしまう
- usblInit( USBEX_PRI )が0xFFFFFFFF (-1)で終了してしまう
- サンプルアプリケーションが起動しない
- フォーマット済みUSBメモリへのアクセスが遅い
ユーザーアプリケーションについて
- catFsUsbGetMountDevName() がエラーになってしまう
- k_read()を繰り返すとハングアップしてしまう
- ファイルの作成に時間がかかってしまう
- MSCデバイスのマウントに時間がかかってしまう
- ROMから起動するとパフォーマンスが落ちてしまう
OSのコンフィグレーションについて
ターゲットボードについて
- CQ出版 Interface 6月号付属基板(SH7262)で動作させたい
- まずは、ご使用の環境でサンプルアプリケーションが正しく動作する事をご確認ください。
動作検証を行っていないボードについては、ボードの差異による障害が発生する可能性があります。
ボードの差異による障害の場合は、動作保証の対象外とさせていただいておりますので、あらかじめご了承ください。
できれば、「M3A-HS64G50」を入手いただき動作確認いただければと思います。
- まずは、ご使用の環境でサンプルアプリケーションが正しく動作する事をご確認ください。
- 動作検証プラットフォームに記載されていないターゲットボードで動作させたい
- まずは、ご使用の環境でサンプルアプリケーションが正しく動作する事をご確認ください。
動作検証を行っていないボードについては、ボードの差異による障害が発生する可能性があります。
ボードの差異による障害の場合は、動作保証の対象外とさせていただいておりますので、あらかじめご了承ください。
できれば、動作検証プラットフォームに記載しておりますターゲットボードを入手いただき動作確認いただければと思います。
- まずは、ご使用の環境でサンプルアプリケーションが正しく動作する事をご確認ください。
サンプルアプリケーションについて
- usblInit( USBEX_PRI )が0xFFFFFFF7 (-9)で終了してしまう
- usblInit()が既に正常終了していた場合の戻り値になります。
usblInit()は、1度正常終了している為、問題ありません。
- usblInit()が既に正常終了していた場合の戻り値になります。
- usblInit( USBEX_PRI )が0xFFFFFFFF (-1)で終了してしまう
- OSのコンフィグレーションをご確認ください。
- サンプルアプリケーションが起動しない
- この現象は、VER1.00以前のバージョンをお使いのお客様が対象になります。
最新のバージョンを案内いたしますので、弊社営業までお問合わせください。
原因は、SCIF,USBのモジュールストップコントロールレジスタがコード上で初期化されていない為です。
初期化を行うようにコードを追加いただく事で対応可能です。
実装例: smp7203_usbex.c ini_pio()#if !defined(NORTiSIM) : : #ifdef USE_USB_EX /* SCIF and USB module clock enable (before init sio) */ #ifdef USE_AP_SH2A_1A /* use SCIF3 */ sfr_clr(SYS_STBCR4, 0x10); #else /* use SCIF0 */ sfr_clr(SYS_STBCR4, 0x80); #endif /* USE_AP_SH2A_1A */ sfr_clr(SYS_STBCR6, 0x01); /* START USB */ #endif /* USE_USB_EX */ #endif
- この現象は、VER1.00以前のバージョンをお使いのお客様が対象になります。
- フォーマット済みUSBメモリへのアクセスが遅い
- ホストPCにおいて、ファイルの作成を行って下さい。
●補足1
USBメモリの「空きクラスタサイズ領域」の値によるものと考えられます。
これは、FAT32の仕様、弊社ファイルシステムの動作、および
USBメモリのフォーマッタに関係があります。
まず、FAT32の仕様として空きクラスタサイズを管理する領域があります。
通常、ファイルの生成/更新/削除や、フォーマットでこの領域が更新されます。
ここで、この領域には「空きクラスタサイズが計算されていない」という値が 設定される事(※)があります。
※ WindowsXP SP3 でUSBメモリをフォーマットした場合、設定されるようです。
次に、弊社ファイルシステムについてです。
USBメモリに対する初回アクセスで、この領域から空きクラスタサイズを取得します。
その際、取得した値が「空きクラスタサイズが計算されていない」だった場合、 USBメモリの全てのクラスタを走査し、空きクラスタサイズを計算します。
この処理に時間がかかっていると考えられます。
ホストPCにおいてファイルを作成する事で、この空きクラスタサイズが更新される為、 時間がかかる事がなくなります。
●補足2
弊社ファイルシステムでは、
空きクラスタサイズが「計算されていない」という値だった場合、
ファイルの更新を行っても、空きクラスタサイズを更新しません。
これは、「計算されていない」という値を設定しているのは何かしらの理由がある。
という考えで、勝手に変更しないようにしている為です。
ですので、
以下の手順を行った場合
(1) WindowsXP SP3でフォーマット
(2) USBメモリ接続
(3) USB/exを用いてファイル生成
(4) USBメモリ切断
(5) USBメモリ接続
(6) USB/exを用いてファイル更新
(3) と(6) で空きクラスタサイズの計算が行われます。
- ホストPCにおいて、ファイルの作成を行って下さい。
ユーザーアプリケーションについて
- catFsUsbGetMountDevName() がエラーになってしまう
- デバイスがマウントされるまでに実行した為と考えられます。
catFsUsbGetMountDevName()までに少し時間を置いて実行していただくか、
catFsUsbGetMountDevName()でエラーだった場合、ディレイをいれて
再度確認していただくことでOKが返ると考えられます。
実装例int status,nLoop; unsigned char devName[32]; for(nLoop = 0; nLoop < 10000; nLoop++) { dly_tsk(100/MSEC); status = catFsUsbGetMountDevName( 0, devName ); if(status != -1) { break; } }
- デバイスがマウントされるまでに実行した為と考えられます。
- k_read()を繰り返すとハングアップしてしまう
- JTAGのトレースモードからAUDCKを使用せず、TCKを使用するようにICE上で設定する。
※ターゲットボード:AP-SH2A-1A + ICE:ビットラン社のDR-01の環境で確認。
- JTAGのトレースモードからAUDCKを使用せず、TCKを使用するようにICE上で設定する。
- ファイルの作成に時間がかかってしまう
- 1ディレクトリあたり126ファイルまでを目安としてください。
詳細については「MatrixQuestUSB/ex プログラマーズガイド パフォーマンスに配慮したアプリケーション設計のガイドライン」をご参照ください。
- 1ディレクトリあたり126ファイルまでを目安としてください。
- MSCデバイスのマウントに時間がかかってしまう
- この現象は、VER1.01以前のバージョンをお使いのお客様が対象になります。
最新のバージョンを案内いたしますので、弊社営業までお問合わせください。
原因は、接続時にGET_MAX_LUNを複数回実行する事により、デバイスが無応答になる為です。
この現象が発生するかどうかは、ご使用のデバイスに依存します。 - ROMから起動するとパフォーマンスが落ちてしまう
- この現象は、VER1.00以前のバージョンをお使いのお客様が対象になります。
最新のバージョンを案内いたしますので、弊社営業までお問合わせください。
原因は、キャッシュが有効になっていない為です。
リンク順の指定で、vecXXXXh.objが先頭になるようリンク順を変更いただく事で対応可能です。
- この現象は、VER1.00以前のバージョンをお使いのお客様が対象になります。
