diff --git a/.project b/.project
index 134de79..fd0262f 100644
--- a/.project
+++ b/.project
@@ -26,5 +26,21 @@
-
+
+ USB_Device_Library/usbd_core.c
+ 1
+ PARENT-2-PROJECT_LOC/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c
+
+ USB_Device_Library/usbd_ctlreq.c
+ 1
+ PARENT-2-PROJECT_LOC/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c
+
+ USB_Device_Library/usbd_ioreq.c
+ 1
+ PARENT-2-PROJECT_LOC/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c
+
+ USB_Device_Library/usbd_cdc.c
+ 1
+ PARENT-2-PROJECT_LOC/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4b8439c..f492c25 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,21 @@
+# 1.2.3 (2022-08-23)
+## New features
+* none
+## Bug fixes
+* KISS TX (UART and USB) buffer overrun, minor changes
+## Other
+* none
+## Known bugs
+* none as far
+# 1.2.2 (2022-06-11)
+## New features
+* none
+## Bug fixes
+* Default de-dupe time was 0, backspace was sometimes stored in config, frame length was not checked in viscous delay mode
+## Other
+* none
+## Known bugs
+* USB in KISS mode has problem with TX frames
# 1.2.2 (2022-06-11)
## New features
* none
diff --git a/F103C8T6_DIGI_USB.ioc b/F103C8T6_DIGI_USB.ioc
index 67bb8f7..136ce5f 100644
--- a/F103C8T6_DIGI_USB.ioc
+++ b/F103C8T6_DIGI_USB.ioc
@@ -79,6 +79,7 @@ ProjectManager.PreviousToolchain=SW4STM32
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=F103C8T6_DIGI_USB.ioc
ProjectManager.ProjectName=F103C8T6_DIGI_USB
+ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=SW4STM32
ProjectManager.ToolChainLocation=
diff --git a/F103C8T6_DIGI_USB.xml b/F103C8T6_DIGI_USB.xml
index a09e329..cf0913b 100644
--- a/F103C8T6_DIGI_USB.xml
+++ b/F103C8T6_DIGI_USB.xml
@@ -12,7 +12,7 @@
F103C8T6_DIGI_USB
- SWD
+ JTAG
ST-Link
stm32f103c8tx
diff --git a/Inc/drivers/uart.h b/Inc/drivers/uart.h
index afefd3d..b2bcf49 100644
--- a/Inc/drivers/uart.h
+++ b/Inc/drivers/uart.h
@@ -50,6 +50,7 @@ typedef struct
uint16_t buftxrd, buftxwr; //tx buffer indexes
Uart_mode mode; //uart mode
uint8_t enabled;
+ uint32_t kissTimer;
} Uart;
Uart uart1, uart2;
diff --git a/Inc/main.h b/Inc/main.h
index 7e974ce..2b36bf2 100644
--- a/Inc/main.h
+++ b/Inc/main.h
@@ -17,7 +17,7 @@
*
******************************************************************************
*/
-/* USER CODE END Header */
+
/*
This file is part of VP-Digi.
@@ -34,6 +34,8 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with VP-Digi. If not, see .
*/
+/* USER CODE END Header */
+
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H
diff --git a/Inc/stm32f1xx_hal_conf.h b/Inc/stm32f1xx_hal_conf.h
index f5c573f..0b8e82a 100644
--- a/Inc/stm32f1xx_hal_conf.h
+++ b/Inc/stm32f1xx_hal_conf.h
@@ -14,7 +14,7 @@
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
- */
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F1xx_HAL_CONF_H
@@ -29,10 +29,10 @@
/* ########################## Module Selection ############################## */
/**
- * @brief This is the list of modules to be used in the HAL driver
+ * @brief This is the list of modules to be used in the HAL driver
*/
-
-#define HAL_MODULE_ENABLED
+
+#define HAL_MODULE_ENABLED
/*#define HAL_ADC_MODULE_ENABLED */
/*#define HAL_CRYP_MODULE_ENABLED */
/*#define HAL_CAN_MODULE_ENABLED */
@@ -80,9 +80,9 @@
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
* This value is used by the RCC HAL module to compute the system frequency
- * (when HSE is used as system clock source, directly or through the PLL).
+ * (when HSE is used as system clock source, directly or through the PLL).
*/
-#if !defined (HSE_VALUE)
+#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
@@ -93,7 +93,7 @@
/**
* @brief Internal High Speed oscillator (HSI) value.
* This value is used by the RCC HAL module to compute the system frequency
- * (when HSI is used as system clock source, directly or through the PLL).
+ * (when HSI is used as system clock source, directly or through the PLL).
*/
#if !defined (HSI_VALUE)
#define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/
@@ -102,7 +102,7 @@
/**
* @brief Internal Low Speed oscillator (LSI) value.
*/
-#if !defined (LSI_VALUE)
+#if !defined (LSI_VALUE)
#define LSI_VALUE 40000U /*!< LSI Typical Value in Hz */
#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
The real value may vary depending on the variations
@@ -126,9 +126,9 @@
/* ########################### System Configuration ######################### */
/**
* @brief This is the HAL system configuration section
- */
-#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */
-#define TICK_INT_PRIORITY ((uint32_t)0) /*!< tick interrupt priority (lowest by default) */
+ */
+#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY ((uint32_t)0) /*!< tick interrupt priority (lowest by default) */
#define USE_RTOS 0
#define PREFETCH_ENABLE 1
@@ -158,7 +158,7 @@
/* ########################## Assert Selection ############################## */
/**
- * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
* HAL drivers code
*/
/* #define USE_FULL_ASSERT 1U */
@@ -175,7 +175,7 @@
#define MAC_ADDR4 0
#define MAC_ADDR5 0
-/* Definition of the Ethernet driver buffers size and count */
+/* Definition of the Ethernet driver buffers size and count */
#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
#define ETH_RXBUFNB ((uint32_t)8) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
@@ -183,9 +183,9 @@
/* Section 2: PHY configuration section */
-/* DP83848_PHY_ADDRESS Address*/
+/* DP83848_PHY_ADDRESS Address*/
#define DP83848_PHY_ADDRESS 0x01U
-/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
+/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
#define PHY_RESET_DELAY ((uint32_t)0x000000FF)
/* PHY Configuration delay */
#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFF)
@@ -197,7 +197,7 @@
#define PHY_BCR ((uint16_t)0x00) /*!< Transceiver Basic Control Register */
#define PHY_BSR ((uint16_t)0x01) /*!< Transceiver Basic Status Register */
-
+
#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */
#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */
#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */
@@ -212,7 +212,7 @@
#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */
#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */
#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */
-
+
/* Section 4: Extended PHY Registers */
#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
diff --git a/Inc/stm32f1xx_it.h b/Inc/stm32f1xx_it.h
index a9abf0e..3594467 100644
--- a/Inc/stm32f1xx_it.h
+++ b/Inc/stm32f1xx_it.h
@@ -24,7 +24,7 @@
#ifdef __cplusplus
extern "C" {
-#endif
+#endif
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
diff --git a/Inc/usbd_cdc_if.h b/Inc/usbd_cdc_if.h
index 7a8222e..84ca6fa 100644
--- a/Inc/usbd_cdc_if.h
+++ b/Inc/usbd_cdc_if.h
@@ -38,11 +38,11 @@
* @brief For Usb device.
* @{
*/
-
+
/** @defgroup USBD_CDC_IF USBD_CDC_IF
* @brief Usb VCP device module
* @{
- */
+ */
/** @defgroup USBD_CDC_IF_Exported_Defines USBD_CDC_IF_Exported_Defines
* @brief Defines.
diff --git a/Inc/usbd_desc.h b/Inc/usbd_desc.h
index 1b67ef4..4bc2299 100644
--- a/Inc/usbd_desc.h
+++ b/Inc/usbd_desc.h
@@ -17,7 +17,7 @@
*
******************************************************************************
*/
-/* USER CODE END Header */
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USBD_DESC__C__
#define __USBD_DESC__C__
@@ -41,7 +41,7 @@
* @brief Usb device descriptors module.
* @{
*/
-
+
/** @defgroup USBD_DESC_Exported_Constants USBD_DESC_Exported_Constants
* @brief Constants.
* @{
diff --git a/Src/common.c b/Src/common.c
index c646e09..a3b6164 100644
--- a/Src/common.c
+++ b/Src/common.c
@@ -25,7 +25,7 @@ uint8_t callSsid = 0;
const uint8_t dest[7] = {130, 160, 156, 172, 96, 98, 96}; //APNV01-0
-const uint8_t *versionString = (const uint8_t*)"VP-Digi v. 1.2.2\r\nThe open-source standalone APRS digipeater controller and KISS TNC\r\n";
+const uint8_t *versionString = (const uint8_t*)"VP-Digi v. 1.2.3\r\nThe open-source standalone APRS digipeater controller and KISS TNC\r\n";
uint8_t autoReset = 0;
uint32_t autoResetTimer = 0;
diff --git a/Src/drivers/uart.c b/Src/drivers/uart.c
index df72f2d..e7bfa1f 100644
--- a/Src/drivers/uart.c
+++ b/Src/drivers/uart.c
@@ -16,6 +16,7 @@ along with VP-Digi. If not, see .
*/
#include "drivers/uart.h"
+#include "drivers/systick.h"
#include "terminal.h"
#include "ax25.h"
#include "common.h"
@@ -66,7 +67,6 @@ uint8_t Uart_txKiss(uint8_t *buf, uint16_t len)
return 0;
}
-
static volatile void uart_handleInterrupt(Uart *port)
{
if(port->port->SR & USART_SR_RXNE) //byte received
@@ -81,6 +81,8 @@ static volatile void uart_handleInterrupt(Uart *port)
port->bufrxidx %= UARTBUFLEN;
+ if(port->mode == MODE_KISS)
+ port->kissTimer = ticks + 500; //set timeout to 5s in KISS mode
}
if(port->port->SR & USART_SR_IDLE) //line is idle, end of data reception
{
@@ -88,14 +90,16 @@ static volatile void uart_handleInterrupt(Uart *port)
if(port->bufrxidx == 0)
return; //no data, stop
- if((port->bufrx[0] == 0xc0) /*&& (port->bufrx[1] == 0x00)*/ && (port->bufrx[port->bufrxidx - 1] == 0xc0)) //data starts and ends with 0xc0, this is a KISS frame
+ if((port->bufrx[0] == 0xc0) && (port->bufrx[port->bufrxidx - 1] == 0xc0)) //data starts with 0xc0 and ends with 0xc0 - this is a KISS frame
{
port->rxflag = DATA_KISS;
+ port->kissTimer = 0;
}
if(((port->bufrx[port->bufrxidx - 1] == '\r') || (port->bufrx[port->bufrxidx - 1] == '\n'))) //data ends with \r or \n, process as data
{
port->rxflag = DATA_TERM;
+ port->kissTimer = 0;
}
}
@@ -111,6 +115,13 @@ static volatile void uart_handleInterrupt(Uart *port)
port->port->CR1 &= ~USART_CR1_TXEIE;
}
}
+
+ if((port->kissTimer > 0) && (ticks >= port->kissTimer)) //KISS timer timeout
+ {
+ port->kissTimer = 0;
+ port->bufrxidx = 0;
+ memset(port->bufrx, 0, UARTBUFLEN);
+ }
}
void USART1_IRQHandler(void) __attribute__ ((interrupt));
@@ -251,6 +262,7 @@ void uart_init(Uart *port, USART_TypeDef *uart, uint32_t baud)
port->buftxwr = 0;
port->mode = MODE_KISS;
port->enabled = 0;
+ port->kissTimer = 0;
memset(port->bufrx, 0, UARTBUFLEN);
memset(port->buftx, 0, UARTBUFLEN);
}
diff --git a/Src/main.c b/Src/main.c
index 1d2ef82..fca770d 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -178,7 +178,7 @@ void handleFrame(void)
term_sendMonitor((uint8_t*)"(AX.25) Frame received [", 0); //show which modem received the frame: [FP] (flat and preemphasized), [FD] (flat and deemphasized - in flat audio input mode)
//[F_] (only flat), [_P] (only preemphasized) or [_D] (only deemphasized - in flat audio input mode)
- uint8_t t[3] = {0};
+ uint8_t t[2] = {0};
if(modemReceived & 1)
{
t[0] = 'F';
@@ -195,7 +195,7 @@ void handleFrame(void)
else
t[1] = '_';
- term_sendMonitor(t, 3);
+ term_sendMonitor(t, 2);
term_sendMonitor((uint8_t*)"], signal level ", 0);
term_sendMonitorNumber(ax25.sLvl);
term_sendMonitor((uint8_t*)"%: ", 0);
@@ -297,10 +297,13 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
+
+ static uint32_t usbKissTimer = 0;
while (1)
{
/* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
+
+ /* USER CODE BEGIN 3 */
Wdog_reset();
if(ax25.frameReceived)
@@ -316,18 +319,31 @@ int main(void)
if(USBint) //USB "interrupt"
{
USBint = 0; //clear
+
+ if(USBmode == MODE_KISS) //is USB in KISS mode?
+ usbKissTimer = ticks + 500; //set timeout to 5s
+
term_handleSpecial(TERM_USB); //handle special characters (e.g. backspace)
if((usbcdcdata[0] == 0xc0) && /*(usbcdcdata[1] == 0x00) &&*/ (usbcdcdata[usbcdcidx - 1] == 0xc0)) //probably a KISS frame
{
USBrcvd = DATA_KISS;
+ usbKissTimer = 0;
}
if(((usbcdcdata[usbcdcidx - 1] == '\r') || (usbcdcdata[usbcdcidx - 1] == '\n'))) //proabably a command
{
USBrcvd = DATA_TERM;
+ usbKissTimer = 0;
}
}
+ if((usbKissTimer > 0) && (ticks >= usbKissTimer)) //USB KISS timer timeout
+ {
+ usbcdcidx = 0;
+ memset(usbcdcdata, 0, UARTBUFLEN);
+ usbKissTimer = 0;
+ }
+
if(USBrcvd != DATA_NOTHING)
{
@@ -373,7 +389,7 @@ void SystemClock_Config(void)
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
@@ -386,7 +402,7 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
@@ -447,7 +463,7 @@ void Error_Handler(void)
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
-{
+{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
diff --git a/Src/stm32f1xx_hal_msp.c b/Src/stm32f1xx_hal_msp.c
index cb446db..79eb662 100644
--- a/Src/stm32f1xx_hal_msp.c
+++ b/Src/stm32f1xx_hal_msp.c
@@ -72,7 +72,7 @@ void HAL_MspInit(void)
/* System interrupt init*/
- /** NONJTRST: Full SWJ (JTAG-DP + SW-DP) but without NJTRST
+ /** NONJTRST: Full SWJ (JTAG-DP + SW-DP) but without NJTRST
*/
__HAL_AFIO_REMAP_SWJ_NONJTRST();
diff --git a/Src/stm32f1xx_it.c b/Src/stm32f1xx_it.c
index 77c558e..6d4e4da 100644
--- a/Src/stm32f1xx_it.c
+++ b/Src/stm32f1xx_it.c
@@ -63,7 +63,7 @@ extern PCD_HandleTypeDef hpcd_USB_FS;
/* USER CODE END EV */
/******************************************************************************/
-/* Cortex-M3 Processor Interruption and Exception Handlers */
+/* Cortex-M3 Processor Interruption and Exception Handlers */
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
diff --git a/Src/terminal.c b/Src/terminal.c
index 2de3d2d..36222da 100644
--- a/Src/terminal.c
+++ b/Src/terminal.c
@@ -27,7 +27,7 @@ uint8_t termBuf[TERMBUFLEN]; //terminal mode TX buffer
uint16_t termBufIdx = 0; //terminal mode TX buffer index
-static uint16_t spLastIdx[3] = {0, 0, 0}; //index buffer was "special" terminal cases
+uint16_t spLastIdx[3] = {0, 0, 0}; //index buffer was "special" terminal cases
/**
* @brief Handle "special" terminal cases like backspace or local echo
diff --git a/Src/usb_device.c b/Src/usb_device.c
index f533322..ecf76c2 100644
--- a/Src/usb_device.c
+++ b/Src/usb_device.c
@@ -67,7 +67,7 @@ void MX_USB_DEVICE_Init(void)
/* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
/* USER CODE END USB_DEVICE_Init_PreTreatment */
-
+
/* Init Device Library, add supported class and start the library. */
if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
{
diff --git a/Src/usbd_conf.c b/Src/usbd_conf.c
index a89d81f..7750823 100644
--- a/Src/usbd_conf.c
+++ b/Src/usbd_conf.c
@@ -17,7 +17,7 @@
*
******************************************************************************
*/
-/* USER CODE END Header */
+/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx.h"
@@ -173,7 +173,7 @@ static void PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
#else
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
-{
+{
USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
if ( hpcd->Init.speed != PCD_SPEED_FULL)
@@ -354,8 +354,8 @@ USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev)
hal_status = HAL_PCD_DeInit(pdev->pData);
usb_status = USBD_Get_USB_Status(hal_status);
-
- return usb_status;
+
+ return usb_status;
}
/**
@@ -367,11 +367,11 @@ USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
{
HAL_StatusTypeDef hal_status = HAL_OK;
USBD_StatusTypeDef usb_status = USBD_OK;
-
+
hal_status = HAL_PCD_Start(pdev->pData);
-
+
usb_status = USBD_Get_USB_Status(hal_status);
-
+
return usb_status;
}
@@ -388,7 +388,7 @@ USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev)
hal_status = HAL_PCD_Stop(pdev->pData);
usb_status = USBD_Get_USB_Status(hal_status);
-
+
return usb_status;
}
@@ -408,7 +408,7 @@ USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uin
hal_status = HAL_PCD_EP_Open(pdev->pData, ep_addr, ep_mps, ep_type);
usb_status = USBD_Get_USB_Status(hal_status);
-
+
return usb_status;
}
@@ -422,12 +422,12 @@ USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_StatusTypeDef hal_status = HAL_OK;
USBD_StatusTypeDef usb_status = USBD_OK;
-
+
hal_status = HAL_PCD_EP_Close(pdev->pData, ep_addr);
-
+
usb_status = USBD_Get_USB_Status(hal_status);
- return usb_status;
+ return usb_status;
}
/**
@@ -440,12 +440,12 @@ USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_StatusTypeDef hal_status = HAL_OK;
USBD_StatusTypeDef usb_status = USBD_OK;
-
+
hal_status = HAL_PCD_EP_Flush(pdev->pData, ep_addr);
-
+
usb_status = USBD_Get_USB_Status(hal_status);
-
- return usb_status;
+
+ return usb_status;
}
/**
@@ -458,12 +458,12 @@ USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_StatusTypeDef hal_status = HAL_OK;
USBD_StatusTypeDef usb_status = USBD_OK;
-
+
hal_status = HAL_PCD_EP_SetStall(pdev->pData, ep_addr);
usb_status = USBD_Get_USB_Status(hal_status);
-
- return usb_status;
+
+ return usb_status;
}
/**
@@ -476,12 +476,12 @@ USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_add
{
HAL_StatusTypeDef hal_status = HAL_OK;
USBD_StatusTypeDef usb_status = USBD_OK;
-
- hal_status = HAL_PCD_EP_ClrStall(pdev->pData, ep_addr);
-
+
+ hal_status = HAL_PCD_EP_ClrStall(pdev->pData, ep_addr);
+
usb_status = USBD_Get_USB_Status(hal_status);
- return usb_status;
+ return usb_status;
}
/**
@@ -493,14 +493,14 @@ USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_add
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->pData;
-
+
if((ep_addr & 0x80) == 0x80)
{
- return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
+ return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
}
else
{
- return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
+ return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
}
}
@@ -514,12 +514,12 @@ USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_a
{
HAL_StatusTypeDef hal_status = HAL_OK;
USBD_StatusTypeDef usb_status = USBD_OK;
-
+
hal_status = HAL_PCD_SetAddress(pdev->pData, dev_addr);
-
+
usb_status = USBD_Get_USB_Status(hal_status);
-
- return usb_status;
+
+ return usb_status;
}
/**
@@ -527,7 +527,7 @@ USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_a
* @param pdev: Device handle
* @param ep_addr: Endpoint number
* @param pbuf: Pointer to data to be sent
- * @param size: Data size
+ * @param size: Data size
* @retval USBD status
*/
USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t size)
@@ -536,10 +536,10 @@ USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, u
USBD_StatusTypeDef usb_status = USBD_OK;
hal_status = HAL_PCD_EP_Transmit(pdev->pData, ep_addr, pbuf, size);
-
+
usb_status = USBD_Get_USB_Status(hal_status);
-
- return usb_status;
+
+ return usb_status;
}
/**
@@ -556,10 +556,10 @@ USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_a
USBD_StatusTypeDef usb_status = USBD_OK;
hal_status = HAL_PCD_EP_Receive(pdev->pData, ep_addr, pbuf, size);
-
+
usb_status = USBD_Get_USB_Status(hal_status);
-
- return usb_status;
+
+ return usb_status;
}
/**
diff --git a/Src/usbd_desc.c b/Src/usbd_desc.c
index ce37c2f..daf419d 100644
--- a/Src/usbd_desc.c
+++ b/Src/usbd_desc.c
@@ -95,19 +95,18 @@
/**
* @}
*/
-
+
/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
* @brief Private functions declaration.
* @{
*/
-
+
static void Get_SerialNum(void);
static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len);
-
+
/**
* @}
- */
-
+ */
/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
* @brief Private functions declaration for FS.
@@ -199,7 +198,7 @@ __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END =
__ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END;
#if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
+ #pragma data_alignment=4
#endif
__ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = {
USB_SIZ_STRING_SERIAL,
@@ -332,8 +331,8 @@ uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *leng
}
/**
- * @brief Create the serial number string descriptor
- * @param None
+ * @brief Create the serial number string descriptor
+ * @param None
* @retval None
*/
static void Get_SerialNum(void)
@@ -354,9 +353,9 @@ static void Get_SerialNum(void)
}
/**
- * @brief Convert Hex 32Bits value into char
+ * @brief Convert Hex 32Bits value into char
* @param value: value to convert
- * @param pbuf: pointer to the buffer
+ * @param pbuf: pointer to the buffer
* @param len: buffer length
* @retval None
*/