FreeRTOS Debug windows not displaying proper data
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-08-07 11:36 PM
I have followed the FreeRTOS API document below I have mentioned the details about the documents.
FreeRTOS on STM32 CMSIS_OS API
T.O.M.A.S – Technically-Oriented Microcontroller Application Services
Version: v1.7
Link for document: https://raw.githubusercontent.com/eziya/STM32F4_HAL_FREERTOS_LAB/master/FreeRTOS_v1.7%20-%20CMSIS%20OS%20API.pdf
Currently, In my application two tasks running simultaneously.
For specific task CPU usage I have followed the page No.251 steps in my STM32Cube IDE for finding the particular task CPU usage.
But, FreeRTOS Task List windows not updating the "Run Time" column value and it's showing the "N/A"
Could you tell me what is issue with IDE or if anything the FreeRTOS configuration side missing? or any version issue?
For more clarification, I have attached the screenshots from the document as well as from STM32Cube IDE.
My Hardware and Software details:
Hardware :
- STM32H745 Discovery board.
Software :
- STM32Cube IDE
- Version : 1.8.0
- Application side currently I am running two tasks.
Thanks In Advance Image: STM32Cube IDE
- Labels:
-
DEBUG
-
FreeRTOS
-
STM32CubeIDE
-
STM32H7 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-08-17 01:58 AM
In order to solve the CTR OVR issue i configured TIM6 as interrupt triggered priority 0, it triggers every 0,1ms, incrementing a uint64_t variable.
/* USER CODE BEGIN 1 */
extern uint64_t freertosRunTimeCounter;
extern TIM_HandleTypeDef htim6;
/* Functions needed when configGENERATE_RUN_TIME_STATS is on */
__weak void configureTimerForRunTimeStats(void)
{
freertosRunTimeCounter=0;
HAL_TIM_Base_Start_IT(&htim6);
}
__weak unsigned long getRunTimeCounterValue(void)
{
return freertosRunTimeCounter;
}
/* USER CODE END 1 */
/**
* @brief This function handles TIM6 global interrupt.
*/
void TIM6_IRQHandler(void)
{
/* USER CODE BEGIN TIM6_IRQn 0 */
freertosRunTimeCounter++;
/* USER CODE END TIM6_IRQn 0 */
HAL_TIM_IRQHandler(&htim6);
/* USER CODE BEGIN TIM6_IRQn 1 */
/* USER CODE END TIM6_IRQn 1 */
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-08-19 02:06 AM
Hello
The user guide instructions contains PSEUDO Code. The reason to use the Pseudo code is that there are many use case depending on the used libraries , hardware configuration, available system resources, etc...
Here are an example implementation based on the HAL library.
FreeRTOS debugging on STM32 – CPU usage – MolesBlog (the78mole.de)
Kind regards,
Semer.
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.
- « Previous
-
- 1
- 2
- Next »