Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
a6787edc
Commit
a6787edc
authored
Mar 22, 2014
by
Damien George
Browse files
stmhal: Tidy up USB device configuration. Make it use less RAM.
parent
c2a4cb4f
Changes
7
Hide whitespace changes
Inline
Side-by-side
stmhal/stm32f4xx_hal_msp.c
View file @
a6787edc
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
/* Includes ------------------------------------------------------------------*/
/* Includes ------------------------------------------------------------------*/
#include
"stm32f4xx_hal.h"
#include
"stm32f4xx_hal.h"
#include
"usbd_cdc.h"
#include
"usbd_cdc
_msc
.h"
#include
"usbd_cdc_interface.h"
#include
"usbd_cdc_interface.h"
/** @addtogroup STM32F4xx_HAL_Driver
/** @addtogroup STM32F4xx_HAL_Driver
...
...
stmhal/usbd_cdc_interface.c
View file @
a6787edc
...
@@ -28,11 +28,22 @@
...
@@ -28,11 +28,22 @@
/* Includes ------------------------------------------------------------------*/
/* Includes ------------------------------------------------------------------*/
#include
<stdbool.h>
#include
<stdbool.h>
#include
"stm32f4xx_hal.h"
#include
"stm32f4xx_hal.h"
#include
"usbd_cdc.h"
#include
"usbd_cdc
_msc
.h"
#include
"usbd_cdc_interface.h"
#include
"usbd_cdc_interface.h"
#include
"pendsv.h"
#include
"pendsv.h"
#include
"usb.h"
#include
"usb.h"
// CDC control commands
#define CDC_SEND_ENCAPSULATED_COMMAND 0x00
#define CDC_GET_ENCAPSULATED_RESPONSE 0x01
#define CDC_SET_COMM_FEATURE 0x02
#define CDC_GET_COMM_FEATURE 0x03
#define CDC_CLEAR_COMM_FEATURE 0x04
#define CDC_SET_LINE_CODING 0x20
#define CDC_GET_LINE_CODING 0x21
#define CDC_SET_CONTROL_LINE_STATE 0x22
#define CDC_SEND_BREAK 0x23
/* Private typedef -----------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define APP_RX_DATA_SIZE 1024 // I think this must be at least CDC_DATA_FS_OUT_PACKET_SIZE (was 2048)
#define APP_RX_DATA_SIZE 1024 // I think this must be at least CDC_DATA_FS_OUT_PACKET_SIZE (was 2048)
...
...
stmhal/usbd_conf.h
View file @
a6787edc
...
@@ -36,7 +36,6 @@
...
@@ -36,7 +36,6 @@
#include
<string.h>
#include
<string.h>
#include
"mpconfig.h"
#include
"mpconfig.h"
#include
"gc.h"
// for gc_alloc and gc_free
/* Exported types ------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
...
@@ -47,17 +46,18 @@
...
@@ -47,17 +46,18 @@
#define USBD_SUPPORT_USER_STRING 0
#define USBD_SUPPORT_USER_STRING 0
#define USBD_SELF_POWERED 0
#define USBD_SELF_POWERED 0
#define USBD_DEBUG_LEVEL 0
#define USBD_DEBUG_LEVEL 0
// for MSC device
#define MSC_MEDIA_PACKET 8192
/* Exported macro ------------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Memory management macros */
/* Memory management macros */
/*
these should not be used because the GC is reset on a soft reset but the usb is not
#include "gc.h"
#define USBD_malloc gc_alloc
#define USBD_malloc gc_alloc
#define USBD_free gc_free
#define USBD_free gc_free
#define USBD_memset memset
#define USBD_memset memset
#define USBD_memcpy memcpy
#define USBD_memcpy memcpy
*/
/* DEBUG macros */
/* DEBUG macros */
#if (USBD_DEBUG_LEVEL > 0)
#if (USBD_DEBUG_LEVEL > 0)
#define USBD_UsrLog(...) printf(__VA_ARGS__);\
#define USBD_UsrLog(...) printf(__VA_ARGS__);\
...
...
stmhal/usbdev/class/cdc_msc/inc/usbd_cdc_msc.h
View file @
a6787edc
...
@@ -5,11 +5,9 @@
...
@@ -5,11 +5,9 @@
#include
"usbd_msc_scsi.h"
#include
"usbd_msc_scsi.h"
#include
"usbd_ioreq.h"
#include
"usbd_ioreq.h"
// CDC endpoint parameters
// CDC and MSC packet sizes
#define CDC_DATA_FS_MAX_PACKET_SIZE 64 // Endpoint IN & OUT Packet size
#define CDC_DATA_FS_MAX_PACKET_SIZE (64) // endpoint IN & OUT packet size
#define CDC_CMD_PACKET_SIZE 8 // Control Endpoint Packet size
#define MSC_MEDIA_PACKET (2048) // was 8192; how low can it go whilst still working?
#define CDC_DATA_FS_IN_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE
#define CDC_DATA_FS_OUT_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE
#if 0
#if 0
// CDC
// CDC
...
@@ -34,7 +32,7 @@
...
@@ -34,7 +32,7 @@
#define MSC_IFACE_NUM (0)
#define MSC_IFACE_NUM (0)
#define MSC_IN_EP (0x81)
#define MSC_IN_EP (0x81)
#define MSC_OUT_EP (0x01)
#define MSC_OUT_EP (0x01)
#elif
0
#elif
1
// CDC + MSC
// CDC + MSC
#define USB_CDC_MSC_CONFIG_DESC_SIZ (98)
#define USB_CDC_MSC_CONFIG_DESC_SIZ (98)
#define NUM_INTERFACES (3)
#define NUM_INTERFACES (3)
...
...
stmhal/usbdev/class/cdc_msc/src/usbd_cdc_msc.c
View file @
a6787edc
...
@@ -3,17 +3,9 @@
...
@@ -3,17 +3,9 @@
#define USB_DESC_TYPE_ASSOCIATION (0x0b)
#define USB_DESC_TYPE_ASSOCIATION (0x0b)
/* currently unused
#define CDC_CMD_PACKET_SIZE 8 // Control Endpoint Packet size
#define CDC_SEND_ENCAPSULATED_COMMAND 0x00
#define CDC_DATA_FS_IN_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE
#define CDC_GET_ENCAPSULATED_RESPONSE 0x01
#define CDC_DATA_FS_OUT_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE
#define CDC_SET_COMM_FEATURE 0x02
#define CDC_GET_COMM_FEATURE 0x03
#define CDC_CLEAR_COMM_FEATURE 0x04
#define CDC_SET_LINE_CODING 0x20
#define CDC_GET_LINE_CODING 0x21
#define CDC_SET_CONTROL_LINE_STATE 0x22
#define CDC_SEND_BREAK 0x23
*/
#define BOT_GET_MAX_LUN 0xFE
#define BOT_GET_MAX_LUN 0xFE
#define BOT_RESET 0xFF
#define BOT_RESET 0xFF
...
...
stmhal/usbdev/core/inc/usbd_conf_template.h
deleted
100644 → 0
View file @
c2a4cb4f
/**
******************************************************************************
* @file usbd_conf_template.h
* @author MCD Application Team
* @version V2.0.0
* @date 18-February-2014
* @brief General low level driver configuration
******************************************************************************
* @attention
*
* <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USBD_CONF__H__
#define __USBD_CONF__H__
#include
"stm32f4xx.h"
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
/* Includes ------------------------------------------------------------------*/
/** @addtogroup USBD_OTG_DRIVER
* @{
*/
/** @defgroup USBD_CONF
* @brief usb otg low level driver configuration file
* @{
*/
/** @defgroup USBD_CONF_Exported_Defines
* @{
*/
#define USBD_MAX_NUM_INTERFACES 1
#define USBD_MAX_NUM_CONFIGURATION 1
#define USBD_MAX_STR_DESC_SIZ 0x100
#define USBD_SUPPORT_USER_STRING 0
#define USBD_SELF_POWERED 1
#define USBD_DEBUG_LEVEL 2
/* MSC Class Config */
#define MSC_MEDIA_PACKET 8192
/* CDC Class Config */
#define USBD_CDC_INTERVAL 2000
/* DFU Class Config */
#define USBD_DFU_MAX_ITF_NUM 1
#define USBD_DFU_XFERS_IZE 1024
/* AUDIO Class Config */
#define USBD_AUDIO_FREQ 22100
/** @defgroup USBD_Exported_Macros
* @{
*/
/* Memory management macros */
#define USBD_malloc malloc
#define USBD_free free
#define USBD_memset memset
#define USBD_memcpy memcpy
/* DEBUG macros */
#if (USBD_DEBUG_LEVEL > 0)
#define USBD_UsrLog(...) printf(__VA_ARGS__);\
printf
(
"
\n
"
);
#else
#define USBD_UsrLog(...)
#endif
#if (USBD_DEBUG_LEVEL > 1)
#define USBD_ErrLog(...) printf("ERROR: ") ;\
printf
(
__VA_ARGS__
);
\
printf
(
"
\n
"
);
#else
#define USBD_ErrLog(...)
#endif
#if (USBD_DEBUG_LEVEL > 2)
#define USBD_DbgLog(...) printf("DEBUG : ") ;\
printf
(
__VA_ARGS__
);
\
printf
(
"
\n
"
);
#else
#define USBD_DbgLog(...)
#endif
/**
* @}
*/
/**
* @}
*/
/** @defgroup USBD_CONF_Exported_Types
* @{
*/
/**
* @}
*/
/** @defgroup USBD_CONF_Exported_Macros
* @{
*/
/**
* @}
*/
/** @defgroup USBD_CONF_Exported_Variables
* @{
*/
/**
* @}
*/
/** @defgroup USBD_CONF_Exported_FunctionsPrototype
* @{
*/
/**
* @}
*/
#endif //__USBD_CONF__H__
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
stmhal/usbdev/core/src/usbd_conf_template.c
deleted
100644 → 0
View file @
c2a4cb4f
/**
******************************************************************************
* @file usbd_storage_template.c
* @author MCD Application Team
* @version V2.0.0
* @date 18-February-2014
* @brief Memory management layer
******************************************************************************
* @attention
*
* <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include
"usbd_storage.h"
/** @addtogroup STM32_USBD_DEVICE_LIBRARY
* @{
*/
/** @defgroup USBD_STORAGE
* @brief usbd core module
* @{
*/
/** @defgroup USBD_STORAGE_Private_TypesDefinitions
* @{
*/
/**
* @}
*/
/** @defgroup USBD_STORAGE_Private_Defines
* @{
*/
#define STORAGE_LUN_NBR 1
#define STORAGE_BLK_NBR 0x10000
#define STORAGE_BLK_SIZ 0x200
/**
* @}
*/
/** @defgroup USBD_STORAGE_Private_Macros
* @{
*/
/**
* @}
*/
/** @defgroup USBD_STORAGE_Private_FunctionPrototypes
* @{
*/
/**
* @}
*/
/** @defgroup USBD_STORAGE_Private_Functions
* @{
*/
int8_t
STORAGE_Init
(
uint8_t
lun
);
int8_t
STORAGE_GetCapacity
(
uint8_t
lun
,
uint32_t
*
block_num
,
uint16_t
*
block_size
);
int8_t
STORAGE_IsReady
(
uint8_t
lun
);
int8_t
STORAGE_IsWriteProtected
(
uint8_t
lun
);
int8_t
STORAGE_Read
(
uint8_t
lun
,
uint8_t
*
buf
,
uint32_t
blk_addr
,
uint16_t
blk_len
);
int8_t
STORAGE_Write
(
uint8_t
lun
,
uint8_t
*
buf
,
uint32_t
blk_addr
,
uint16_t
blk_len
);
int8_t
STORAGE_GetMaxLun
(
void
);
/** @defgroup USBD_STORAGE_Private_Variables
* @{
*/
/* USB Mass storage Standard Inquiry Data */
int8_t
STORAGE_Inquirydata
[]
=
{
//36
/* LUN 0 */
0x00
,
0x80
,
0x02
,
0x02
,
(
STANDARD_INQUIRY_DATA_LEN
-
5
),
0x00
,
0x00
,
0x00
,
'S'
,
'T'
,
'M'
,
' '
,
' '
,
' '
,
' '
,
' '
,
/* Manufacturer : 8 bytes */
'P'
,
'r'
,
'o'
,
'd'
,
'u'
,
'c'
,
't'
,
' '
,
/* Product : 16 Bytes */
' '
,
' '
,
' '
,
' '
,
' '
,
' '
,
' '
,
' '
,
'0'
,
'.'
,
'0'
,
'1'
,
/* Version : 4 Bytes */
};
USBD_StorageTypeDef
USBD_MSD_fops
=
{
STORAGE_Init
,
STORAGE_GetCapacity
,
STORAGE_IsReady
,
STORAGE_IsWriteProtected
,
STORAGE_Read
,
STORAGE_Write
,
STORAGE_GetMaxLun
,
STORAGE_Inquirydata
,
};
/**
* @}
*/
/** @defgroup USBD_CORE_Private_Functions
* @{
*/
/**
* @brief STORAGE_Init
* Initailizes the storage unit (medium)
* @param lun: logical unit number
* @retval status (0 : Ok / -1 : Error)
*/
int8_t
STORAGE_Init
(
uint8_t
lun
)
{
return
(
0
);
}
/**
* @brief STORAGE_GetCapacity
* return medium capacity
* @param lun: logical unit number
* @param block_num: number of total block number
* @param block_size: block size
* @retval status (0 : Ok / -1 : Error)
*/
int8_t
STORAGE_GetCapacity
(
uint8_t
lun
,
uint32_t
*
block_num
,
uint16_t
*
block_size
)
{
*
block_num
=
STORAGE_BLK_NBR
-
1
;
*
block_size
=
STORAGE_BLK_SIZ
;
return
(
0
);
}
/**
* @brief STORAGE_IsReady
* check whether the medium is ready
* @param lun: logical unit number
* @retval status (0 : Ok / -1 : Error)
*/
int8_t
STORAGE_IsReady
(
uint8_t
lun
)
{
return
(
0
);
}
/**
* @brief STORAGE_IsWriteProtected
* check whether the medium is write protected
* @param lun: logical unit number
* @retval status (0 : write enabled / -1 : otherwise)
*/
int8_t
STORAGE_IsWriteProtected
(
uint8_t
lun
)
{
return
0
;
}
/**
* @brief STORAGE_Read
* Read data from the medium
* @param lun: logical unit number
* @param blk_addr: logical block address
* @param blk_len: blocks number
* @retval status (0 : Ok / -1 : Error)
*/
int8_t
STORAGE_Read
(
uint8_t
lun
,
uint8_t
*
buf
,
uint32_t
blk_addr
,
uint16_t
blk_len
)
{
return
(
0
);
}
/**
* @brief STORAGE_Write
* Write data into the medium
* @param lun: logical unit number
* @param blk_addr: logical block address
* @param blk_len: blocks number
* @retval status (0 : Ok / -1 : Error)
*/
int8_t
STORAGE_Write
(
uint8_t
lun
,
uint8_t
*
buf
,
uint32_t
blk_addr
,
uint16_t
blk_len
)
{
return
(
0
);
}
/**
* @brief STORAGE_GetMaxLun
* return the Max Supported LUNs
* @param none
* @retval lun(s) number
*/
int8_t
STORAGE_GetMaxLun
(
void
)
{
return
(
STORAGE_LUN_NBR
-
1
);
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment