2122450_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2122450_ja-JP

2122450_ja-JP

LPCXpresso55S69-EVK の Zephyr SDIF ドライバの読み取り/書き込みパフォーマンスが低い

LPC55S69-EVKを評価したとき、ZephyrのUSBマスストレージ(SDIFドライバを使用)の読み取り/書き込み速度が、 MCUXpresso SDK の例

ベンチマーク結果

以下は、 クリスタルディスクマーク 8.0.6 :

1. MCUXpresso SDK の例 ( lpcxpresso55s69_dev_msc_disk_freertos_cm33_core0)
[Read]
  SEQ 1MiB: 10.903 MB/s | RND 4KiB: 4.204 MB/s
[Write]
  SEQ 1MiB: 7.756 MB/s  | RND 4KiB: 3.286 MB/s

2. Zephyr(レガシーUSBスタック)
[Read]
  SEQ 1MiB: 1.048 MB/s | RND 4KiB: 0.985 MB/s
[Write]
  SEQ 1MiB: 0.209 MB/s | RND 4KiB: 0.351 MB/s

MCUXpresso SDK よりも約 10 倍遅いです。

3. Zephyr(USBデバイスネクストスタック)
[Read]
  SEQ 1MiB: 1.676 MB/s | RND 4KiB: 1.489 MB/s
[Write]
  SEQ 1MiB: 0.628 MB/s | RND 4KiB: 0.830 MB/s

*それでも、MCUXpresso SDKs より 5 ~ 6 倍遅いです。*

デバッグの試み

  • 有効 Zephyr SDHC & SDカードログ – エラーは検出されませんでした。

  • SD カードの初期化を確認しました (3.3V、50MHz クロック、正しいブロック サイズ)。

  • ログには、SDIF クロック構成が成功したことが示されています (24MHz → 50MHz)。

[00:00:00.000]  sd: sd_init_io: Host controller support 3.3V max  
[00:00:01.000]  sdif: mcux_sdif_set_io: SDIF clock set to 400000  
[00:00:01.376]  sd: sdmmc_read_csd: Card block count 124735488, block size 512  
[00:00:01.376]  sdif: mcux_sdif_set_io: SDIF clock set to 24000000  
[00:00:01.379]  sd: sdmmc_set_bus_speed: Setting bus clock to: 50000000  

環境

  • ボード: LPC55S69-EVK

  • Zephyr バージョン:コミット:c2d52c7f4b53a3e3691a7e6fa15af83ef72446cc(4.1.99)

変更する必要がある Kconfig オプションまたはオーバーレイはありますか?

これをさらにデバッグするための洞察や提案があれば幸いです

よろしくお願いいたします!

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

ご提案ありがとうございます。

あらゆる最適化と変更にもかかわらず、最高速度は 3.1 MB/秒でした。パフォーマンスの問題の根本原因はすでに特定されましたか?率直に言って、根本的な問題に対処せずに、システムの調整だけでは完全なパフォーマンスを実現できないと思います。


ウィマンシャ

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

こんにちは@wima88

試してみることができる別の USB 最適化。

CONFIG_UDC_BUF_COUNT=128
CONFIG_UDC_WORKQUEUE_STACK_SIZE=2048
CONFIG_UDC_WORKQUEUE_PRIORITY=0

BR

ハリー

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

こんにちは、ハリー。

ご返信ありがとうございます。Konig の提案オプションを使用すると、約 2.54 MB/秒を実現できました。

[Read]
SEQ 1MiB (Q= 1, T= 1): 2.516 MB/s [ 2.4 IOPS] <412859.66 us>
RND 4KiB (Q= 1, T= 1): 2.033 MB/s [ 496.3 IOPS] < 2011.94 us>

USB スタックがボトルネックになっている可能性はあるでしょうか?


Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

こんにちは@wima88


以下の最適化を追加してみてはいかがでしょうか


CONFIG_MCUX_SDIF_DMA_BUFFER_SIZE=512
CONFIG_SPEED_OPTIMIZATIONS=y
CONFIG_SDIO_STACK=y
CONFIG_MPU=n
CONFIG_ASSERT=n
CONFIG_LOG=n
CONFIG_LOG_DEFAULT_LEVEL=0

BR

ハリー

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

こんにちは@wima88

私たちはこの問題を調査中ですので、結果が出次第お知らせします。

BR

ハリー

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

@Harry_Zhangこの問題に関して何か更新はありますか?lpc ドライバの代わりに imx ドライバを使用するFRDM-MCXN947 (Zephyr 付き) をテストしました。結果は上記とほぼ同じです

よろしくお願いします。

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

こんにちは、ハリー。

こんにちは、

私は クリスタルディスクマーク 私のベンチマークツールとして( https://crystalmark.info/en )。私の設定とプロセスは次のとおりです。

MCUXpresso SDKs セットアップ:

  • 改造ジャンパー P4電圧1.8V~3.3V (ユーザーガイドの表1、P21による)。

  • ダウンロードした SDKの例(v25.03.00) 経由で VSCode の MCUXpresso 拡張機能

  • 構築してフラッシュ lpcxpresso55s69_dev_msc_disk_freertos_cm33_core0 例。

  • リセット後、シリアル端末に次のプロンプトが表示されました。 「ディスクを挿入してください。」

  • 使用した SanDisk クラス 3 V30 SD カード

  • コネクテッド P9(HS-USB) 構成済み クリスタルディスクマーク (添付のスクリーンショットを参照)。57ecc5a0-a2cc-4775-be4c-74ff59cc81ae.jpgScreenshot 2025-06-25 105150.png

  • テスト対象:

    • 1MBのブロックサイズ

    • 1 キュー、1 Thread

    • 32MBのファイルの9回の反復

Zephyr のセットアップ:

上記と同じ開発環境を使用しました。

レガシー USB スタック:

  • 例: Zephyr/サンプル/サブシステム/USB/質量

  • 変更は行われていません。

  • ビルドコマンド:
west build -p -b lpcxpresso55s69/lpc55s69/cpu0
west flash

USB ネクスト スタック:

修正済み next_usb_prj.conf 次のように:

CONFIG_DISK_ACCESS=y  
CONFIG_FILE_SYSTEM=y  
CONFIG_FAT_FILESYSTEM_ELM=y  
CONFIG_PRINTK=y  

CONFIG_DISK_DRIVERS=y  
CONFIG_DISK_DRIVER_SDMMC=y  

CONFIG_SDHC_LOG_LEVEL_DBG=y  
CONFIG_SD_LOG_LEVEL_DBG=y  
CONFIG_LOG_BUFFER_SIZE=2048  

CONFIG_USBD_MSC_STACK_SIZE=4096  
CONFIG_USBD_MSC_LUNS_PER_INSTANCE=5  
CONFIG_USBD_MSC_SCSI_BUFFER_SIZE=2048  

ビルドコマンド

west build -p -b lpcxpresso55s69/lpc55s69/cpu0 -- -DCONF_FILE=usbd_next_prj.conf  
west flash

テスト:

  • 使用した 同じCrystalDiskMark設定 3つのCASEすべてに当てはまります。

  • オーバーレイファイルなし どちらの Zephyr の例でも使用されました。

さらに詳しい情報が必要な場合はお知らせください。

 

ありがとうございます。

Re: Poor Read/Write Performance with Zephyr SDIF Driver on LPCXpresso55S69-EVK

こんにちは@wima88

どのようにテストしたか教えていただけますか?

テストしたいです。

BR

ハリー

Tags (1)
No ratings
Version history
Last update:
‎11-22-2025 08:47 AM
Updated by: