grantkbrown wrote on Thursday, October 23, 2008:
Hi,
Port : PIC32
I have stripped all of the custom tasks etc out of the PIC32 demo and removed the source files etc for the above tasks.
This has resulted in a program with only 3 custom tasks (I wrote them and 1 is copied below for reference) which simply flash LED’s. All there tasks are contained in the main file (main.c)
But when I compile the program and then check the memory usage I end up with the following memory usage as reported by the MPLabs Memory Usage Gauge,
Program Memory : 18600 Bytes (out of 536560)
Data Memory : 31404 Bytes (out of 32768)
This really seems excessive given that whats left is basically an empty project with the RTOS just ticking over.
Am I missing something or is it normal for 95% of the data memory to be used up like this.
The project files are,
Source files,
…\…\Source\list.c
…\…\Source\portable\MemMang\heap_2.c
…\…\Source\portable\MPLAB\PIC32MX\port.c
…\…\Source\portable\MPLAB\PIC32MX\port_asm.c
…\…\Source\queue.c
…\…\Source\tasks.c
Header Files
…\…\Source\include\croutine.h
…\…\Source\include\FreeRTOS.h
…\…\Source\include\list.h
…\…\Source\include\portable.h
…\…\Source\include\projdefs.h
…\…\Source\include\queue.h
…\…\Source\include\semphr.h
…\…\Source\include\task.h
…\…\Source\portable\MPLAB\PIC32MX\portmacro.h
C:\Program Files\Microchip\FreeRTOS\Demo\PIC32MX_MPLAB\FreeRTOSConfig.h
Here is a typical custom task
static void Grants_Task( void *pvParameters )
{
    portTickType xLastExecutionTime;
    xLastExecutionTime = xTaskGetTickCount();
    for( ;; )
    {
    vTaskDelayUntil( &xLastExecutionTime, 1000 );
    PORTToggleBits(IOPORT_D, BIT_0);       
    }   
}
Kind Regards
Grant Brown