cancel
Showing results for 
Search instead for 
Did you mean: 

How to use USB as Mass Storage Class ?

antonius
Senior
Posted on March 01, 2017 at 22:17

Everybody,

How to use USB as Mass Storage Class ?

This question is related with SDIO I had done intiating,

Which configuration file do  I need to change ?

I can see drive E on my computer now, but can not read the content yet,

Anyone knows ?

Thanks

13 REPLIES 13
Posted on March 02, 2017 at 23:10

This one ?

STM32Cube\Repository\STM32Cube_FW_F1_V1.4.0\Projects\STM3210E_EVAL\Applications\USB_Device\MSC_Standalone

usbd_storage.c, how to relate them ?

Posted on March 02, 2017 at 23:11

/***

**********************************************************************************

    • * @file USB_Device/MSC_Standalone/Src/usbd_storage.c**

    • * @author MCD Application Team**

    • * @version V1.4.0**

    • * @date 29-April-2016**

    • * @brief Memory management layer**

**********************************************************************************

    • * @attention**

    • ***

    • * h2. <center>© Copyright © 2016 STMicroelectronics

International N.V. **

    • * All rights reserved.</center>

**

    • ***

    • * Redistribution and use in source and binary forms, with or without **

    • * modification, are permitted, provided that the following

conditions are met:**

    • ***

    • * 1. Redistribution of source code must retain the above copyright

notice, **

    • * this list of conditions and the following disclaimer.**

    • * 2. Redistributions in binary form must reproduce the above

copyright notice,**

    • * this list of conditions and the following disclaimer in the

documentation**

    • * and/or other materials provided with the distribution.**

    • * 3. Neither the name of STMicroelectronics nor the names of other **

    • * contributors to this software may be used to endorse or promote

products **

    • * derived from this software without specific written permission.**

    • * 4. This software, including modifications and/or derivative works

of this **

    • * software, must execute solely and exclusively on

microcontroller or**

    • * microprocessor devices manufactured by or for STMicroelectronics.**

    • * 5. Redistribution and use of this software other than as permitted

under **

    • * this license is void and will automatically terminate your

rights under **

    • * this license. **

    • ***

    • * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS

'AS IS' **

    • * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT

NOT **

    • * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR

A **

    • * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY

INTELLECTUAL PROPERTY**

    • * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN

NO EVENT **

    • * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,

INDIRECT,**

    • * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

(INCLUDING, BUT NOT**

    • * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

USE, DATA, **

    • * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

THEORY OF **

    • * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

(INCLUDING **

    • * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

SOFTWARE,**

    • * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**

    • ***

**********************************************************************************

    • /*

**

*/ Includes

Posted on March 03, 2017 at 09:45

/*******************************************************************************

  • Function Name : STORAGE_Init_FS

  • Description :

  • Input : None.

  • Output : None.

  • Return : None.

*******************************************************************************/

int8_t STORAGE_Init_FS (uint8_t lun)

{

/* USER CODE BEGIN 2 */

printf('STORAGE_Init_FS function!\n');

  • BSP_SD_Init(); <=== Why is it stopped here ?? It's working without

USB.*

return (USBD_OK);

/* USER CODE END 2 */

}

/*******************************************************************************

  • Function Name : STORAGE_GetCapacity_FS

  • Description :

  • Input : None.

  • Output : None.

  • Return : None.

*******************************************************************************/

int8_t STORAGE_GetCapacity_FS (uint8_t lun, uint32_t *block_num,

uint16_t *block_size)

{

/* USER CODE BEGIN 3 */

HAL_SD_Get_CardInfo(&hsd, &SDCardInfo);

*block_num = SDCardInfo.CardCapacity / STORAGE_BLK_SIZ;

*block_size = STORAGE_BLK_SIZ;

printf('STORAGE_GetCapacity function!\n');

return (USBD_OK);

/* USER CODE END 3 */

}

Posted on March 03, 2017 at 11:39

int8_t STORAGE_Init_FS (uint8_t lun)

{

/* USER CODE BEGIN 2 */

printf('STORAGE_Init_FS function!\n');

MX_SDIO_SD_Init(); <== answer my question, now it's working like a charm

//BSP_SD_Init();

return (USBD_OK);

/* USER CODE END 2 */

}

Still got unexpected error for reading message when I login ???