cancel
Showing results for 
Search instead for 
Did you mean: 

Bug suspected in .h with repercussions on HAL for STM32G4 (RNG macros)

samuel23
Associate III

Hi,

I discovered today with some of my students this potential bug in the stm32g431xx.h file:

 

#define RNG_CR_CED_Pos (5U)
#define RNG_CR_CED_Msk (0x1UL << RNG_CR_IE_Pos) /*!< 0x00000020 */
#define RNG_CR_CED RNG_CR_IE_Msk

As RNG_CR_IE_Pos is equal to 3... This mask is not correct.

It is quite strange: the comment is true... according to the Reference manuel 0440.

I suggest this correction:

 

#define RNG_CR_CED_Pos (5U)
#define RNG_CR_CED_Msk (0x1UL << RNG_CR_CED_Pos) /*!< 0x00000020 */
#define RNG_CR_CED RNG_CR_CED_Msk

 

 

(I checked the last version of this file using this official github : https://github.com/STMicroelectronics/cmsis-device-g4/blob/7c39c32593b03764aaa57531588b8bf7cdd443a5/Include/stm32g431xx.h )

 

In the HAL, the assert can't detect the fail... "checking itself" : 

assert_param(IS_RNG_CED(hrng->Init.ClockErrorDetection));

And this line used this CED... faking:

MODIFY_REG(hrng->Instance->CR, RNG_CR_CED, hrng->Init.ClockErrorDetection);

've fun...

Thx,

Samuel.

 

1 REPLY 1
Saket_Om
ST Employee

Hello @samuel23 

Thank you for bringing this issue to our attention.

I reported this internally.

Internal ticket number: 217616 (This is an internal tracking number and is not accessible or usable by customers).

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
Saket_Om