USB/exを購入したお客様からの、技術サポートに寄せられるよくあるご質問に回答します。
ターゲットボードについて
- まずは、ご使用の環境でサンプルアプリケーションが正しく動作する事をご確認ください。
- 動作検証を行っていないボードについては、ボードの差異による障害が発生する可能性があります。
- ボードの差異による障害の場合は、動作保証の対象外とさせていただいておりますので、あらかじめご了承ください。できれば、「M3A-HS64G50」を入手いただき動作確認いただければと思います。
- まずは、ご使用の環境でサンプルアプリケーションが正しく動作する事をご確認ください。
- 動作検証を行っていないボードについては、ボードの差異による障害が発生する可能性があります。
- ボードの差異による障害の場合は、動作保証の対象外とさせていただいておりますので、あらかじめご了承ください。できれば、「環境について」に記載しておりますターゲットボードを入手いただき動作確認いただければと思います。
サンプルアプリケーションについて
- usblInit()が既に正常終了していた場合の戻り値になります。
- usblInit()は、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
- ボリュームラベルを指定してフォーマットして下さい。
もしくはホストPCにおいて、一旦ファイルを書き込んで下さい。
補足1
USBメモリの「空きクラスタサイズ領域」の値によるものと考えられます。これは、FAT32の仕様、弊社ファイルシステムの動作、およびUSBメモリのフォーマッタに関係があります。まず、FAT32の仕様として空きクラスタサイズを管理する領域があります。通常、ファイルの生成/更新/削除や、フォーマットでこの領域が更新されます。ここで、この領域には「空きクラスタサイズが計算されていない」という値が設定される事(※)があります。
- WindowsXP SP3 でUSBメモリをフォーマットした場合、設定されるようです。
補足2
弊社ファイルシステムでは、空きクラスタサイズが「計算されていない」という値だった場合、ファイルの更新を行っても、空きクラスタサイズを更新しません。これは、「計算されていない」という値を設定しているのは何かしらの理由がある、という考えで、勝手に変更しないようにしている為です。
ですので、以下の手順を行った場合、
- WindowsXP SP3でフォーマット
- USBメモリ接続
- USB/exを用いてファイル生成
- USBメモリ切断
- USBメモリ接続
- USB/exを用いてファイル更新
3.と 6.で空きクラスタサイズの計算が行われます。
ユーザーアプリケーションについて
デバイスがマウントされるまでに実行した為と考えられます。
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; } }
JTAGのトレースモードからAUDCKを使用せず、TCKを使用するようにICE上で設定する。
- ターゲットボード:AP-SH2A-1A + ICE:ビットラン社のDR-01の環境で確認。
1ディレクトリあたり126ファイルまでを目安としてください。
詳細については「MatrixQuestUSB/ex プログラマーズガイド パフォーマンスに配慮したアプリケーション設計のガイドライン」をご参照ください。
この現象は、VER1.01以前のバージョンをお使いのお客様が対象になります。最新のバージョンを案内いたしますので、弊社営業までお問合わせください。
原因は、接続時にGET_MAX_LUNを複数回実行する事により、デバイスが無応答になる為です。この現象が発生するかどうかは、ご使用のデバイスに依存します。
この現象は、VER1.00以前のバージョンをお使いのお客様が対象になります。最新のバージョンを案内いたしますので、弊社営業までお問合わせください。
原因は、キャッシュが有効になっていない為です。リンク順の指定で、vecXXXXh.objが先頭になるようリンク順を変更いただく事で対応可能です。
USBメモリの空き容量サイズを取得する際、k_ioctl(fd, K_IONFREE, &pFreeSize)を使用して取得することができます。
K_IONFREE の詳細については、「MatrixQuestUSB/ex ユーザーズガイド 5.2.3 K_IONFREE --- ボリュームの空き領域サイズの取得」をご参照ください。
但し、K_IONFREE はUSBメモリの空き容量サイズが 2GB 以上の場合、エラーになります。2GB 以上の空き容量サイズを取得する場合は K_IOFSTATFSGET を使用してください。K_IOFSTATFSGET の詳細については、「MatrixQuestUSB/ex ユーザーズガイド 5.2.10 K_IOFSTATFSGET --- ファイルシステム情報の取得」をご参照ください。
実装例
int smpGetFreeCapacity ( char *dirname /* base dir name */ ) { int fd; int ret; K_STATFS_ST *pStat; pStat = k_malloc ( sizeof (K_STATFS_ST) ); if ( pStat == NULL ) { k_printf( "MALLOC ERROR\n" ); } fd = k_open( dirname, K_O_RDONLY, 0 ); if ( fd == K_ERROR ) { k_free ( pStat ); return ( K_ERROR ); } k_printf( "OPEN SUCCESS\n" ); ret = k_ioctl (fd, K_IOFSTATFSGET, (int)pStat); if ( ret == K_ERROR ) { k_free ( pStat ); k_close( fd ); return ( K_ERROR ); } k_printf ( "f_bfree : %d, f_bsize : %d\n", pStat->f_bfree, pStat->f_bsize ); k_free ( pStat ); k_close ( fd ); return ( K_OK ); }
K_IOFSTATFSGET で取得できる K_STATFS_ST 構造体のメンバの f_bfree には「総空きブロック数」が格納され、f_bsize には「ブロックサイズ」が格納されます。
この2つから空き容量サイズを算出することができます。
f_bfree(総空きブロック数) * f_bsize(ブロックサイズ) = 空き容量サイズ
なお、f_bfree(総空きブロック数)が変化しない場合、以下の手順を行って再度空き容量サイズを取得してください。USBメモリを接続した際、
「USBメモリをスキャンして修復しますか?」
という内容のウィンドウが表示される場合、修復処理を行い、任意のファイルを書き込みます。Windows XP の場合は以下の処理を行って、再度空き容量サイズを取得してください。
- WindowsでUSBメモリをフォーマットします。
- 任意のファイルをUSBメモリへ書き込みます。
- コマンドプロンプトでCHKDSKの結果を取得して修復の必要があれば、修復します。
OSのコンフィグレーションについて
リリース版(rel.lib)を使用される場合 : 568、デバッグ版(deb.lib)を使用される場合 : 1008 になります。
16 になります。
28 になります。
2 になります。
15 になります。
184kになります。
ただし、シェルを動作させる場合は、259k必要になります。
※記載されている製品・システム名は、各社の商標または登録商標です。
に関するお問い合わせ
のカタログダウンロード