改版履歴

Cente USB2.0 Host MassStorage for M66596

FAT16X(LBA),FAT32X(LBA)に対応

FAT16X(LBA),FAT32X(LBA)フォーマットのメモリを認識できるように修正した。

サンプル関数でのメモリ壊し修正

サンプルの ctusbh_msc_fs.c にてメモリを壊す箇所があり修正した。

write protected 状態に対応

USBメモリが write protected の状態にて write_sector 関数が無限ループに入る不具合を修正。

USBデバイス,USBホストのインクルードファイル共通化

USBデバイス,USBホストのインクルードファイル共通化に伴いファイル構成、構造体と定義の名称を変更した。

Cente USB2.0 Host MassStorage for M66596

バルクIN/OUTに同一エンドポイントを指定するデバイスと通信できない。

デバイスから受信したエンドポイントデスクリプタ情報をドライバに格納する方法を修正し、動作可能とした。

バルク転送のタイムアウトが長いとこれにあわせて接続確認パケットがいつまでも送出できない。

Ver1.01ではコントロール転送とバルク転送は排他されている。無限にINを待つような使い方のクラスドライバと組み合わせると接続確認のコントロール転送パケットが送信できないため、排他制御を削除した。

接続確認パケット送信とバルク転送の排他がされない可能性がある。

接続確認パケット送信とバルク転送の排他されるよう修正した。新たに排他制御のOSリソースを追加した。

usbh_abort_transfer()で、vdis_psw()を使っている。

usbh_abort_transfer()で、誤ってvdis_psw()を使っていたため修正。

USBリクエスト定義のdefine箇所が適切なファイルにない。

USBリクエスト定義のdefineをctusbh_m66596_sys.hからctusbh_100.hに移動した。

CLEAR_FEATURE発行時でなくともパイプをリセットする可能性がある。

usbh_issue_ctrl()でエンドポイントへのCLEAR_FEATUREを発行したとき、コントローラドライバにてusbh_m66596_reset_pipe()している。このとき、「CLEAR_FEATURE判定」の条件が間違っていたので修正した。

登録可能ドライバ数デフォルト値ががやや少ない。

USBH_DRIVER_NUMを16とした。

エンディアン変更の関数名の内部関数が一般的な名前なので他のモジュールが提供するAPIとかぶる可能性がある。

lit2big2()/lit2big4()はusbh_lit2big2()/usbh_lit2big4()に変更。

Cente USB2.0 Host MassStorage for M66596

HiSpeedで通信できないUSBメモリが存在する。

PINGに応答しないデバイスが存在する。ルネサスからの情報提供によりコントロールOUTにはパイプ5を使用し、インタラプトすることで対応。

HiSpeed時のデバイス接続確認に突然応答できないUSBメモリが存在する。

対象となるUSBデバイスはタイミングによってコントロール転送に応答できなくなるので一定期間通信を禁止した。コントローラドライバにおいては接続確認を有効・無効にするAPIを新規追加。停止するタイミングはクラスドライバにて制御することとした。また、データ通信が成功している間は接続確認パケットは送信しないこととした。

負荷をかけると突然通信が不能になりリクエストに対してNAKを返しつづけるUSBデバイスがいる。

エラー後、ホストがreset_pipeパケットを送出することでデバイスは復帰できる。ホスト側のエラー処理、及び、リトライ処理を修正。

割込み禁止後、dly_tsk()している箇所がある。

ディレイさせる前に割込みを有効とするよう修正。また、割込み禁止/有効にはNORTiのvdis_psw()/vset_psw()は禁止とした。

Page 2 of 2