[En-Nut-Discussion] How much memory is still available in the stack of a thread?

Rodrigue rodrigue.roland at gmail.com
Fri Jun 29 23:47:13 CEST 2007


Thank you for your response!

What changes do I have to make to the library, please?

Best Regards,
Rodrigue


Brett Abbott wrote:
> 
> Hi Rodrigue
> 
> I found the best way to achieve this was to clear memory rather than 
> just allocate it when a thread is created.  ((Use AllocClear - you will 
> need to change the library)).  This then allows you to more reliably 
> scan the allocated memory to determine how much of it has been used.  If 
> you dont use AllocClear then after a period of time, or following a 
> reboot/reset, you will start to get random results as memory is only 
> cleared on power cycle.
> 
> Cheers
> Brett
> 
> Rodrigue wrote:
>> Thank you
>>
>>
>> Ovidiu-2 wrote:
>>   
>>> On 4/25/07, Rodrigue <rodrigue.roland at gmail.com> wrote:
>>>     
>>>> It was just to propose a way to optimize the stack space consumed by a
>>>> thread...
>>>> Thank you for the link, some informations were very instructive!
>>>>       
>>>
>>> Please, could you tell me what represents the variable var in the
>>> following
>>>     
>>>> operation:
>>>> u_int var =  (uptr_t) runningThread->td_sp - (uptr_t)
>>>>       
>>> http://www.ethernut.de/en/documents/ntn-2_events.html might help (look
>>> for
>>> "td_sp" in the first picture!)
>>>
>>> Harald Kipp wrote:
>>>     
>>>>> Each thread has its own stack space, taken from the global heap.
>>>>> http://www.vs.inf.ethz.ch/edu/wsn/tut/ch4-5.pdf
>>>>>
>>>>> Why do you need to know the available stack space of a single thread?
>>>>> Just asking, because I assume that things are more complex than you
>>>>> are
>>>>> possibly aware off.
>>>>>
>>>>> Harald
>>>>>
>>>>> Rodrigue schrieb:
>>>>>         
>>>>>> I'm not sure but may be by using the variable runningThread:
>>>>>>    u_int avaiblememory =  (uptr_t) runningThread->td_sp - (uptr_t)
>>>>>> runningThread->td_memory;
>>>>>>
>>>>>> with uptr_t td_sp;               /*!< \brief Stack pointer. */
>>>>>>      u_char *td_memory;          /*!< \brief Pointer to heap memory
>>>>>>           
>>>> used
>>>>       
>>>>>> for
>>>>>> stack. */
>>>>>>
>>>>>> Does each thread has is own heap memory? I tought that it was global
>>>>>>           
>>>> and
>>>>       
>>>>>> located at the end of the external memory growing downwards...
>>>>>>
>>>>>>
>>>>>>           
>>>>> _______________________________________________
>>>>> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>>>>>
>>>>>
>>>>>         
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/How-much-memory-is-still-available-in-the-stack-of-a-thread--tf3639143.html#a10178771
>>>> Sent from the MicroControllers - Ethernut mailing list archive at
>>>> Nabble.com.
>>>>
>>>> _______________________________________________
>>>> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>>>>
>>>>       
>>> _______________________________________________
>>> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>>>
>>>
>>>     
>>
>>   
> 
> -- 
> -----------------------------------------------------------------
> Brett Abbott, Managing Director, Digital Telemetry Limited
> Email: Brett.Abbott at digital-telemetry.com
> PO Box 24 036 Manners Street, Wellington, New Zealand
> Phone +64 (4) 462-3439  Mobile +64 (21) 656-144
> ------------------- Commercial in confidence --------------------
> 
> 
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
> 
> 

-- 
View this message in context: http://www.nabble.com/How-much-memory-is-still-available-in-the-stack-of-a-thread--tf3639143.html#a11367690
Sent from the MicroControllers - Ethernut mailing list archive at Nabble.com.




More information about the En-Nut-Discussion mailing list