system
(system)
January 4, 2007, 11:17pm
1
bonmot wrote on Thursday, January 04, 2007 :
I am using LPC2138, with 32K RAM.
I am using heap_1.c
I have 9 tasks running. the total stack size is 20480 bytes.
Does that mean i just need to set up the configTOTAL_HEAP_SIZE to 20480 bytes?
Thanks
Paul
system
(system)
January 5, 2007, 9:18am
2
embeddedc wrote on Friday, January 05, 2007 :
It needs to be larger than that as you also need to allocate the task control blocks for the tasks.
A couple of ideas to help you.
i/ In pvPortMalloc (heap_1.c) add the following lines before the return statement.
if( pvReturn == NULL )
{
/* Place some code here for a breakpoint */
}
then add a break point where specified. If you run out of heap then it will break on your break point.
ii/ Fill the heap with a known value
memcpy( xHeap.ucHeap, 0xaa, configTOTAL_HEAP_SIZE );
before you use the heap. Then you can look at the heap and see how much remains.
system
(system)
January 5, 2007, 2:16pm
3
bonmot wrote on Friday, January 05, 2007 :
Thanks a lot
I think you are using a JTAG debugger.
I just got one WIGGLER, cost me $125. I am going to set it up today.
I am using Eclipse, CDT, OCDEMON. any suggestions?
system
(system)
January 5, 2007, 2:18pm
4
bonmot wrote on Friday, January 05, 2007 :
You metioned that "to allocate the task control blocks for the tasks".
Do I have to that? Where can I do that?
Thank you!
rtel
(Richard Barry)
January 5, 2007, 4:10pm
5
rtel wrote on Friday, January 05, 2007 :
When you create a task the scheduler grabs memory from the heap - into which it places the TCB and the task stack. You do not need to do this manually.
Regards.