xTaskGetTickCount always returns 0

ramawidi wrote on Wednesday, May 24, 2017:

Hi, I working on STM32F4 Discovery with FreeRTOS ver 9. I use xTaskGetTickCount to see how long my task is working on. But xTaskGetTickCount always returns 0. This is my task code

void test_print(void)
uint32_t wake_time,temp1,temp2;
const uint32_t period = 100;
char buff[32];

wake_time = xTaskGetTickCount();
	tamp1 = xTaskGetTickCount();
	sprintf(buff,"Tick1 = %u\n",temp1);
	tamp2 = xTaskGetTickCount();
	sprintf(buff,"Tick2 = %u\n",temp2);


Anyone help?

Thank You

omar93 wrote on Wednesday, May 24, 2017:


I am working with Xilinx Zynq ZC702 and I have the same problem…

kenchang1 wrote on Wednesday, May 24, 2017:

Does the code compile? Any warnings (implicit declaration of variables)? TYPO: tamp1, tamp2 should be temp1, temp2.

rtel wrote on Wednesday, May 24, 2017:

Sounds like the tick interrupt is not running. Is it installed? See the first question of the FAQ page “my application does not run, what could be wrong?”. I think there is a link to the page in the comments at the top of each source file.

ramawidi wrote on Sunday, May 28, 2017:

No I don’t have any warnings. Sorry for the Typo. Actually tamp1 & tamp2 is temp1 & temp2. And I’m sorry, I don’t get what do you mean about installed? Do you mean Tick is installed? correct me if I’m wrong

hs2sf wrote on Sunday, May 28, 2017:

Question is if the SysTick interrupt / its ISR is properly installed.
Note that this is port / BSP specific.
For STMF4 ie. Cortex-M4 architecture you have to prepare the exception vector table containing the interrupt handlers used by your application.
It should at least contain the entries required by FreeRTOS to run.
These are defined in your FreeRTOSConfig.h:

/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */
#define vPortSVCHandler     SVC_Handler
#define xPortPendSVHandler  PendSV_Handler
#define xPortSysTickHandler SysTick_Handler

ramawidi wrote on Wednesday, May 31, 2017:

Hi, HS2
When I checked my FreeRTOSConfig.h those 3 lines is not available so I add it and works. Thank you so much for your help