possible error in stm32_ll_lpbam.c
@MKISTM ya está trabajando en esto.
Desde el 8/5/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
LPBAM_Status_t LPBAM_LPTIM_FillNodeConfig(LPBAM_LPTIM_ConfNode_t const *const pConfNode,
DMA_NodeConfTypeDef *const pDMANodeConfig)
{
LPBAM_Status_t status;
LPBAM_InfoDesc_t desc_info;
...
in stm32_lpbam_lptim.c leaves desc_info uninitialized and calls
LPBAM_Status_t LPBAM_LPTIM_FillStructInfo(LPBAM_LPTIM_ConfNode_t const *const pConfNode,
LPBAM_InfoDesc_t *const pDescInfo)
in stm32_ll_lpbam.c with reference to desc_info.
While LPBAM_LPTIM_FillStructInfo does not set pDescInfo->Request in case of LPBAM_LPTIM_CONFIG_ID with pConfNode->Config.State != ENABLE and pConfNode->Config.Mode != LPBAM_LPTIM_UE_MODE as it can be seen in the following code snippet.
...
/* Check node ID */
switch (pConfNode->NodeDesc.NodeInfo.NodeID)
{
/* LPBAM LPTIM Update Period node ID */
case LPBAM_LPTIM_CONFIG_ID:
{
/* Get control register value */
dummy = pConfNode->pInstance->CR;
/* Check LPTIM state */
if (pConfNode->Config.State == ENABLE)
{
/* Set LPTIM update event request */
pDescInfo->Request = DMA_REQUEST_SW;
/* Set LPTIM state */
dummy |= LPTIM_CR_ENABLE;
/* Check LPTIM start mode update */
if (pConfNode->Config.UpdateStartMode == ENABLE)
{
if (pConfNode->Config.StartMode == LPBAM_LPTIM_START_SINGLE)
{
/* Configure LPTIM to start in single mode */
dummy |= LPTIM_CR_SNGSTRT;
}
else
{
/* Configure LPTIM to start in continuous mode */
dummy |= LPTIM_CR_CNTSTRT;
}
}
}
else
{
/* Set LPTIM state */
dummy &= ~(LPTIM_CR_ENABLE);
/* Check LPTIM mode */
if (pConfNode->Config.Mode == LPBAM_LPTIM_UE_MODE)
{
/* Check LPTIM instance */
if (pConfNode->pInstance == LPTIM1)
{
/* Set LPTIM1 update event request */
pDescInfo->Request = LPDMA1_REQUEST_LPTIM1_UE;
}
else
{
/* Set LPTIM3 update event request */
pDescInfo->Request = LPDMA1_REQUEST_LPTIM3_UE;
}
}
}
/* Set value to be written */
*pConfNode->NodeDesc.pSrcVarReg = dummy;
/* Set DMA source address */
pDescInfo->SrcAddr = (uint32_t)pConfNode->NodeDesc.pSrcVarReg;
/* Set DMA destination address */
pDescInfo->DstAddr = lptim_descitem_tbl[pConfNode->NodeDesc.NodeInfo.NodeID].RegOffset +
(uint32_t)pConfNode->pInstance;
/* Set DMA data size */
pDescInfo->DataSize = lptim_descitem_tbl[pConfNode->NodeDesc.NodeInfo.NodeID].RegDataSize;
break;
}
....
Later code uses Request leading to undefined behavior. The fix that worked for me was adding
...
else
{
pDescInfo->Request = DMA_REQUEST_SW;
/* Set LPTIM state */
dummy &= ~(LPTIM_CR_ENABLE);
...
essentially this problem occurred when adding a lptim stop node with "not from update event detection" in cubemx lpbam scenario.
- Lenguaje dominante
- C
- Estrellas
- 184
- Forks
- 94
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de STMicroelectronics/STM32CubeU5
-
LPBAM I2C MasterTx silently writes wrong SADD on bus (STM32CubeU5)Quizá libre de nuevo @MKISTM la tomó hace 169 días y no hay ningún pull request abierto. Abiertobug cube mx internal bug tracker lpbam
STMicroelectronics/STM32CubeU5#68 · 3 comentarios · 1 asignado ·
Todos los issues de STMicroelectronics/STM32CubeU5
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
JustAResearcher/gpu-unlock-ada#98 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
bug intrinsic medium priority rt_lib
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
[CLI] Clarify distinction between 'capture camera' and 'capture screen' in help text and outputAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
espressif/esp-vision#18 ·