mirror of https://github.com/ARMmbed/mbed-os.git
Add more comments
parent
84577f9634
commit
0448d64f62
|
@ -122,10 +122,13 @@ typedef enum
|
|||
(__HANDLE__)->Lock = HAL_UNLOCKED; \
|
||||
}while (0)
|
||||
#endif /* USE_RTOS */
|
||||
|
||||
// Added for MBED PR #3062
|
||||
#if defined (__CC_ARM)
|
||||
#pragma diag_suppress 3731
|
||||
#endif
|
||||
|
||||
// Added for MBED PR #3062
|
||||
static inline void atomic_set_u32(volatile uint32_t *ptr, uint32_t mask)
|
||||
{
|
||||
uint32_t newValue;
|
||||
|
@ -135,7 +138,7 @@ static inline void atomic_set_u32(volatile uint32_t *ptr, uint32_t mask)
|
|||
} while (__STREXW(newValue, ptr));
|
||||
}
|
||||
|
||||
|
||||
// Added for MBED PR #3062
|
||||
static inline void atomic_clr_u32(volatile uint32_t *ptr, uint32_t mask)
|
||||
{
|
||||
uint32_t newValue;
|
||||
|
|
|
@ -206,7 +206,9 @@ HAL_StatusTypeDef HAL_HCD_HC_Init(HCD_HandleTypeDef *hhcd,
|
|||
hhcd->hc[ch_num].ep_num = epnum & 0x7F;
|
||||
hhcd->hc[ch_num].ep_is_in = ((epnum & 0x80) == 0x80);
|
||||
hhcd->hc[ch_num].speed = speed;
|
||||
/* reset to 0 */
|
||||
|
||||
// Added for MBED PR #3432
|
||||
/* reset to 0 */
|
||||
hhcd->hc[ch_num].toggle_out = 0;
|
||||
hhcd->hc[ch_num].toggle_in = 0;
|
||||
|
||||
|
@ -346,6 +348,7 @@ HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd,
|
|||
uint16_t length,
|
||||
uint8_t do_ping)
|
||||
{
|
||||
// Added for MBED PR #3432
|
||||
if ((hhcd->hc[ch_num].ep_is_in != direction)) {
|
||||
if ((hhcd->hc[ch_num].ep_type == EP_TYPE_CTRL)){
|
||||
/* reconfigure the endpoint !!! from tx -> rx, and rx ->tx */
|
||||
|
@ -401,6 +404,7 @@ HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd,
|
|||
hhcd->hc[ch_num].do_ping = do_ping;
|
||||
}
|
||||
}
|
||||
// Added for MBED PR #3432
|
||||
else if ((token == 1) && (direction == 1))
|
||||
{
|
||||
if( hhcd->hc[ch_num].toggle_in == 0)
|
||||
|
@ -910,6 +914,7 @@ static void HCD_HC_IN_IRQHandler (HCD_HandleTypeDef *hhcd, uint8_t chnum)
|
|||
}
|
||||
else if ((USBx_HC(chnum)->HCINT) & USB_OTG_HCINT_CHH)
|
||||
{
|
||||
// Added for MBED PR #3432
|
||||
int reactivate = 0;
|
||||
__HAL_HCD_MASK_HALT_HC_INT(chnum);
|
||||
|
||||
|
@ -939,6 +944,7 @@ static void HCD_HC_IN_IRQHandler (HCD_HandleTypeDef *hhcd, uint8_t chnum)
|
|||
/* re-activate the channel */
|
||||
tmpreg = USBx_HC(chnum)->HCCHAR;
|
||||
tmpreg &= ~USB_OTG_HCCHAR_CHDIS;
|
||||
// Added for MBED PR #3432 #4231
|
||||
if ( hhcd->hc[chnum].urb_state != URB_ERROR) {
|
||||
tmpreg |= USB_OTG_HCCHAR_CHENA;
|
||||
reactivate = 1;
|
||||
|
@ -946,6 +952,7 @@ static void HCD_HC_IN_IRQHandler (HCD_HandleTypeDef *hhcd, uint8_t chnum)
|
|||
USBx_HC(chnum)->HCCHAR = tmpreg;
|
||||
}
|
||||
__HAL_HCD_CLEAR_HC_INT(chnum, USB_OTG_HCINT_CHH);
|
||||
// Added for MBED PR #3432 #4231
|
||||
if (hhcd->hc[chnum].state == 0) reactivate = 1;
|
||||
if (reactivate == 0) HAL_HCD_HC_NotifyURBChange_Callback(hhcd, chnum, hhcd->hc[chnum].urb_state);
|
||||
}
|
||||
|
|
|
@ -2592,6 +2592,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c,
|
|||
/* Prepare transfer parameters */
|
||||
hi2c->pBuffPtr = pData;
|
||||
hi2c->XferCount = Size;
|
||||
// Added for MBED PR #3324
|
||||
hi2c->XferOptions = (XferOptions & (~I2C_RELOAD_MODE));
|
||||
hi2c->XferISR = I2C_Master_ISR_IT;
|
||||
|
||||
|
@ -2665,6 +2666,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c,
|
|||
/* Prepare transfer parameters */
|
||||
hi2c->pBuffPtr = pData;
|
||||
hi2c->XferCount = Size;
|
||||
// Added for MBED PR #3324
|
||||
hi2c->XferOptions = (XferOptions & (~I2C_RELOAD_MODE));
|
||||
hi2c->XferISR = I2C_Master_ISR_IT;
|
||||
|
||||
|
|
|
@ -162,8 +162,11 @@ HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd)
|
|||
{
|
||||
/* Allocate lock resource and initialize it */
|
||||
hpcd->Lock = HAL_UNLOCKED;
|
||||
for (index = 0; index < hpcd->Init.dev_endpoints ; index++)
|
||||
hpcd->EPLock[index].Lock = HAL_UNLOCKED;
|
||||
|
||||
// Added for MBED PR #3062
|
||||
for (index = 0; index < hpcd->Init.dev_endpoints ; index++)
|
||||
hpcd->EPLock[index].Lock = HAL_UNLOCKED;
|
||||
|
||||
/* Init the low level hardware : GPIO, CLOCK, NVIC... */
|
||||
HAL_PCD_MspInit(hpcd);
|
||||
}
|
||||
|
@ -469,6 +472,8 @@ void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)
|
|||
if(( epint & USB_OTG_DIEPINT_XFRC) == USB_OTG_DIEPINT_XFRC)
|
||||
{
|
||||
fifoemptymsk = 0x1 << epnum;
|
||||
|
||||
// Added for MBED PR #3062
|
||||
atomic_clr_u32(&USBx_DEVICE->DIEPEMPMSK, fifoemptymsk);
|
||||
|
||||
CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_XFRC);
|
||||
|
@ -1188,6 +1193,7 @@ HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, u
|
|||
ep->is_in = 0;
|
||||
ep->num = ep_addr & 0x7F;
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_LOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
if ((ep_addr & 0x7F) == 0 )
|
||||
|
@ -1198,6 +1204,8 @@ HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, u
|
|||
{
|
||||
USB_EPStartXfer(hpcd->Instance, ep, hpcd->Init.dma_enable);
|
||||
}
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_UNLOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
return HAL_OK;
|
||||
|
@ -1233,7 +1241,8 @@ HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr,
|
|||
ep->xfer_count = 0;
|
||||
ep->is_in = 1;
|
||||
ep->num = ep_addr & 0x7F;
|
||||
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_LOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
if ((ep_addr & 0x7F) == 0 )
|
||||
|
@ -1244,7 +1253,8 @@ HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr,
|
|||
{
|
||||
USB_EPStartXfer(hpcd->Instance, ep, hpcd->Init.dma_enable);
|
||||
}
|
||||
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_UNLOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
return HAL_OK;
|
||||
|
@ -1272,13 +1282,17 @@ HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
|
|||
ep->is_stall = 1;
|
||||
ep->num = ep_addr & 0x7F;
|
||||
ep->is_in = ((ep_addr & 0x80) == 0x80);
|
||||
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_LOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
USB_EPSetStall(hpcd->Instance , ep);
|
||||
if((ep_addr & 0x7F) == 0)
|
||||
{
|
||||
USB_EP0_OutStart(hpcd->Instance, hpcd->Init.dma_enable, (uint8_t *)hpcd->Setup);
|
||||
}
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_UNLOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
return HAL_OK;
|
||||
|
@ -1306,9 +1320,13 @@ HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
|
|||
ep->is_stall = 0;
|
||||
ep->num = ep_addr & 0x7F;
|
||||
ep->is_in = ((ep_addr & 0x80) == 0x80);
|
||||
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_LOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
USB_EPClearStall(hpcd->Instance , ep);
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_UNLOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
return HAL_OK;
|
||||
|
@ -1322,7 +1340,9 @@ HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
|
|||
*/
|
||||
HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
|
||||
{
|
||||
// Added for MBED PR #3062
|
||||
__HAL_LOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
if ((ep_addr & 0x80) == 0x80)
|
||||
{
|
||||
USB_FlushTxFifo(hpcd->Instance, ep_addr & 0x7F);
|
||||
|
@ -1331,7 +1351,8 @@ HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
|
|||
{
|
||||
USB_FlushRxFifo(hpcd->Instance);
|
||||
}
|
||||
|
||||
|
||||
// Added for MBED PR #3062
|
||||
__HAL_UNLOCK(&hpcd->EPLock[ep_addr & 0x7F]);
|
||||
|
||||
return HAL_OK;
|
||||
|
@ -1444,6 +1465,7 @@ static HAL_StatusTypeDef PCD_WriteEmptyTxFifo(PCD_HandleTypeDef *hpcd, uint32_t
|
|||
if(len <= 0)
|
||||
{
|
||||
fifoemptymsk = 0x1 << epnum;
|
||||
// Added for MBED PR #3062
|
||||
atomic_clr_u32(&USBx_DEVICE->DIEPEMPMSK, fifoemptymsk);
|
||||
|
||||
}
|
||||
|
|
|
@ -117,6 +117,8 @@ typedef USB_TypeDef PCD_TypeDef;
|
|||
typedef USB_CfgTypeDef PCD_InitTypeDef;
|
||||
typedef USB_EPTypeDef PCD_EPTypeDef;
|
||||
#endif /* USB */
|
||||
|
||||
// Added for MBED PR #3062
|
||||
typedef struct
|
||||
{
|
||||
HAL_LockTypeDef Lock;
|
||||
|
@ -133,6 +135,7 @@ typedef struct
|
|||
PCD_EPTypeDef IN_ep[15]; /*!< IN endpoint parameters */
|
||||
PCD_EPTypeDef OUT_ep[15]; /*!< OUT endpoint parameters */
|
||||
HAL_LockTypeDef Lock; /*!< PCD peripheral status */
|
||||
// Added for MBED PR #3062
|
||||
PCD_EPLockDef EPLock[15];
|
||||
__IO PCD_StateTypeDef State; /*!< PCD communication state */
|
||||
uint32_t Setup[12]; /*!< Setup packet buffer */
|
||||
|
|
|
@ -650,6 +650,7 @@ HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint
|
|||
hspi->ErrorCode = HAL_SPI_ERROR_FLAG;
|
||||
}
|
||||
|
||||
// Added for MBED PR #4975
|
||||
if (hspi->Init.Direction == SPI_DIRECTION_1LINE) {
|
||||
__HAL_SPI_DISABLE(hspi);
|
||||
}
|
||||
|
|
|
@ -570,6 +570,7 @@ HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDe
|
|||
/* Enable the Tx FIFO Empty Interrupt for this EP */
|
||||
if (ep->xfer_len > 0)
|
||||
{
|
||||
// Added for MBED PR #3062
|
||||
atomic_set_u32(&USBx_DEVICE->DIEPEMPMSK, 1 << ep->num);
|
||||
}
|
||||
}
|
||||
|
@ -680,6 +681,7 @@ HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeD
|
|||
/* Enable the Tx FIFO Empty Interrupt for this EP */
|
||||
if (ep->xfer_len > 0)
|
||||
{
|
||||
// Added for MBED PR #3062
|
||||
atomic_set_u32(&USBx_DEVICE->DIEPEMPMSK, 1 << (ep->num));
|
||||
}
|
||||
|
||||
|
@ -1406,6 +1408,7 @@ HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDe
|
|||
|
||||
/* Write packet into the Tx FIFO. */
|
||||
USB_WritePacket(USBx, hc->xfer_buff, hc->ch_num, hc->xfer_len, 0);
|
||||
// Added for MBED PR #3432
|
||||
hc->xfer_count = hc->xfer_len;
|
||||
|
||||
}
|
||||
|
|
|
@ -38,6 +38,13 @@
|
|||
#include "stm32l4xx_ll_system.h"
|
||||
#include "stm32l4xx_ll_pwr.h"
|
||||
|
||||
// Removed from MBED PR #3410
|
||||
//#ifdef USE_FULL_ASSERT
|
||||
//#include "stm32_assert.h"
|
||||
//#else
|
||||
//#define assert_param(expr) ((void)0U)
|
||||
//#endif /* USE_FULL_ASSERT */
|
||||
|
||||
/** @addtogroup STM32L4xx_LL_Driver
|
||||
* @{
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue