Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem



Posted by Pardini on November 25, 2009

I am new to FreeRTOS and I am triyng to run the examples from the Practical Guide but I have some problems:

1. The port for CVAVR comes with a Demo for the ATmega128 that runs perfectly.
2. After reading the Practical Guide and the API functions, I tried to run the Example 6. To do so, I followed the tips of appendix 4 "Creating a FreeRTOS Project". So I used the Demo as a base to run example 6.
3. The compile and build of example 6 was OK but only the "continuous task 1" runs.

Any help is welcome


Posted by Richard on November 25, 2009
I would guess that the tick interrupt was not running. Can you place a break point in the tick interrupt to see if it ever executes?

I'm not sure which compiler you are using (CVAVR?), but an easy way to check this that would work with any port is to place the break point in vTaskIncrementTick() within tick.c.



Posted by Pardini on November 27, 2009
The compiler is CodeVisionAVR from HP Info Tech (http://www.hpinfotech.ro/html/download.htm) . The port is for FreeRTOS V5.2.0.

Where is vTaskIncrementTick() in the files and directories structure of FreeRTOS? I do not find it nor tick.c.

The Demo runs OK, so why the tick interrupt do not work for example 6 ?

Output from example 6:

Continuous task 1 running

Continuous task 1 running

Continuous task 1 running ...




/* Call stack size for 1 task */
#define configCALL_STACK_SIZE 32

#define configUSE_PREEMPTION1
#define configUSE_IDLE_HOOK0
#define configUSE_TICK_HOOK0
#define configCPU_CLOCK_HZ( ( unsigned portLONG ) 7372800 )
#define configTICK_RATE_HZ( ( portTickType ) 100 ) // 1000
#define configMAX_PRIORITIES( ( unsigned portBASE_TYPE ) 4 )
#define configMINIMAL_STACK_SIZE( ( unsigned portSHORT ) 65 + configCALL_STACK_SIZE )
#define configTOTAL_HEAP_SIZE( (size_t ) ( 1500 ) )
#define configMAX_TASK_NAME_LEN( 16 )// 8
#define configUSE_TRACE_FACILITY0// ***
#define configUSE_16_BIT_TICKS1
#define configIDLE_SHOULD_YIELD1

#define configUSE_MUTEXES1
#define configUSE_ALTERNATIVE_API1
#define configCHECK_FOR_STACK_OVERFLOW0 /* Do not use this option on the PC port. */
#define configQUEUE_REGISTRY_SIZE0

/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 1// ***
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskPrioritySet1 // 0
#define INCLUDE_uxTaskPriorityGet1 // 0
#define INCLUDE_vTaskDelete1
#define INCLUDE_vTaskCleanUpResources1// 0
#define INCLUDE_vTaskSuspend1// 0
#define INCLUDE_vTaskDelayUntil1
#define INCLUDE_vTaskDelay1
#define INCLUDE_uxTaskGetStackHighWaterMark 0 /* Do not use this option on the PC port. */// não tinha

#endif /* FREERTOS_CONFIG_H */

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

Version 10.1.0 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner