This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SDK15.3 USB_MSC example does not work properly

Hi,

In SDK15.3 USB MSC example can't  work.

First, the computer does not recognize the USB MSC device and initializes it normally after calling nrfx_systick_init.

Secondly, although the computer can recognize that the file operation cannot be performed at that time, once the operation causes the USB MSC to be stuck.

 The project is more urgent, What can I do to get it back to normal?

Debugging environment

development software : SDK15.3

Computer platform : window7/10

hardware : PCA10056

Parents
  • The attachment file is changed on my download based sdk15.3.

    I can't delete files or create new ones whether it's PCA10056 1.0.0 (QIAAC0) or PCA10056 0.9.3 (QIAAAA).

    I tested the following usbd_hid_generic example to work properly.

    Index: main.c
    ===================================================================
    diff --git a/Nordic_Base_SDK15_3/examples/peripheral/usbd_msc/main.c
    --- a/02-SoftwareDevelop/Trunk/Nordic_Base_SDK15_3/examples/peripheral/usbd_msc/main.c	(version 6675)
    +++ b/02-SoftwareDevelop/Trunk/Nordic_Base_SDK15_3/examples/peripheral/usbd_msc/main.c
    @@ -194,8 +194,6 @@
     
     #else
     #define BLOCKDEV_LIST() (                                   \
    -    NRF_BLOCKDEV_BASE_ADDR(m_block_dev_ram, block_dev),     \
    -    NRF_BLOCKDEV_BASE_ADDR(m_block_dev_empty, block_dev),   \
         NRF_BLOCKDEV_BASE_ADDR(m_block_dev_qspi, block_dev)     \
     )
     #endif
    @@ -489,6 +487,7 @@
         }
     }
     
    +#include "nrfx_systick.h"
     int main(void)
     {
         ret_code_t ret;
    @@ -502,6 +501,8 @@
     
         ret = nrf_drv_clock_init();
         APP_ERROR_CHECK(ret);
    +    
    +    nrfx_systick_init();
     
         /* Fill whole RAM block device buffer */
         for (size_t i = 0; i < sizeof(m_block_dev_ram_buff); ++i)
    

  • From your diff, you are adding nrfx_systick_init();

    Does it work if you don't add nrfx_systick_init(); ?

  • I can't enumerate the device if I do that, and the program runs directly stuck.

Reply Children
Related