This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to Improve WinCE BSP SDCARD Performance for OMAP3530

Other Parts Discussed in Thread: OMAP3530

Hi, All

I validated SDCard Performance for OMAP3530 based on OMAP3530 EVM (CPU Module Rev D, Main Board Rev G), and I copy one file from SDCard to another space, and time it, then calculate the performance, its value is about 1.2MBytes/s.

I think this is too slow for applications, so I want to improve it. Would someone give me some advices to do this.

 

Thanks

  • Current benchmarking numbers do match what you see. We have seen about 1.3MBytes/s Read and 3.5MBytes/s write. Further analysis on optimization has not been done on this at this time.

    What is your requirement? And which BSP version are you using?

    Couple of things worth trying.

    1. You can play with the FileCacheManager in the catalog. By default it is enabled. Disabling it speeded up Reads but slowed down writes in SD CETK performance tests. But there could be other areas where this could impact performance. It may be worth a try. 

    2. One of the bottlenecks apparently is with the MSFT default SD stack. bSquare has a SDIO HX stack that improves performance (some benchmark numbers for that are included in the doc called "Bsquare WinCE BSP SDIO Hx White Paper for OMAP35x EVM.pdf" inside the Documentation folder of the BSP release). Please contact bSquare directly for that.

     

  • Hi, Jatin

    Thanks a lot .

    I am working with BSP 6.13, and hope to improve SDCard performance to about 8-10MB/s.

    I will check MSFT default SD stack and the document you mentioned contained in BSP docs directory.

    And I think it would be hard to do this,

    Thanks & Best Regards,

     

     

     

  • Hi,

    Try disabling SYSGEN_CACHEFILT in the Platform Builder project.

    Also verify that DMA is enabled and the card is running at the maximum possible clock rate.

    Best regards,
    Carsten

     

  • All,

    Another possible optimization that can be done is the SD Memory Class Driver provided by MS.

    By default, it creates data buffers using the VirtualAlloc() method. If a block of physical memory blocks can be reserved and the same can be used by the SD Memory Class Driver, then it is possible to have zero-copy buffers through-out the SD Stack.

    This can reduce the amount of memcpy() required in the SDHC Controller Driver.

    Regards,

    Ravi