Trying to integrate segger in to STM32 with FreeRTOS. Getting vInitPrioGroupValue() not found error

When tried to integrate Segger to with FreeRTOS on STM32 getting hit on the
configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue );

Based on the resource I was refering tried to call vInitPrioGroupValue() from the HAL_MspInit() function inside “stm32f4xx_hal_msp.c” file and also included “FreeRTOS.h” header file in “stm32f4xx_hal_msp.c” file.

When compile vInitPrioGroupValue() is not defined error is showing.

Any help is greatly appreciated…

1 Like

Hi Ray, what version of FreeRTOS are you using? Is there a comment in the code immediately above the assert statement you’re getting stuck on in port.c?

You should be able to eliminate the call to vInitPrioGroupValue(). Instead, call NVIC_SetPriorityGrouping( 0 ); prior to starting the FreeRTOS scheduler.

Hi Jeff,
Thanks for your feedback. I am using latest version of FreeRTOS(v202112.00) and Segger also it’s current release (v332).
The comment section above the assert statement saying to do the NVIC_SetPriorityGrouping( 0 ); and it works. Issue is when I debug the program with segger System Viewer the call to SySTickTimer interrupt is not happening.
More over the call to vInitPrioGroupValue() is throwing the error Not defined function. Included the proper header file also. Is the vInitPrioGroupValue() function have new name or alternative in latest version of the FreeRTOS. The resource I was refering uses FreeRTOSv202012.00, While I am using the latest version from the FreeRTOS website.

Hope you could help me with the vInitPrioGroupValue() function. For my application the Systick Timer interrupt should occur and should be visible while debugging with Segger System Viewer.

Where did the code come from to call vInitPrioGroupValue()? I don’t think that is a FreeRTOS function.

1 Like

Hi Jeff.,
Yes you are right. It’s provided by a patch by Segger System Viewer source code. Latest patch doesn’t define this function and I switched back to old version.

i faced this issue and i want to know how can i solve it

Hi mustafahussaam,

Can you describe more about the issue you are facing now?

The original issue is about vInitPrioGroupValue() not found. This function is provided by an old patch by SEGGER System Viewer source code. SEGGER provides their example projects in this wiki page. You can reference this project and port to your hardware platform.

If your problem is about SysTickTimer interrupt not happening, please create another thread and share more information about the situation.