carvalhais wrote on Wednesday, August 26, 2009:
Hi folks,
I was trying to compile FreeRTOS to run on a F2274 (32kb flash and 1kb ram), from a eZRF2500 board that TI distributed in last year´s MSP Day. After adjusting things a little bit, when I tried to compile a simple code I got the following errors (mspgcc 3.2.3 with eclipse):
**** Build of configuration Debug for project SPECTraS ****
**** Internal Builder is used for build ****
msp430-gcc -mmcu=msp430x2274 -oSPECTraS.elf sys\init.o SPECTraS.o FreeRTOS\tasks.o FreeRTOS\queue.o FreeRTOS\port.o FreeRTOS\list.o FreeRTOS\heap_1.o FreeRTOS\croutine.o
C:\Program Files\mspgcc\bin\…\lib\gcc-lib\msp430\3.2.3\…\…\…\…\msp430\bin\ld.exe: region data is full (SPECTraS.elf section .bss)
C:\Program Files\mspgcc\bin\…\lib\gcc-lib\msp430\3.2.3\…\…\…\…\msp430\bin\ld.exe: region data is full (SPECTraS.elf section .bss)
Build error occurred, build is stopped
Time consumed: 157 ms.
My FreeRTOSConfig.h is as follows:
#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 16000000 ) /* Clock setup from main.c in the demo application. */
#define configTICK_RATE_HZ ( (portTickType)(configCPU_CLOCK_HZ/32768) )
/* If configUSE_WDT_AS_TICKER is set below, this
* must be set as ( configCPU_CLOCK_HZ / 32768 ) */
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 2 )
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 50 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 800 ) )
#define configMAX_TASK_NAME_LEN ( 4 )
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 1
#define configIDLE_SHOULD_YIELD 0
#define configUSE_WDT_AS_TICKER 1
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES ( 0 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 0
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
configWDT_AS_TICKER is just an option I´ve added to allow me to use the watchdog timer instead of the timer a to generate the ticker interrupts.
The code is really simple, it just creates a task to toggle the onboard led (it uses vTaskDelay to generate the delay). Is FreeRTOS really that big or am I missing something here?
I also don´t understand why the compiler tries to link croutines.o since I have turned configUSE_CO_ROUTINES off.
Could someone please help me? Thanks in advance,
Andre.