IRDA stack vs FreeRtos

nobody wrote on Wednesday, January 18, 2006:

I have to evaluate approximatively how much RAM space would be necessary (in heap memory) to add an IRDA stack in lwIP_Demo_Rowley_ARM7 (The IRDA stack consume approximatively 10KB of flash and 500 Bytes of RAM)?

Is it possible to make this evaluatation only with this information ?

In fact, I have to ensure that 64KB of Ram is enough to include lwIP, USB CDC, IRDA stack and enough space to include my own application.

regards.

nobody wrote on Wednesday, January 18, 2006:

I would have thought 64 was enough, but to be sure you can look at the ROM/RAM usage in the CrossStudio IDE.  If you build your code then look in the project window you will see the rom and ram usage of each component.  You can lower the stack size used by the kernel if you remove the demo tasks.

nobody wrote on Thursday, January 19, 2006:

I agreee, but to do that I have to merge the IRDA stack in FreeRtos and this will take a while. I only want to make a prediction.

Does it exist a way to calculate the Heap memory needed when we add a task. For example, IRDA stack takes 10K of Flash and less than 1K of RAM, but how many heap memory must I reserve to include it in the kernel. May be its impossible to evaluate like that ?

regards

nobody wrote on Thursday, January 19, 2006:

Assuming ARM7,

Tasks take:
sizeof( tskTCB ) + ( requested stack * 4 ) bytes of heap.

Queues task:
sizeof( xQUEUE ) + ( sizeof( Item_being_stored ) * queue_length ) bytes of heap.

nobody wrote on Thursday, January 19, 2006:

The heap is only used when the kernel calls pvPortMalloc.  You can choose to use pvPortMalloc for your irda stack also if you wish, but would suggest that you just allocate the necessary RAM statically.