configUSE_TRACE_FACILITY and SAM7 example

vyacheslavz wrote on Sunday, December 20, 2009:

I run into bazaar problem - once I setup configUSE_TRACE_FACILITY to 0 on SAM7, FreeRTOS stopped working:

Take ARM7_AT91SAM7X256_Eclipse, stripped it by removing the demo task, web server, and uip - still works

My FreeRTOS config ia as follows:

    #define configUSE_PREEMPTION 1
    #define configUSE_IDLE_HOOK         0
    #define configUSE_TICK_HOOK         1
    #define configCPU_CLOCK_HZ          ( ( unsigned long ) 47923200 )
    #define configTICK_RATE_HZ          ( ( portTickType ) 1000 )
    #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
    #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 200 )
    #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
    #define configMAX_TASK_NAME_LEN ( 0)
    #define configUSE_TRACE_FACILITY 1
    #define configUSE_16_BIT_TICKS 0
    #define configIDLE_SHOULD_YIELD 1
    #define configUSE_MUTEXES 1
    /* Co-routine definitions. */
    #define configUSE_CO_ROUTINES 0
    #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            0
    #define INCLUDE_uxTaskPriorityGet           0
    #define INCLUDE_vTaskDelete                 0
    #define INCLUDE_vTaskCleanUpResources       0
    #define INCLUDE_vTaskSuspend                0
    #define INCLUDE_vTaskDelayUntil             1
    #define INCLUDE_vTaskDelay                  1
    #define INCLUDE_xTaskGetCurrentTaskHandle 0
    #define INCLUDE_vTaskList 0

As soon as I change configUSE_TRACE_FACILITY to 0, the image size is 8.2 K (great), but free rtos stoped working.

As far as I can see from debugging, it does not gets ticks interrupts?

Any ideas how to solve this?

On the alternative, any working starting point for FReeRTOS+GCC+SAM7?

davedoors wrote on Sunday, December 20, 2009:

Are you sure it was that setting that stopped it from working? The SAM7 demos (some of them at least) access the USB peripheral from the idle hook. They can stop working if you don’t create the queue that is used to communicate between the idle task and the USB driver.

vyacheslavz wrote on Sunday, December 20, 2009:

Absolutely sure.
Just change of this settting to 1 - everything works
0 everything does not work
If you just have another  working gcc /FreeRtos/ SAM7 project

vyacheslavz wrote on Monday, December 21, 2009:

Well. I figured it out.
The issue was somehow caused by Yagrto compiler (4.4.2). After switching to GNUARM (4.3) exactly the same code works like a charm

powerf wrote on Wednesday, February 10, 2010:

I’ve got exactly the same problem - at91sam7s256, FreeRTOS v6.0.2 arm-elf-gcc
I don’t want to use TRACE_FACILITY but i have to becasue without it application doesn’t run
What i got:
Simple application,
1) configUSE_TRACE_FACILITY = 0 - code size: 20k and application does not work,
2) configUSE_TRACE_FACILITY = 1 - code size: 44k and application runs perfect

I’ve tried to change compiler to arm-none-eabi but effect was the same.

Anyone has any idea how to solve this problem?