Comments (5)
Hi @ALABSTM,
To be sure I correctly understood, you suspect the below code block to cause the issue, mainly the two successive accesses to the buffer descriptor table via the pdwReg parameter:
The issue it that there is a small window, where both COUNTn_RX
and NUM_BLOCK
are cleared. A received USB frame results in a stall, see patch description of candle-usb/candleLight_fw@dffacde
from stm32g0xx_hal_driver.
Just wondering. Did you give it another try with the latest HAL-LL version available on GitHub to see whether the problem still persists? A number of fixes have been pushed since you first created this issue, some related to the LL USB driver.
The problematic code is still in place, maybe this version fixes other problems, but not this one.
from stm32g0xx_hal_driver.
Hi @lichtfeind,
Please excuse this delayed reply. Your point looks relevant. It has been forwarded to our development teams for further analysis. I will keep you informed.
To be sure I correctly understood, you suspect the below code block to cause the issue, mainly the two successive accesses to the buffer descriptor table via the pdwReg
parameter:
- to clear both
BLSIZE
andNBLK
, - to set them back.
#define USB_DRD_SET_CHEP_CNT_RX_REG(pdwReg, wCount) \
do { \
uint32_t wNBlocks; \
\
(pdwReg) &= ~(USB_CNTRX_BLSIZE | USB_CNTRX_NBLK_MSK); \
\
if ((wCount) > 62U) \
{ \
USB_DRD_CALC_BLK32((pdwReg), (wCount), wNBlocks); \
} \
else \
{ \
if ((wCount) == 0U) \
{ \
(pdwReg) |= USB_CNTRX_BLSIZE; \
} \
else \
{ \
USB_DRD_CALC_BLK2((pdwReg), (wCount), wNBlocks); \
} \
} \
} while(0) /* USB_DRD_SET_CHEP_CNT_RX_REG */
With regards,
from stm32g0xx_hal_driver.
ST Internal Reference: 173021
from stm32g0xx_hal_driver.
Hi @lichtfeind,
Just wondering. Did you give it another try with the latest HAL-LL version available on GitHub to see whether the problem still persists? A number of fixes have been pushed since you first created this issue, some related to the LL USB driver.
Please let me know and thank you in advance.
With regards,
from stm32g0xx_hal_driver.
Related Issues (5)
- Issue if tick rollover occurs while waiting for flash (from the forum) HOT 2
- Data filters in LL_ADC_REG_ReadConversionDataX prevent left alignment from working HOT 5
- Timeout parameter in HAL_I2C_Master_Receive/HAL_I2C_Mem_Read not used for I2C_WaitOnFlagUntilTimeout function HOT 3
- HAL_SPI_TransmitReceive_IT crashes when TX buffer is not 16 bit aligned HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stm32g0xx_hal_driver.