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.
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.
#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
/* 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