Quality RTOS & Embedded Software

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



Posted by *anonymous 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 richardbarry 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 *anonymous 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 …


    #include <io.h>
    /* Call stack size for 1 task */
    #define configCALL_STACK_SIZE 32
    #define configUSE_PREEMPTION 1
    #define configUSE_IDLE_HOOK 0
    #define configUSE_TICK_HOOK 0
    #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_FACILITY 0 // ***
    #define configUSE_16_BIT_TICKS 1
    #define configIDLE_SHOULD_YIELD 1
    #define configUSE_MUTEXES 1
    #define configUSE_COUNTING_SEMAPHORES 1
    #define configUSE_ALTERNATIVE_API 1
    #define configUSE_RECURSIVE_MUTEXES 1
    #define configCHECK_FOR_STACK_OVERFLOW 0 /* Do not use this option on the PC port. */
    #define configUSE_APPLICATION_TASK_TAG 1
    #define configQUEUE_REGISTRY_SIZE 0
    /* 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_vTaskPrioritySet 1   // 0
    #define INCLUDE_uxTaskPriorityGet 1   // 0
    #define INCLUDE_vTaskDelete 1
    #define INCLUDE_vTaskCleanUpResources 1 // 0
    #define INCLUDE_vTaskSuspend 1 // 0
    #define INCLUDE_vTaskDelayUntil 1
    #define INCLUDE_vTaskDelay 1
    #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