How many Timers Can I Create???

Joel Sherrill joel.sherrill at OARcorp.com
Tue Apr 13 14:34:55 UTC 2004


Alex wrote:
> It is more clear now for me...
> So, the my problem is due configuration of rtems itself, right?
> I have to find out how to change rtems configuration to be possible to create hundreds of timers...

First you need to modify cpukit/sapi/include/confdefs.h per the
email I posted yesterday so it accounts for timer resources
properly.  Here is the URL to that message

http://www.rtems.com/ml/rtems-users/2004/april/msg00050.html

Then you simply need to define the CONFIGURE_XXX constant
appropriately.

Finally let us all know.

--joel


> Thanks to all
> 
> Alex
> 
> ----- Mensagem Original -----
> De: Joel Sherrill <joel.sherrill at OARcorp.com>
> Data: Segunda-Feira, 12 de Abril de 2004, 17:43
> Assunto: Re: How many Timers Can I Create???
> 
> 
>>Alex wrote:
>>
>>
>>>Ok, but I am still looking to this behaiviour as strange, 
>>
>>because the pc I am using has 256 MB of ram and if the rtems see 
>>memory as a flat fashion, It looks like that rtems is waisting 
>>memory in timers... Sorry about my statement ... I am beginner in 
>>rtems, but now I am interesting in find out the reason... I think 
>>we all!
>>
>>>So if with 256 mb rtems only allows to create 10 timers, well If 
>>
>>we need 20 timers We have to put ~512 Mb on the PC. It looks very 
>>strange...
>>It doesn't matter how much physical RAM is in your target hardware.
>>What matters is how much you told RTEMS it had available to use.
>>In the deeply embedded world, one wants tight control over
>>memory layout and usage.  The amount you want RTEMS to use
>>is calculated by confdefs.h and it doesn't get a byte more.
>>Your C program heap may be huge on that PC but RTEMS is
>>likely being told to use just a handful of kilobytes.
>>
>>--joel
>>
>>
>>>Alex
>>>
>>>
>>>
>>>----- Mensagem Original -----
>>>De: Joel Sherrill <joel.sherrill at OARcorp.com>
>>>Data: Segunda-Feira, 12 de Abril de 2004, 17:18
>>>Assunto: Re: How many Timers Can I Create???
>>>
>>>
>>>
>>>>Kamen Penev wrote:
>>>>
>>>>
>>>>
>>>>>Joel Sherrill wrote:
>>>>>
>>>>>
>>>>>
>>>>>>Alex wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Hi,
>>>>>>>
>>>>>>>Does RTEMS has a confifured maximum number o timers it 
>>>>
>>>>supports, or 
>>>>
>>>>
>>>>>>>it naturally crashs when too much timers are created?
>>>>>>>
>>>>>>>In an test I am doing I have the following:
>>>>>>>
>>>>>>>#define CONFIGURE_MAXIMUM_POSIX_TIMERS 150
>>>>>>>#define CONFIGURE_MAXIMUM_ 150
>>>>>>>
>>>>>>>Then I have source code to create 100 timers, but when the 
>>>>
>>>>program 
>>>>
>>>>
>>>>>>>starts it hangs, even before starting sreating the first 
>>>>
>>>>timer. The 
>>>>
>>>>
>>>>>>>timers are created with the timer_create POSIX function.
>>>>>>
>>>>>>
>>>>>>
>>>>>>Sounds like the BSP was unable to assign the memory for that much
>>>>>>workspace.
>>>>>
>>>>>
>>>>>
>>>>>I see this in confdefs.h (ss-20030417):
>>>>>
>>>>>#define CONFIGURE_MEMORY_FOR_POSIX_TIMERS(_timers) \
>>>>>((_timers) * \
>>>>> ( 0 ) )
>>>>>
>>>>>Maybe this is why?
>>>>
>>>>That would explain it also. :)
>>>>
>>>>I would guess that the proper definitions in
>>>>cpukit/sapi/include/confdefs.h should be:
>>>>
>>>>#define CONFIGURE_MEMORY_FOR_POSIX_TIMERS(_timers) \
>>>> ((_timers) * sizeof(POSIX_Timer_Control))
>>>>
>>>>And since POSIX timers implicitly use a Classic API timer:
>>>>
>>>>#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
>>>> ((_timers + CONFIGURE_MAXIMUM_POSIX_TIMERS) * \
>>>>    ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
>>>>
>>>>My earlier statement about the bspstart.c failing still
>>>>apply.  But this time you probably got slightly further
>>>>in initialization before things failed.  RTEMS initialization
>>>>probably ran out of workspace duging the preallocation of
>>>>object control blocks.
>>>>
>>>>If this works, let us know so a PR can be filed.
>>>>
>>>>
>>>>
>>>>>Kamen
>>>>>
>>>>
>>>>
>>>>
>>___________________________________________________________________________________________> IOL Flash. A net normal em versao acelerada.
>>
>>>Promocao: Ligue-se a Internet pelo IOL Flash e ganhe um Vale de 
>>
>>€10 da Galp!
>>
>>>Saiba como: 
>>
>>http://www.iol.pt/central_utilizador/iol_flash/promocao.php> 
>>
>>
>>
> 
> ___________________________________________________________________________________________
> IOL Flash. A net normal em versao acelerada.
> Promocao: Ligue-se a Internet pelo IOL Flash e ganhe um Vale de €10 da Galp!
> Saiba como: http://www.iol.pt/central_utilizador/iol_flash/promocao.php
> 





More information about the users mailing list